-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathClientList.java
136 lines (122 loc) · 2.88 KB
/
ClientList.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
/**
* The collection class for Client objects
*
* @author Matt Carlson, Jamison Czech, Slava Makharovich, Prashant Shrestha
*/
public class ClientList implements Serializable {
private static ClientList clientList;
private List clients = new LinkedList();
/*
* Private constructor to create singleton
*/
private ClientList() {
}
/**
* ClientList singleton
* @return the ClientList singleton object
*/
public static ClientList instance() {
return clientList == null ? (clientList = new ClientList()) : clientList;
}
/**
* Adds a Client to the collection
* @param client
* @return
* A boolean value indicating successful addition to collection.
*/
public boolean insertClient(Client client) {
clients.add(client);
return true;
}
/**
* searches for a client in the collection
* @param clientID
* @return a Client if found or null if not found
*/
public Client search(String clientID) {
for (Iterator iterator = clients.iterator(); iterator.hasNext();) {
Client client = (Client) iterator.next();
if (client.getClientID().equals(clientID)) {
return client;
}
}
return null;
}
/**
* return a list of clients
*/
public void getClientList(){
Iterator result = clients.iterator();
System.out.println("The Clients are: ");
while(result.hasNext()) {
System.out.println(result.next());
}
}
/**
* removes a client with the given clientID from the collection
* @param clientID
* @return true if Client exists in the collection, or false otherwise
*/
public boolean removeClient(String clientID) {
Client client = search(clientID);
if (client == null) {
return false;
}
else {
return clients.remove(clientID);
}
}
/**
* write objects for serialization
* @param output stream
*/
private void writeObject(ObjectOutputStream output) {
try {
//output.defaultWriteObject();
output.writeObject(clientList);
}
catch(IOException ioe) {
System.out.println(ioe);
}
}
/**
* read serialized object
* @param input stream
*/
private void readObject(ObjectInputStream input) {
try {
if (clientList != null) {
return;
}
else {
input.defaultReadObject();
if (clientList == null) {
clientList = (ClientList) input.readObject();
}
else {
input.readObject();
}
}
}
catch(IOException ioe) {
System.out.println("in ClientList readObject \n" + ioe);
}
catch(ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
}
/**
* String of the client
*/
@Override
public String toString() {
return clients.toString();
}
}