1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package net.sf.magicproject.test;
22
23 import java.io.IOException;
24 import java.io.InputStream;
25 import java.util.List;
26
27 import net.sf.magicproject.clickable.ability.Ability;
28 import net.sf.magicproject.clickable.targetable.card.MCard;
29 import net.sf.magicproject.event.MEventListener;
30 import net.sf.magicproject.tools.MToolKit;
31
32 /***
33 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
34 * @since 0.82
35 */
36 class HasName extends TestCard {
37
38 /***
39 * Create an instance of HasName by reading a file. Offset's file must
40 * pointing on the first byte of this test <br>
41 * <ul>
42 * Structure of InputStream : Data[size]
43 * <li>card name + '\0' [...]</li>
44 * </ul>
45 *
46 * @param inputFile
47 * is the file containing this event
48 * @throws IOException
49 * if error occurred during the reading process from the specified
50 * input stream
51 */
52 HasName(InputStream inputFile) throws IOException {
53 super(inputFile);
54 cardName = MToolKit.readString(inputFile).intern();
55 }
56
57 /***
58 * Return the result of test beetwen left and right op applied on the
59 * specified card.
60 *
61 * @param ability
62 * is the ability owning this test. The card component of this
63 * ability should correspond to the card owning this test too.
64 * @param tested
65 * the tested card
66 * @return true if the specified card matches with the test to do
67 */
68 @Override
69 protected boolean testCard(Ability ability, MCard tested) {
70 if (cardName.length() == 0) {
71 return on.getCard(ability, tested).getCardName().equalsIgnoreCase(
72 tested.getCardName());
73 }
74 return on.getCard(ability, tested).getCardName().equalsIgnoreCase(cardName);
75 }
76
77 @Override
78 public void extractTriggeredEvents(List<MEventListener> res, MCard source,
79 Test globalTest) {
80
81
82 }
83
84 /***
85 * Is the card name to test
86 */
87 private String cardName;
88
89 }