1 import java.util.ArrayList;
\r
2 import java.util.Hashtable;
\r
3 import java.util.Set;
\r
5 public class OptimizedView extends MultiHash
\r
7 private int bitMapView;
\r
8 private Hashtable table;
\r
9 private MultiHash parent;
\r
11 public OptimizedView(int bitMapView, Hashtable table, MultiHash parent) {
\r
12 this.bitMapView = bitMapView;
\r
14 this.parent = parent;
\r
17 public void remove(Tuple o){
\r
20 public Tuples get(Tuples o){
\r
21 Tuples tuple = new Tuple();
\r
23 int tupleKey = generateTupleKey(o);
\r
24 if(table.containsKey(tupleKey)){
\r
25 Set tupleSet = (Set) table.get(tupleKey);
\r
26 tuple = convertToTuple(tupleSet);
\r
32 private Tuples convertToTuple(Set tupleSet){
\r
33 Object[] tuples = tupleSet.toArray();
\r
34 ArrayList o = new ArrayList();
\r
35 for(int i = 0; i < tuples.length; i++){
\r
38 Tuples tuple = new Tuple(o);
\r
42 public int generateTupleKey(Tuples o){
\r
43 ArrayList<Integer> indices = findIndices(bitMapView);
\r
44 ArrayList obj = new ArrayList();
\r
45 for(int i = 0; i < indices.size(); i++){
\r
46 obj.add(o.get(indices.get(i)));
\r
48 return obj.hashCode()^29;
\r
51 private ArrayList<Integer> findIndices(int viewIndex){
\r
53 ArrayList<Integer> indices = new ArrayList<Integer>();
\r
54 for(int i = 0; i < 31; i++){
\r
55 if((mask & viewIndex) != 0){
\r
63 public String toString(){
\r
64 return table.toString();
\r