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 (!(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 }
Java2html