1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.magicproject.test;
20
21 import java.io.IOException;
22 import java.io.InputStream;
23
24 import net.sf.magicproject.clickable.ability.Ability;
25 import net.sf.magicproject.clickable.targetable.card.MCard;
26 import net.sf.magicproject.tools.MToolKit;
27
28 /***
29 * Test if the card has a specified keyword. Valid only for card component. This
30 * is a non-senstive case comparator.
31 *
32 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
33 * @since 0.91
34 */
35 class HasKeyword extends TestCard {
36
37 /***
38 * Create an instance of HasKeyword by reading a file. Offset's file must
39 * pointing on the first byte of this test <br>
40 * <ul>
41 * Structure of InputStream : Data[size]
42 * <li>keyword + '\0' [...]</li>
43 * </ul>
44 *
45 * @param inputFile
46 * is the file containing this event
47 * @throws IOException
48 * if error occurred during the reading process from the specified
49 * input stream
50 */
51 HasKeyword(InputStream inputFile) throws IOException {
52 super(inputFile);
53 keywordName = MToolKit.readString(inputFile).intern();
54 }
55
56 @Override
57 protected boolean testCard(Ability ability, MCard tested) {
58 return on.getCard(ability, tested).getDatabase().getCardModel()
59 .hasKeywords(keywordName);
60 }
61
62 /***
63 * Is the keyword to test
64 */
65 private final String keywordName;
66
67 }