public class MutableNoAliasesLockOptions implements LockOptions {
private LockMode lockMode;
private int timeout = NO_TIMEOUT;
private boolean scope;
public MutableNoAliasesLockOptions() {
this( LockMode.NONE, NO_TIMEOUT, false );
}
public MutableNoAliasesLockOptions(LockMode lockMode) {
this( lockMode, NO_TIMEOUT, false );
}
public MutableNoAliasesLockOptions(LockMode lockMode, int timeout) {
this( lockMode, timeout, false );
}
public MutableNoAliasesLockOptions(LockMode lockMode, boolean scope) {
this( lockMode, NO_TIMEOUT, scope );
}
public MutableNoAliasesLockOptions(LockMode lockMode, int timeout, boolean scope) {
this.lockMode = lockMode;
this.timeout = timeout;
this.scope = scope;
}
@Override
public LockMode getLockMode() {
return lockMode;
}
@Override
public LockMode getAliasSpecificLockMode(String alias) {
return null;
}
@Override
public LockMode getEffectiveLockMode(String alias) {
return lockMode;
}
@Override
public boolean hasAliasSpecificLockModes() {
return false;
}
...
@Override
public MutableNoAliasesLockOptions setLockMode(LockMode lockMode) {
this.lockMode = lockMode;
return this;
}
@Override
public MutableNoAliasesLockOptions setTimeOut(int timeout) {
this.timeout = timeout;
return this;
}
@Override
public MutableNoAliasesLockOptions setScope(boolean scope) {
this.scope = scope;
return this;
}
@Override
public FullyMutableLockOptions setAliasSpecificLockMode(String alias, LockMode lockMode) {
return new FullyMutableLockOptions( this.lockMode, timeout, scope, alias, lockMode );
}
}