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 import java.util.List;
24
25 import net.sf.magicproject.clickable.ability.Ability;
26 import net.sf.magicproject.clickable.targetable.Targetable;
27 import net.sf.magicproject.clickable.targetable.card.MCard;
28 import net.sf.magicproject.event.MEventListener;
29
30 /***
31 * Not.java Created on 25 feb. 2004
32 *
33 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
34 * @since 0.54
35 */
36 public class Not extends TestBoolean {
37
38 /***
39 * Create an instance of And by reading a file. Offset's file must pointing on
40 * the first byte of this test <br>
41 * <ul>
42 * Structure of InputStream : Data[size]
43 * <li>test [...]</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 Not(InputStream inputFile) throws IOException {
53 super(inputFile);
54 this.test = TestFactory.readNextTest(inputFile);
55 }
56
57 /***
58 * Create a new instance of Not given the other test.
59 *
60 * @param test
61 * the other test.
62 */
63 public Not(Test test) {
64 this.test = test;
65 }
66
67 @Override
68 public boolean test(Ability ability, Targetable tested) {
69 return !test.test(ability, tested);
70 }
71
72 /***
73 * Left test of this test
74 */
75 private Test test;
76
77 @Override
78 public void extractTriggeredEvents(List<MEventListener> res, MCard source,
79 Test globalTest) {
80 test.extractTriggeredEvents(res, source, globalTest);
81 }
82
83 @Override
84 public boolean testPreemption(Ability ability, Targetable tested) {
85 return super.testPreemption(ability, tested);
86 }
87
88 @Override
89 public String toString() {
90 return "NOT " + test.toString();
91 }
92 }