1 /* 2 * This file is part of *** M y C o R e *** 3 * See http://www.mycore.de/ for details. 4 * 5 * MyCoRe is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * MyCoRe is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with MyCoRe. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 package org.mycore.services.queuedjob; 20 21 import java.util.concurrent.ExecutionException; 22 23 /** 24 * <code>MCRJobAction</code> must be extended to do some work for given {@link MCRJob}. 25 * 26 * @author Ren\u00E9 Adler 27 * 28 */ 29 public abstract class MCRJobAction { 30 protected MCRJob job; 31 32 /** 33 * The constructor of the job action. 34 */ 35 public MCRJobAction() { 36 } 37 38 /** 39 * The constructor of the job action with specific {@link MCRJob}. 40 */ 41 public MCRJobAction(MCRJob job) { 42 this.job = job; 43 } 44 45 /** 46 * Returns if this action is activated. 47 * 48 * @return <code>true</code> if activated, <code>false</code> if isn't 49 */ 50 public abstract boolean isActivated(); 51 52 /** 53 * Returns the name of the action. 54 * 55 * @return the name 56 */ 57 public abstract String name(); 58 59 /** 60 * Does the work for given {@link MCRJob}. 61 */ 62 public abstract void execute() throws ExecutionException; 63 64 /** 65 * When errors occurs during executing it can be necessary to rollback 66 * performed actions 67 */ 68 public abstract void rollback(); 69 }