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 /***
30 * AbilityDbItem is a conveinience class for holding the items that will be
31 * put in the agents AbilityDb
32 * Change Log
33 *------------
34 * Simon put a () init method in so that this could be extended gracefully.
35 * @since 0.9
36 */
37
38 public class AbilityDbItem {
39 protected String agent;
40 protected AbilitySpec ability;
41
42 public AbilityDbItem() {
43 }
44
45 public AbilityDbItem(String agent, AbilitySpec ab) {
46 this.agent = agent;
47 ability = new AbilitySpec(ab);
48 }
49
50 public AbilityDbItem(AbilityDbItem item) {
51 agent = item.getAgent();
52 ability = new AbilitySpec(item.getAbility());
53 }
54
55 public AbilityDbItem duplicate(String name, GenSym genSym) {
56 DuplicationTable table = new DuplicationTable(name,genSym);
57 return duplicate(table);
58 }
59
60
61 public AbilityDbItem duplicate(DuplicationTable table) {
62 return new AbilityDbItem(agent,ability.duplicate(table));
63 }
64
65 public String getAgent() { return agent; }
66 public AbilitySpec getAbility() { return ability; }
67 public String getType() { return ability.getType(); }
68
69 public boolean resolve(Bindings b) {
70 return ability.resolve(b);
71 }
72
73 public boolean equals(AbilityDbItem item ) {
74 return agent.equals(item.getAgent()) &&
75 ability.equals(item.getAbility());
76 }
77
78 public String toString() {
79 return( "(" +
80 ":agent " + agent + " " +
81 ":ability " + ability.toString() +
82 ")"
83 );
84 }
85 }