001    package de.deepamehta.storage.neo4j;
002    
003    import de.deepamehta.core.storage.spi.DeepaMehtaTransaction;
004    
005    import org.neo4j.graphdb.GraphDatabaseService;
006    import org.neo4j.graphdb.Transaction;
007    
008    
009    
010    /**
011     * Adapts a Neo4j transaction to a DeepaMehta transaction.
012     */
013    class Neo4jTransactionAdapter implements DeepaMehtaTransaction {
014    
015        // ---------------------------------------------------------------------------------------------- Instance Variables
016    
017        private Transaction tx;
018    
019        // ---------------------------------------------------------------------------------------------------- Constructors
020    
021        Neo4jTransactionAdapter(GraphDatabaseService neo4j) {
022            tx = neo4j.beginTx();
023        }
024    
025        // -------------------------------------------------------------------------------------------------- Public Methods
026    
027        @Override
028        public void success() {
029            tx.success();
030        }
031    
032        @Override
033        public void failure() {
034            tx.failure();
035        }
036    
037        @Override
038        public void finish() {
039            tx.finish();
040        }
041    }