/**
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 *  See the NOTICE file distributed with this work for additional
 *  information regarding copyright ownership.
 */

package org.seaborne.dboe.transaction.txn;

import java.nio.ByteBuffer ;

/** Single component aspect of a transaction */  
final 
class SysTrans {
    private final TransactionalComponent elt ;
    private final Transaction transaction ;
    private final TxnId txnId ;
//    // Current mode - when promotable transaction are implemented, this will be resettable.
//    private final ReadWrite mode ;

    public SysTrans(TransactionalComponent elt, Transaction transaction, TxnId txnId) { 
        this.elt = elt ;
        this.transaction = transaction ;
        this.txnId = txnId ;
    }

    public void begin() { }

    public ByteBuffer commitPrepare() { return elt.commitPrepare(transaction) ; }

    public void commit() { elt.commit(transaction); }

    public void commitEnd() { elt.commitEnd(transaction); }

    public void abort() { elt.abort(transaction); }

    public void complete() { elt.complete(transaction); }
    
    public Transaction getTransaction()     { return transaction ; } 
    public TxnId getTxnId()                 { return txnId ; } 
    public ComponentId getComponentId()     { return elt.getComponentId() ; }
}

@@ -1299,16 +1299,32 @@
  begin()
+                
  %7B %7D%0A%0A  
@@ -1358,16 +1358,18 @@
 repare()
+  
  %7B retur
@@ -1430,16 +1430,31 @@
 commit()
+               
  %7B elt.c
@@ -1503,16 +1503,28 @@
 mitEnd()
+            
  %7B elt.c
@@ -1572,16 +1572,32 @@
  abort()
+                
  %7B elt.a
@@ -1644,16 +1644,29 @@
 mplete()
+             
  %7B elt.c
@@ -1733,16 +1733,24 @@
 action()
+        
      %7B r
@@ -1808,32 +1808,40 @@
                 
+  
+      
 %7B return txnId ;
@@ -1840,24 +1840,93 @@
  txnId ; %7D %0A
+    public TransactionalComponent getComponent()    %7B return elt ; %7D%0A
     public C
@@ -1948,24 +1948,32 @@
 omponentId()
+        
      %7B retur

Add getComponent(). Reformat.