source: src/main/java/genius/core/AgentID.java@ 126

Last change on this file since 126 was 126, checked in by Aron Hammond, 6 years ago

Added function to calculate opposition to MultiLateralAnalysis.java

Moved code to add RLBOA listeners to RLBOAUtils is misc package

Added input for strategyParameters to SessionPanel (gui)

!! close SessionInfo after tournament; this caused /tmp/ to fill up with GeniusData files

Our own package:

  • Added opponents and strategies that are mentioned in the report
  • Change class hierarchy, agents can now extend from RLBOAagentBilateral to inherit RL functionality.
  • States extend from AbstractState
File size: 1.9 KB
Line 
1package genius.core;
2
3import java.io.Serializable;
4
5import javax.xml.bind.annotation.XmlAttribute;
6import javax.xml.bind.annotation.XmlRootElement;
7
8/**
9 * Unique ID for an agent. Immutable. Not guaranteed to be unique.
10 *
11 */
12@XmlRootElement
13public class AgentID implements Serializable {
14
15 /**
16 *
17 */
18 private static final long serialVersionUID = -6858722448196458573L;
19
20 @XmlAttribute
21 String ID;
22
23 private static int serialNr = 0; // for generating unique party ids.
24
25 /**
26 * only for XML deserialization.
27 */
28 @SuppressWarnings("unused")
29 private AgentID() {
30
31 }
32
33 public AgentID(String id) {
34 this.ID = id;
35 }
36
37 /**
38 * factory function
39 *
40 * @param basename
41 * the basename for the agent ID
42 * @return a new unique AgentID based on the basename plus a unique serial
43 * number. These are unique only for a single run of the system, you
44 * can not assume new generated IDs to be different from IDs
45 * generated in earlier runs.
46 */
47 public static AgentID generateID(String basename) {
48 return new AgentID(basename + "@" + serialNr++);
49 }
50
51 @Override
52 public int hashCode() {
53 final int prime = 31;
54 int result = 1;
55 result = prime * result + ((ID == null) ? 0 : ID.hashCode());
56 return result;
57 }
58
59 @Override
60 public boolean equals(Object obj) {
61 if (this == obj)
62 return true;
63 if (obj == null)
64 return false;
65 if (getClass() != obj.getClass())
66 return false;
67 AgentID other = (AgentID) obj;
68 if (ID == null) {
69 if (other.ID != null)
70 return false;
71 } else if (!ID.equals(other.ID))
72 return false;
73 return true;
74 }
75
76 @Override
77 public String toString() {
78 return ID;
79 }
80
81 /**
82 *
83 * @return the agent's name, but with the serial number ("@X" with X a
84 * integer) extension stripped if there is such an extension
85 */
86 public String getName() {
87
88 if (ID.matches(".+@[0-9]+")) {
89 return ID.substring(0, ID.lastIndexOf("@"));
90 }
91 return ID;
92 }
93}
Note: See TracBrowser for help on using the repository browser.