/*
* Created on Oct 27, 2005
*/
package cyrille.lang;
import java.util.ArrayList;
import java.util.List;
public class Java5SyntaxTest {
public enum Rank {
ACE, DEUCE, EIGHT, FIVE, FOUR, JACK, KING, NINE, QUEEN, SEVEN, SIX, TEN, THREE
}
public enum Suit {
CLUBS, DIAMONDS, HEARTS, SPADES
}
private static final List<Java5SyntaxTest> protoDeck = new ArrayList<Java5SyntaxTest>();
// Initialize prototype deck
static {
for (Suit suit : Suit.values()) {
for (Rank rank : Rank.values()) {
protoDeck.add(new Java5SyntaxTest(rank, suit));
}
}
}
public static ArrayList<Java5SyntaxTest> newDeck() {
return new ArrayList<Java5SyntaxTest>(protoDeck); // Return copy of prototype deck
}
private final Rank rank;
private final Suit suit;
private Java5SyntaxTest(Rank rank, Suit suit) {
this.rank = rank;
this.suit = suit;
}
public Rank rank() {
return this.rank;
}
public Suit suit() {
return this.suit;
}
@Override
public String toString() {
return this.rank + " of " + this.suit;
}
}