* If a timeout was requested, the subclass should immediately throw an {@link AutomataOperationCanceledException}. * * @return true iff {@link AutomataLibraryServices} object requests cancellation */ protected final boolean isCancellationRequested() { return !mServices.getProgressAwareTimer().continueProcessing(); } protected final void printStartMessage() { if (mLogger.isInfoEnabled()) { mLogger.info(startMessage()); } } protected final void printExitMessage() { if (mLogger.isInfoEnabled()) { mLogger.info(exitMessage()); } } protected final void printStartCheckMessage() { if (mLogger.isInfoEnabled()) { mLogger.info("Start testing correctness of " + getOperationName()); } } protected final void printExitCheckMessage() { if (mLogger.isInfoEnabled()) { mLogger.info("Finished testing correctness of " + getOperationName()); } } @Override public boolean checkResult(final CRSF stateFactory) throws AutomataLibraryException { if (mLogger.isWarnEnabled()) { mLogger.warn("No result check for " + getOperationName() + " available yet."); } return true; } /** * @return generic running task description. */ protected String generateGenericRunningTaskDescription() { return "applying " + getOperationName(); } /** * @param aoce * {@link AutomataOperationCanceledException}. */ protected final void addGenericRunningTaskInfo(final AutomataOperationCanceledException aoce) { addRunningTaskInfo(aoce, generateGenericRunningTaskDescription()); } /** * @param aoce * {@link AutomataOperationCanceledException}. * @param description * description */ protected final void addRunningTaskInfo(final AutomataOperationCanceledException aoce, final String description) { aoce.addRunningTaskInfo(new RunningTaskInfo(getClass(), description)); } }