uk.ac.manchester.cs.owl.owlapi.concurrent.NoOpLock Maven / Gradle / Ivy
package uk.ac.manchester.cs.owl.owlapi.concurrent;
import java.io.Serializable;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import javax.annotation.Nullable;
/**
* Matthew Horridge Stanford Center for Biomedical Informatics Research 13/04/15
*/
class NoOpLock implements Lock, Serializable {
public static final NoOpCondition NO_OP_CONDITION = new NoOpCondition();
@Override
public void lock() {
// nothing to do
}
@Override
public void lockInterruptibly() {
// nothing to do
}
@Override
public boolean tryLock() {
return true;
}
@Override
public boolean tryLock(long time, @Nullable TimeUnit unit) {
return true;
}
@Override
public void unlock() {
// nothing to do
}
@Override
public Condition newCondition() {
return NO_OP_CONDITION;
}
private static class NoOpCondition implements Condition, Serializable {
public NoOpCondition() {
// nothing to do
}
@Override
public void await() {
// nothing to do
}
@Override
public void awaitUninterruptibly() {
// nothing to do
}
@Override
public long awaitNanos(long nanosTimeout) {
return 0;
}
@Override
public boolean await(long time, @Nullable TimeUnit unit) {
return true;
}
@Override
public boolean awaitUntil(@Nullable Date deadline) {
return true;
}
@Override
public void signal() {
// nothing to do
}
@Override
public void signalAll() {
// nothing to do
}
}
}