View Javadoc

1   /* $HeadURL::                                                                            $
2    * $Id$
3    *
4    * Copyright (c) 2009-2010 DuraSpace
5    * http://duraspace.org
6    *
7    * In collaboration with Topaz Inc.
8    * http://www.topazproject.org
9    *
10   * Licensed under the Apache License, Version 2.0 (the "License");
11   * you may not use this file except in compliance with the License.
12   * You may obtain a copy of the License at
13   *
14   *     http://www.apache.org/licenses/LICENSE-2.0
15   *
16   * Unless required by applicable law or agreed to in writing, software
17   * distributed under the License is distributed on an "AS IS" BASIS,
18   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19   * See the License for the specific language governing permissions and
20   * limitations under the License.
21   */
22  
23  package org.akubraproject.txn;
24  
25  import java.io.IOException;
26  import java.net.URI;
27  
28  import org.akubraproject.BlobStore;
29  import org.akubraproject.impl.AbstractBlobStore;
30  
31  /**
32   * A basic superclass for transactional stores.
33   *
34   * <p>Subclasses must implement {@link BlobStore#openConnection openConnection}.
35   *
36   * @author Ronald Tschalär
37   */
38  public abstract class AbstractTransactionalStore extends AbstractBlobStore {
39    /** the underlying blob-store used for the actual storage */
40    protected final BlobStore wrappedStore;
41  
42    /**
43     * Create a new transactional store.
44     *
45     * @param id      the id of this store
46     * @param wrappedStore the wrapped non-transactional store
47     */
48    protected AbstractTransactionalStore(URI id, BlobStore wrappedStore) throws IOException {
49      super(id);
50      this.wrappedStore = wrappedStore;
51    }
52  }