01
02 /**
03 * Title: Advanced Network Client Sample<p>
04 * Description: <p>
05 * Copyright: Copyright (C) 2009 Alexey Veremenko<p>
06 * Company: <p>
07 * @author Alexey Veremenko
08 * @version 1.0
09 */
10 package networking.protocol;
11
12 import java.io.*;
13
14 /**
15 * Client - this class represents an object which describes client,
16 * aka client descriptor
17 */
18 public class Client implements Serializable, Comparable
19 {
20 /**
21 * Name of the client
22 */
23 private String m_name;
24
25 /**
26 * Construct new Client object
27 */
28 public Client(String name)
29 {
30 if (name == null)
31 throw new IllegalArgumentException("name can't be null");
32
33 m_name = name;
34 }
35
36 /**
37 * Get client's name
38 * @return client's name
39 */
40 public final String getName()
41 {
42 return m_name;
43 }
44
45 /*
46 * Implement Comparable
47 */
48 public int compareTo(Object o)
49 {
50 Client c = (Client)o;
51 return m_name.compareTo(c.getName());
52 }
53
54 /*
55 * Override Object
56 */
57 public boolean equals(Object o)
58 {
59 if (!(o instanceof Client))
60 return false;
61
62 Client c = (Client)o;
63
64 return c.getName().equals(getName());
65 }
66
67 /*
68 * Override Object
69 */
70 public int hashCode()
71 {
72 return getName().hashCode();
73 }
74
75 /*
76 * Override Object
77 */
78 public String toString()
79 {
80 return getName();
81 }
82 }
|