package ilarkesto.concurrent.locker; import ilarkesto.base.time.DateAndTime; import ilarkesto.base.time.TimePeriod; public class Lock { private Object object; private Object locker; private DateAndTime time; private TimePeriod maxLockTime; Lock(Object object, Object locker, TimePeriod maxLockTime) { this.object = object; this.locker = locker; this.maxLockTime = maxLockTime; this.time = DateAndTime.now(); } public Object getObject() { return object; } public Object getLocker() { return locker; } public DateAndTime getTime() { return time; } public boolean isTimedOut() { return time.getPeriodToNow().isGreaterThen(maxLockTime); } @Override public String toString() { return object + " locked by " + locker + " since " + time; } }