Transition close() { logger.trace("Closing"); InternalStatus.Transition st; if(maintenanceLease != null && Thread.currentThread() != maintenanceLease) { throw new IllegalStateException("You don't own this MAINTENANCE lease"); } for (InternalStatus.Transition cs; !currentState.compareAndSet(cs = currentState.get(), st = cs.get().close());); return new Transition(st, null, "Close"); }
Transition maintenance() { logger.trace("Entering Maintenance"); InternalStatus.Transition st; for (InternalStatus.Transition cs; !currentState.compareAndSet(cs = currentState.get(), st = cs.get().maintenance());); return new Transition(st, Thread.currentThread(), "Enter Maintenance"); }
Transition init() { logger.trace("Initializing"); InternalStatus.Transition st; for (InternalStatus.Transition cs; !currentState.compareAndSet(cs = currentState.get(), st = cs.get().init());); return new Transition(st, null, "Initialize"); }
Transition maintenance() { logger.trace("Entering Maintenance"); InternalStatus.Transition st; for (InternalStatus.Transition cs; !currentState.compareAndSet(cs = currentState.get(), st = cs.get().maintenance());); return new Transition(st, Thread.currentThread(), "Enter Maintenance"); }
Transition init() { logger.trace("Initializing"); InternalStatus.Transition st; for (InternalStatus.Transition cs; !currentState.compareAndSet(cs = currentState.get(), st = cs.get().init());); return new Transition(st, null, "Initialize"); }
Transition exitMaintenance() { checkMaintenance(); logger.trace("Exiting Maintenance"); InternalStatus.Transition st; for (InternalStatus.Transition cs; !currentState.compareAndSet(cs = currentState.get(), st = cs.get().close());); return new Transition(st, Thread.currentThread(), "Exit Maintenance"); }
Transition close() { logger.trace("Closing"); InternalStatus.Transition st; if(maintenanceLease != null && Thread.currentThread() != maintenanceLease) { throw new IllegalStateException("You don't own this MAINTENANCE lease"); } for (InternalStatus.Transition cs; !currentState.compareAndSet(cs = currentState.get(), st = cs.get().close());); return new Transition(st, null, "Close"); }
Transition exitMaintenance() { checkMaintenance(); logger.trace("Exiting Maintenance"); InternalStatus.Transition st; for (InternalStatus.Transition cs; !currentState.compareAndSet(cs = currentState.get(), st = cs.get().close());); return new Transition(st, Thread.currentThread(), "Exit Maintenance"); }