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