73c60682d23e93202c54603a082fa1c984dbbd78
[IRC.git] /
1 /*
2  * To change this template, choose Tools | Templates
3  * and open the template in the editor.
4  */
5
6 package com.solidosystems.tuplesoup.core;
7
8 import dstm2.AtomicSuperClass;
9 import dstm2.atomic;
10
11 /**
12  *
13  * @author navid
14  */
15 public class TableIndexNodeTransactional implements AtomicSuperClass{
16
17     //private TableIndexNodeTransactional previous;
18     //private TableIndexEntryTransactional data;
19     //private TableIndexNodeTransactional next;
20     TableIndexInodeTSinf atomicfields;
21     
22     public @atomic interface TableIndexInodeTSinf{
23         TableIndexNodeTransactional getPrevious(); 
24         TableIndexEntryTransactional getData(); 
25         TableIndexNodeTransactional getNext(); 
26         
27         void setPrevious(TableIndexNodeTransactional val); 
28         void setData(TableIndexEntryTransactional val); 
29         void setNext(TableIndexNodeTransactional val);
30     }
31     
32     public TableIndexNodeTransactional(){
33         atomicfields.setPrevious(null);
34         atomicfields.setData(null);
35         atomicfields.setNext(null);
36     }
37     
38     public TableIndexNodeTransactional(TableIndexEntryTransactional entry){
39         atomicfields.setPrevious(null);
40         atomicfields.setData(entry);
41         atomicfields.setNext(null);
42         
43     }
44     
45     public TableIndexNodeTransactional(TableIndexNodeTransactional prev,TableIndexEntryTransactional entry){
46         atomicfields.setPrevious(prev);
47         atomicfields.setData(entry);
48         atomicfields.setNext(null);
49     }
50     
51     public TableIndexNodeTransactional(TableIndexNodeTransactional prev,TableIndexEntryTransactional entry,TableIndexNodeTransactional nex){
52         atomicfields.setPrevious(prev);
53         atomicfields.setData(entry);
54         atomicfields.setNext(nex);
55     }
56     
57     public TableIndexEntryTransactional getData(){
58         return atomicfields.getData();
59     }
60     public TableIndexNodeTransactional getPrevious(){
61         return atomicfields.getPrevious();
62     }
63     public TableIndexNodeTransactional getNext(){
64         return atomicfields.getNext();
65     }
66     public void setNext(TableIndexNodeTransactional node){
67         atomicfields.setNext(node);
68     }
69     public void setPrevious(TableIndexNodeTransactional node){
70         atomicfields.setPrevious(node);
71     }
72     public void setData(TableIndexEntryTransactional entry){
73         atomicfields.setData(entry);
74     }
75     public void remove(){
76         if(atomicfields.getPrevious()!=null){
77             atomicfields.getPrevious().setNext(atomicfields.getNext());
78         }
79         if(atomicfields.getNext()!=null){
80             atomicfields.getNext().setPrevious(atomicfields.getPrevious());
81         }
82     }
83 }