-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathOperateurFunc.java
33 lines (27 loc) · 1.08 KB
/
OperateurFunc.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.function.BiFunction;
/**
* enumeration qui represente des opérations sur les entiers.
* chaque operation est associe à son symbole, sa fonction de calcul et sa
* fonction de test de faisabilite
*
* @author emmanuel adam
*/
public enum OperateurFunc {
ADDITION("+", (a,b) -> (a + b), (a,b) -> true),
SOUSTRACTION("-", (a,b) -> (a - b), (a,b) -> (a > b)),
MULTIPLICATION("*", (a,b) -> (a * b), (a,b) -> (a > 1 && b > 1)),
DIVISION("/", (a,b) -> (a / b), (a,b) -> (b > 1 && a % b == 0));
/** chaine representant le signe de l'operation */
String sign;
/** opération artihmétique sur 2 entiers, fournissant un résultat entier */
BiFunction<Integer, Integer, Integer> calcul;
/** test de validite d'une opération artithémtique sur 2 entiers a et b */
BiFunction<Integer, Integer, Boolean> test;
OperateurFunc(String _sign, BiFunction<Integer, Integer, Integer> _calcul, BiFunction<Integer, Integer, Boolean> _test) {
sign = _sign;
calcul = _calcul;
test = _test;
}
@Override
public String toString() { return sign;}
}