Class WikiBackgroundThread

  • All Implemented Interfaces:
    java.lang.Runnable, java.util.EventListener, WikiEventListener
    Direct Known Subclasses:
    RSSThread

    public abstract class WikiBackgroundThread
    extends java.lang.Thread
    implements WikiEventListener
    Abstract Thread subclass that operates in the background; when it detects the WikiEngineEvent.SHUTDOWN event, it terminates itself. Subclasses of this method need only implement the method backgroundTask(), instead of the normal Thread.run(), and provide a constructor that passes the Engine and sleep interval. This class is thread-safe.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.lang.Thread

        java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
    • Field Summary

      • Fields inherited from class java.lang.Thread

        MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
    • Constructor Summary

      Constructors 
      Constructor Description
      WikiBackgroundThread​(Engine engine, int sleepInterval)
      Constructs a new instance of this background thread with a specified sleep interval, and adds the new instance to the wiki engine's event listeners.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(WikiEvent event)
      Listens for WikiEngineEvent.SHUTDOWN and, if detected, marks the thread for death.
      abstract void backgroundTask()
      Abstract method that performs the actual work for this background thread; subclasses must implement this method.
      Engine getEngine()
      Returns the Engine that created this background thread.
      void run()
      Runs the background thread's backgroundTask() method at the interval specified at construction.
      void shutdown()
      Requests the shutdown of this background thread.
      void shutdownTask()
      Executes a task after shutdown signal was detected.
      void startupTask()
      Executes a task just after the thread's Thread.run() method starts, but before the backgroundTask() task executes.
      • Methods inherited from class java.lang.Thread

        activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • WikiBackgroundThread

        public WikiBackgroundThread​(Engine engine,
                                    int sleepInterval)
        Constructs a new instance of this background thread with a specified sleep interval, and adds the new instance to the wiki engine's event listeners.
        Parameters:
        engine - the wiki engine
        sleepInterval - the interval between invocations of the thread's Thread.run() method, in seconds
    • Method Detail

      • backgroundTask

        public abstract void backgroundTask()
                                     throws java.lang.Exception
        Abstract method that performs the actual work for this background thread; subclasses must implement this method.
        Throws:
        java.lang.Exception - Any exception can be thrown
      • getEngine

        public Engine getEngine()
        Returns the Engine that created this background thread.
        Returns:
        the wiki engine
      • shutdown

        public void shutdown()
        Requests the shutdown of this background thread. Note that the shutdown is not immediate.
        Since:
        2.4.92
      • run

        public final void run()
        Runs the background thread's backgroundTask() method at the interval specified at construction. The thread will initially pause for a full sleep interval before starting, after which it will execute startupTask(). This method will cleanly terminate the thread if it has previously been marked as dead, before which it will execute shutdownTask(). If any of the three methods return an exception, it will be re-thrown as a InternalWikiException.
        Specified by:
        run in interface java.lang.Runnable
        Overrides:
        run in class java.lang.Thread
        See Also:
        Thread.run()
      • shutdownTask

        public void shutdownTask()
                          throws java.lang.Exception
        Executes a task after shutdown signal was detected. By default, this method does nothing; override it to implement custom functionality.
        Throws:
        java.lang.Exception - Any exception can be thrown.
      • startupTask

        public void startupTask()
                         throws java.lang.Exception
        Executes a task just after the thread's Thread.run() method starts, but before the backgroundTask() task executes. By default, this method does nothing; override it to implement custom functionality.
        Throws:
        java.lang.Exception - Any exception can be thrown.