01: /*
02: * This file is part of the WfMOpen project.
03: * Copyright (C) 2001-2003 Danet GmbH (www.danet.de), GS-AN.
04: * All rights reserved.
05: *
06: * This program is free software; you can redistribute it and/or modify
07: * it under the terms of the GNU General Public License as published by
08: * the Free Software Foundation; either version 2 of the License, or
09: * (at your option) any later version.
10: *
11: * This program is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: * GNU General Public License for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * along with this program; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: *
20: * $Id: Batch.java,v 1.2 2006/09/29 12:32:07 drmlipp Exp $
21: *
22: * $Log: Batch.java,v $
23: * Revision 1.2 2006/09/29 12:32:07 drmlipp
24: * Consistently using WfMOpen as projct name now.
25: *
26: * Revision 1.1.1.1 2003/06/30 20:05:13 drmlipp
27: * Initial import
28: *
29: * Revision 1.3 2003/06/27 08:51:46 lipp
30: * Fixed copyright/license information.
31: *
32: * Revision 1.2 2003/06/01 20:58:50 lipp
33: * Moved toSAX to batch.
34: *
35: * Revision 1.1 2002/12/10 11:21:05 lipp
36: * Added batch processing as "generic DTO".
37: *
38: */
39: package de.danet.an.workflow.api;
40:
41: import java.lang.reflect.InvocationTargetException;
42:
43: /**
44: * This interface must be implemented by classes that can be run as
45: * batch.
46: *
47: * @author <a href="mailto:lipp@danet.de"></a>
48: * @version $Revision: 1.2 $
49: */
50: public interface Batch {
51:
52: /**
53: * This interface specifies a simple contract between a batch and
54: * its execution environment.
55: */
56: public interface Context {
57:
58: /**
59: * Indicates if the transaction the batch is running in will
60: * eventually be rolled back. Continuing the execution of a
61: * batch if this method returns <code>true</code> is pointless.
62: * @return <code>true</code> if the current transaction will
63: * be rolled back.
64: */
65: boolean isRollbackOnly();
66: }
67:
68: /**
69: * Execute the batch.
70: *
71: * @param ctx the execution context
72: * @return the result as defined by the implementing class
73: * @throws InvocationTargetException wraps exceptions as defined
74: * by the implementing class
75: */
76: Object execute(Context ctx) throws InvocationTargetException;
77: }
|