1 // START LICENSE
2 // JSet - a Java JSet card board game implementation
3 // Copyright (C) 2004 Jerome Lacoste
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or (at
8 // your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful, but
11 // WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 // END LICENSE
19
20 package org.cb.jset;
21
22 import org.cb.cardboard.Card;
23
24 import java.io.Serializable;
25
26 /***
27 * An implementation of a Card for the game.
28 *
29 * Instances are immutable as they simply wraps a <code>CardProperties</code> instance.
30 * @author jerome@coffeebreaks.org - last modified by $Author: jerome $
31 * @version $Id: JSetCard.java 129 2004-04-15 05:00:43Z jerome $
32 */
33 public class JSetCard implements Card, Serializable
34 {
35 private final CardProperties _properties;
36 // private boolean _selected = false;
37
38 public JSetCard(final CardProperties properties)
39 {
40 _properties = properties;
41 }
42
43 public CardProperties getProperties()
44 {
45 return _properties;
46 }
47
48 // public void select(boolean select)
49 // {
50 // if (select != _selected)
51 // {
52 // _selected = select;
53 // int type = _selected ? CardEvent.SELECTED : CardEvent.DESELECTED;
54 // fireCardEvent(new CardEvent(type, this));
55 // }
56 // }
57 //
58 public boolean equals(final Object o)
59 {
60 if (this == o) return true;
61 if (!(o instanceof JSetCard)) return false;
62
63 final JSetCard card = (JSetCard) o;
64
65 if (!_properties.equals(card._properties)) return false;
66
67 return true;
68 }
69
70 public int hashCode()
71 {
72 return _properties.hashCode();
73 }
74
75 // / private List _cardListeners = new ArrayList();
76 //
77
78
79
80 // public boolean addCardListener(SetGameClientCardListener listener)
81 // {
82 // return _cardListeners.add(listener);
83 // }
84 //
85 // public boolean removeCardListener(SetGameClientCardListener listener)
86 // {
87 // return _cardListeners.remove(listener);
88 // }
89 //
90 // private void fireCardEvent(CardEvent event)
91 // {
92 // if (_cardListeners != null)
93 // {
94 // for (int i = 0; i < _cardListeners.size(); i++)
95 // {
96 // SetGameClientCardListener cardListenerIF = (SetGameClientCardListener) _cardListeners.get(i);
97 // cardListenerIF.notifyCardEvent(event);
98 // }
99 // }
100 // }
101
102 public String toString()
103 {
104 final StringBuffer buf = new StringBuffer("JSetCard:");
105 buf.append(_properties);
106 return buf.toString();
107 }
108 }