Coverage Report - net.sourceforge.acelogger.execution.task.NotifiableTask
 
Classes in this File Line Coverage Branch Coverage Complexity
NotifiableTask
71%
5/7
N/A
1
 
 1  
 /*
 2  
  * This file is part of AceLogger.
 3  
  * 
 4  
  * AceLogger is free software: you can redistribute it and/or modify it under the terms of the GNU
 5  
  * Lesser General Public License as published by the Free Software Foundation, either version 3 of
 6  
  * the License, or (at your option) any later version.
 7  
  * 
 8  
  * AceLogger is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
 9  
  * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 10  
  * Lesser General Public License for more details.
 11  
  * 
 12  
  * You should have received a copy of the GNU Lesser General Public License along with AceLogger.
 13  
  * If not, see <http://www.gnu.org/licenses/lgpl-3.0.html>.
 14  
  */
 15  
 package net.sourceforge.acelogger.execution.task;
 16  
 
 17  
 /**
 18  
  * A {@link Runnable} implementation and wrapper that supports a call back for the execution of a
 19  
  * task.
 20  
  * 
 21  
  * @author Zardi (https://sourceforge.net/users/daniel_zardi)
 22  
  * @version 1.0.0
 23  
  * @since 1.0.0
 24  
  */
 25  
 public class NotifiableTask implements Runnable {
 26  
 
 27  
         /**
 28  
          * The task that will be monitored for execution.
 29  
          */
 30  
         private final Runnable task;
 31  
 
 32  
         /**
 33  
          * The call back that will be executed after the task execution.
 34  
          */
 35  
         private final Runnable callback;
 36  
 
 37  
         /**
 38  
          * Constructs a new NotifiableTask with the given task and call back.
 39  
          * 
 40  
          * @param task
 41  
          *            The task to be monitored.
 42  
          * @param callback
 43  
          *            The call back to be invoked after the task completion.
 44  
          * @since 1.0.0
 45  
          */
 46  1
         public NotifiableTask(Runnable task, Runnable callback) {
 47  1
                 this.task = task;
 48  1
                 this.callback = callback;
 49  1
         }
 50  
 
 51  
         /** {@inheritDoc} */
 52  
         public void run() {
 53  1
                 task.run();
 54  0
                 callback.run();
 55  0
         }
 56  
 
 57  
 }