-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCardList.java
146 lines (129 loc) · 3 KB
/
CardList.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
137
138
139
140
141
142
143
144
145
146
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;
/**
* This class creates a Show for a client holding a show name, clientID, and
* start and end date for the show. creation
*
* @author Matt Carlson, Jamison Czech, Slava Makharovich, Prashant Shrestha
*/
public class CardList implements Serializable{
private static final long serialVersionUID = 1L;
private static CardList cardList;
private List cards = new LinkedList();
/*
* Private constructor to create singleton
*/
private CardList() {
}
/**
* CardList singleton
* @return the CardList singleton object
*/
public static CardList instance() {
if (cardList == null) {
return (cardList = new CardList());
}
else {
return cardList;
}
}
/**
* Adds a CreditCard to the collection
* @param creditCard
* @return a boolean indicating successful addition to collection
*/
public boolean insertCard(CreditCard creditCard) {
cards.add(creditCard);
return true;
}
/**
* searches for a credit card in the collection
* @param
* cardNumber
* @return
* a CreditCard if found or null if not found
*/
public CreditCard search(String cardNumber) {
//if(cards.size() > 0) {
for (Iterator iterator = cards.iterator(); iterator.hasNext(); ) {
CreditCard creditCard = (CreditCard) iterator.next();
if (creditCard.getCardNumber().equals(cardNumber)) {
return creditCard;
}
}
//}
return null;
}
/**
* Getter for collection of cards
* @return an iterator for the card collection
*/
public Iterator getCards() {
return cards.iterator();
}
/**
* removes a card with the given cardNumber from the collection
* @param cardNumber
* @return true if CreditCard exists in the collection, or false otherwise
*/
public boolean removeCard(String cardNumber) {
CreditCard creditCard = search(cardNumber);
if (creditCard == null) {
return false;
}
else {
return cards.remove(creditCard);
}
}
/**
* write objects for serialization
* @param output stream
*/
private void writeObject(ObjectOutputStream output) {
try {
//output.defaultWriteObject();
output.writeObject(cardList);
}
catch(IOException ioe) {
System.out.println(ioe);
}
}
/**
* read serialized object
* @param input stream
*/
private void readObject(ObjectInputStream input) {
try {
if (cardList != null) {
return;
}
else {
//input.defaultReadObject();
if (cardList == null) {
cardList = (CardList) input.readObject();
}
else {
input.readObject();
}
}
}
catch(IOException ioe) {
System.out.println("in CardList readObject \n" + ioe);
}
catch(ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
}
/**
* String of the card
*/
@Override
public String toString() {
return cards.toString();
}
}