package com.sleepycat.je.txn; import de.ovgu.cide.jakutil.*; /** * LockConflict is a type safe enumeration of lock conflict types. Methods on * LockConflict objects are used to determine whether a conflict exists and, if * so, how it should be handled. */ class LockConflict { static final LockConflict ALLOW=new LockConflict(true,false); static final LockConflict BLOCK=new LockConflict(false,false); static final LockConflict RESTART=new LockConflict(false,true); private boolean allowed; private boolean restart; /** * No conflict types can be defined outside this class. */ private LockConflict( boolean allowed, boolean restart){ this.allowed=allowed; this.restart=restart; } /** * This method is called first to determine whether the locks is allowed. * If true, there is no conflict. If false, there is a conflict and the * requester must wait for or be denied the lock, or (if getRestart returns * true) an exception should be thrown to cause the requester's operation * to be restarted. */ boolean getAllowed(){ return allowed; } /** * This method is called when getAllowed returns false to determine whether * an exception should be thrown to cause the requester's operation to be * restarted. If getAllowed returns false and this method returns false, * the requester should wait for or be denied the lock, depending on the * request mode. If getAllowed returns true, this method will always * return false. */ boolean getRestart(){ return restart; } }