2 * Created on 2005-04-02 This file is created 2005-04-02 and
3 * descripes StateOldDirty
5 package drno
.server
.database
.persistence
;
7 import drno
.exception
.ConsistanceException
;
8 import drno
.exception
.DatabaseDisconnectedException
;
9 import drno
.exception
.ObjectLockException
;
10 import drno
.exception
.UnkErrException
;
11 import drno
.server
.database
.persistence
.repository
.MapperFacade
;
12 import drno
.support
.Logger
;
15 * The object is loaded from the database and needs saving.
19 final class StateOldDirty
extends AbstractState
{
20 /** singleton instance */
21 public final static AbstractState instance
= new StateOldDirty();
24 * Singleton constructor.
26 * private forces use of instance.
28 private StateOldDirty() {
33 // Since the object is modified, it must not be
38 void commit(LockObject lock
, PersistentObject obj
) throws ObjectLockException
,
43 if (obj
.isLockedForEdit(lock
)) {
46 MapperFacade
.instance().update(obj
);
47 obj
.setState(StateOldClean
.instance
);
49 catch (DatabaseDisconnectedException e
) {
54 throw new ObjectLockException();
57 LockObject
delete(LockObject lock
, PersistentObject obj
) throws ObjectLockException
59 if (obj
.isLockedForEdit(lock
)) {
60 obj
.setState(StateOldDelete
.instance
);
63 throw new ObjectLockException();
67 void rollback(LockObject lock
, PersistentObject obj
) throws UnkErrException
,
70 if (obj
.isLockedForEdit(lock
)) {
72 MapperFacade
.instance().reload(obj
);
73 obj
.setState(StateOldClean
.instance
);
76 catch (DatabaseDisconnectedException e
) {
81 throw new ObjectLockException();
84 LockObject
save(PersistentObject obj
) throws ObjectLockException
86 // hvis at man prøver at kalde den her funktion i
88 // tyder det på at en anden forsøger at få adgang -
90 System
.err
.println("Argh");
91 throw new ObjectLockException();