View Javadoc

1   /*
2   * The contents of this file are subject to the BT "ZEUS" Open Source 
3   * Licence (L77741), Version 1.0 (the "Licence"); you may not use this file 
4   * except in compliance with the Licence. You may obtain a copy of the Licence
5   * from $ZEUS_INSTALL/licence.html or alternatively from
6   * http://www.labs.bt.com/projects/agents/zeus/licence.htm
7   * 
8   * Except as stated in Clause 7 of the Licence, software distributed under the
9   * Licence is distributed WITHOUT WARRANTY OF ANY KIND, either express or 
10  * implied. See the Licence for the specific language governing rights and 
11  * limitations under the Licence.
12  * 
13  * The Original Code is within the package zeus.*.
14  * The Initial Developer of the Original Code is British Telecommunications
15  * public limited company, whose registered office is at 81 Newgate Street, 
16  * London, EC1A 7AJ, England. Portions created by British Telecommunications 
17  * public limited company are Copyright 1996-9. All Rights Reserved.
18  * 
19  * THIS NOTICE MUST BE INCLUDED ON ANY COPY OF THIS FILE
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  }