Appendix A. Lifecycle States and Transitions

Table A-1 specifies the values returned by the JDOHelper lifecycle state interrogation methods for all the JDO lifecycle states.

Table A-1. Lifecycle-state interrogation methods

State of instance

isPersistent( )

isTransactional( )

isDirty( )

isNew( )

isDeleted( )

Transient

 false 
 false 
 false 
 false 
 false 

Transient-clean

 false 
 true 
 false 
 false 
 false 

Transient-dirty

 false 
 true 
 true 
 false 
 false 

Hollow

 true 
 false 
 false 
 false 
 false 

Persistent-nontransactional

 true 
 false 
 false 
 false 
 false 

Persistent-new

 true 
 true 
 true 
 true 
 false 

Persistent-clean

 true 
 true 
 false 
 false 
 false 

Persistent-dirty

 true 
 true 
 true 
 false 
 false 

Persistent-deleted

 true 
 true 
 true 
 false 
 true 

Persistent-new-deleted

 true 
 true 
 true 
 true 
 true 

Table A-2 and Table A-3 contain the state transitions for every lifecycle state.

Table A-2. Lifecycle-state transitions
 

Current state

Method

Transient

P-new

P-clean

P-dirty

Hollow

makePersistent

P-new

unchanged

unchanged

unchanged

unchanged

deletePersistent

error

P-new-del

P-del

P-del

P-del

makeTransactional

T-clean

unchanged

unchanged

unchanged

P-clean

makeNontransactional

error

error

P-nontrans

error

unchanged

makeTransient

unchanged

error

Transient

error

Transient

commit withRetainValues = false

unchanged

Hollow

Hollow

Hollow

unchanged

commit withRetainValues = true

unchanged

P-nontrans

P-nontrans

P-nontrans

unchanged

rollback with RestoreValues = false

unchanged

Transient

Hollow

Hollow

unchanged

rollback with RestoreValues = true

unchanged

Transient

P-nontrans

P-nontrans

unchanged

refresh with active datastore transaction

unchanged

unchanged

unchanged

P-clean

unchanged

refresh with active optimistic transaction

unchanged

unchanged

unchanged

P-nontrans

unchanged

evict

n/a

unchanged

Hollow

unchanged

unchanged

read field outsideof a transaction

unchanged

impossible

impossible

impossible

P-nontrans

read field with active optimistic transaction

unchanged

unchanged

unchanged

unchanged

P-nontrans

read field with active datastore transaction

unchanged

unchanged

unchanged

unchanged

P-clean

write field or makeDirty outside of a transaction

unchanged

impossible

impossible

impossible

P-nontrans

write field or makeDirty with active transaction

unchanged

unchanged

P-dirty

unchanged

P-dirty

retrieve outside of a transaction or with active optimistic transaction

unchanged

unchanged

unchanged

unchanged

P-nontrans

retrieve with active datastore transaction

unchanged

unchanged

unchanged

unchanged

P-clean

error: a JDOUserException is thrown; the state does not change

Table A-3. Lifecycle-state transitions ( continued )

Current state

 

T-clean

T-dirty

P-new-del

P-del

P-nontrans

Method

P-new

P-new

unchanged

unchanged

unchanged

makePersistent

error

error

unchanged

unchanged

P-del

deletePersistent

unchanged

unchanged

unchanged

unchanged

P-clean

makeTransactional

Transient

error

error

error

unchanged

makeNontransactional

unchanged

unchanged

error

error

Transient

makeTransient

unchanged

T-clean

Transient

Transient

unchanged

commit withRetainValues = false

unchanged

T-clean

Transient

Transient

unchanged

commit withRetainValues = true

unchanged

T-clean

Transient

Hollow

unchanged

rollback withRestoreValues = false

unchanged

T-clean

Transient

P-nontrans

unchanged

rollback withRestoreValues = true

unchanged

unchanged

unchanged

unchanged

unchanged

refresh with active datastore transaction

unchanged

unchanged

unchanged

unchanged

unchanged

refresh with active optimistic transaction

unchanged

unchanged

unchanged

unchanged

Hollow

evict

unchanged

impossible

impossible

impossible

unchanged

read field outsideof a transaction

unchanged

unchanged

error

error

unchanged

read field with active optimistic transaction

unchanged

unchanged

error

error

P-clean

read field with active datastore transaction

unchanged

impossible

impossible

impossible

unchanged

write field or makeDirty outside of a transaction

T-dirty

unchanged

error

error

P-dirty

write field or makeDirty with active transaction

unchanged

unchanged

unchanged

unchanged

unchanged

retrieve outside of a transaction or with active optimistic transaction

unchanged

unchanged

unchanged

unchanged

P-clean

retrieve with an active datastore transaction

unchanged: no state change takes place; no exception is thrown due to the state change



Java Data Objects
ADO.NET Programming with CDR (Wordware programming library)
ISBN: 596002769
EAN: 2147483647
Year: 2005
Pages: 159

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net