01: /*
02: (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
03: [See end of file]
04: $Id: TransactionHandlerBase.java,v 1.8 2008/01/02 12:05:17 andy_seaborne Exp $
05: */
06:
07: package com.hp.hpl.jena.graph.impl;
08:
09: import com.hp.hpl.jena.graph.*;
10: import com.hp.hpl.jena.shared.*;
11:
12: /**
13: @author kers
14:
15: A base for transaction handlers - all it does is provide the canonical
16: implementation of executeInTransaction.
17: */
18: public abstract class TransactionHandlerBase implements
19: TransactionHandler {
20: public TransactionHandlerBase() {
21: super ();
22: }
23:
24: /**
25: Execute the command <code>c</code> within a transaction. If it
26: completes normally, commit the transaction and return the result.
27: Otherwise abort the transaction and throw a wrapped exception.
28: */
29: public Object executeInTransaction(Command c) {
30: begin();
31: try {
32: Object result = c.execute();
33: commit();
34: return result;
35: } catch (JenaException e) {
36: abort();
37: throw e;
38: } catch (Throwable e) {
39: abort();
40: throw new JenaException(e);
41: }
42: }
43: }
44:
45: /*
46: (c) Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
47: All rights reserved.
48:
49: Redistribution and use in source and binary forms, with or without
50: modification, are permitted provided that the following conditions
51: are met:
52:
53: 1. Redistributions of source code must retain the above copyright
54: notice, this list of conditions and the following disclaimer.
55:
56: 2. Redistributions in binary form must reproduce the above copyright
57: notice, this list of conditions and the following disclaimer in the
58: documentation and/or other materials provided with the distribution.
59:
60: 3. The name of the author may not be used to endorse or promote products
61: derived from this software without specific prior written permission.
62:
63: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
64: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
65: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
66: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
67: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
68: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
69: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
70: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
71: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
72: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
73: */
|