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.Map;
26
27 import net.sf.magicproject.annotation.XmlTestElement;
28 import net.sf.magicproject.clickable.ability.Ability;
29 import net.sf.magicproject.clickable.targetable.Targetable;
30 import net.sf.magicproject.expression.Expression;
31
32 /***
33 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
34 * @since 0.86
35 */
36 @XmlTestElement(id = IdTest.SUP_EQUAL)
37 public class SupEqual extends TestExpr {
38
39 /***
40 * Create an instance of SupEqual by reading a file. Offset's file must
41 * pointing on the first byte of this test <br>
42 * <ul>
43 * Structure of InputStream : Data[size]
44 * <li>left value,idToken [2]</li>
45 * <li>right value, idToken [2]</li>
46 * </ul>
47 *
48 * @param inputFile
49 * is the file containing this event
50 * @throws IOException
51 * if error occurred during the reading process from the specified
52 * input stream
53 */
54 SupEqual(InputStream inputFile) throws IOException {
55 super(inputFile);
56 }
57
58 /***
59 * Create a new instance of SupEqual given left and right expression.
60 *
61 * @param leftExpression
62 * the left expression of this test.
63 * @param rightExpression
64 * the right expression of this test.
65 */
66 private SupEqual(Expression leftExpression, Expression rightExpression) {
67 super(leftExpression, rightExpression);
68 }
69
70 @Override
71 public Test getConstraintTest(Map<String, Expression> values) {
72 return new SupEqual(leftExpression.getConstraintExpression(values),
73 rightExpression.getConstraintExpression(values));
74 }
75
76 @Override
77 public boolean test(Ability ability, Targetable tested) {
78 return getLeftValue(ability, tested) >= getRightValue(ability, tested);
79 }
80
81 @Override
82 public String toString() {
83 return "(" + leftExpression.toString() + " >= "
84 + rightExpression.toString() + ")";
85 }
86 }