1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package zeus.concepts;
25
26 import java.util.*;
27 import zeus.util.*;
28
29 public class ResolutionContext extends Hashtable {
30
31 public ResolutionContext() {
32 super();
33 }
34 public ResolutionContext(Hashtable c) {
35 this();
36 add(c);
37 }
38 public ResolutionContext(ResolutionContext c) {
39 this();
40 add(c);
41 }
42 public void add(ResolutionContext c) {
43 add((Hashtable)c);
44 }
45 public void add(Hashtable c) {
46 String key;
47 Enumeration enum = c.keys();
48 while( enum.hasMoreElements() ) {
49 key = (String)enum.nextElement();
50 Assert.notFalse(this.put(key,c.get(key)) == null);
51 }
52 }
53 public void add(Vector c) {
54 for(int i = 0; i < c.size(); i++ )
55 add((Fact)c.elementAt(i));
56 }
57 public void add(Fact f1) {
58 Assert.notFalse(this.put(f1.getId(),f1) == null);
59 }
60 public Fact lookUp(String fid) {
61 return (Fact)this.get(fid);
62 }
63 public String toString() {
64 String out = "";
65 Enumeration enum = this.elements();
66 Object data;
67 while( enum.hasMoreElements() ) {
68 data = enum.nextElement();
69 out += data;
70 }
71 return out;
72 }
73 public ResolutionContext duplicate(String name, GenSym genSym) {
74 DuplicationTable table = new DuplicationTable(name,genSym);
75 return duplicate(table);
76 }
77 public ResolutionContext duplicate(DuplicationTable table) {
78 Fact f1;
79 ResolutionContext context = new ResolutionContext();
80
81 Enumeration enum = this.elements();
82 while( enum.hasMoreElements() ) {
83 f1 = (Fact)enum.nextElement();
84 context.add(f1.duplicate(table));
85 }
86 return context;
87 }
88 }