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.io.*;
27 import java.util.*;
28 import zeus.util.*;
29
30 public class FactSummary extends Summary {
31 public static final String ALLOCATED = "Reserved";
32 public static final String UNALLOCATED = "Free";
33
34 protected Fact fact;
35
36 public FactSummary(Fact fact, String status) {
37 setFact(fact);
38 setStatus(status);
39 }
40
41 public FactSummary(FactSummary s) {
42 setFact(s.getFact());
43 setStatus(s.getStatus());
44 }
45
46 public String getType() { return fact.getType(); }
47 public String getId() { return fact.getId(); }
48 public Fact getFact() { return fact; }
49
50 public String[] summarize() {
51 String[] data = { fact.getId(), status };
52 return data;
53 }
54
55 public void setStatus(String status) {
56 Assert.notNull(status);
57 Assert.notFalse( status.equals(ALLOCATED) || status.equals(UNALLOCATED) ||
58 status.equals(UNKNOWN) );
59 this.status = status;
60 }
61 public void setFact(Fact fact) {
62 Assert.notNull(fact);
63 this.fact = fact;
64 }
65
66 public boolean equals(FactSummary s ) {
67 return fact.equals(s.getFact()) &&
68 status.equals(s.getStatus());
69 }
70
71 public String toString() {
72 return( "(" +
73 ":fact " + fact.toString() + " " +
74 ":status " + status +
75 ")"
76 );
77 }
78
79 public String pprint() {
80 return pprint(0);
81 }
82 public String pprint(int sp) {
83 String prefix;
84 String tabs = Misc.spaces(sp);
85 String eol = "\n" + tabs + " ";
86
87 prefix = "(:fact ";
88 String s = prefix + fact.pprint(sp+prefix.length()) + eol +
89 ":status " + status + eol;
90 return s.trim() + "\n" + tabs + ")";
91 }
92 }