1 package org.opentrafficsim.base.parameters.constraint;
2
3
4
5
6
7
8
9
10
11
12
13 public enum NumericConstraint implements Constraint<Number>
14 {
15
16
17 POSITIVE("Value of parameter '%s' must be above zero.")
18 {
19 @Override
20 public boolean accept(final Number value)
21 {
22 return value.doubleValue() > 0.0;
23 }
24 },
25
26
27 NEGATIVE("Value of parameter '%s' must be below zero.")
28 {
29 @Override
30 public boolean accept(final Number value)
31 {
32 return value.doubleValue() < 0.0;
33 }
34 },
35
36
37 POSITIVEZERO("Value of parameter '%s' may not be below zero.")
38 {
39 @Override
40 public boolean accept(final Number value)
41 {
42 return value.doubleValue() >= 0.0;
43 }
44 },
45
46
47 NEGATIVEZERO("Value of parameter '%s' may not be above zero.")
48 {
49 @Override
50 public boolean accept(final Number value)
51 {
52 return value.doubleValue() <= 0.0;
53 }
54 },
55
56
57 NONZERO("Value of parameter '%s' may not be zero.")
58 {
59 @Override
60 public boolean accept(final Number value)
61 {
62 return value.doubleValue() != 0.0;
63 }
64 },
65
66
67 ATLEASTONE("Value of parameter '%s' may not be below one.")
68 {
69 @Override
70 public boolean accept(final Number value)
71 {
72 return value.doubleValue() >= 1.0;
73 }
74 };
75
76
77 private final String failMessage;
78
79
80
81
82
83 NumericConstraint(final String failMessage)
84 {
85 this.failMessage = failMessage;
86 }
87
88 @Override
89 public String failMessage()
90 {
91 return this.failMessage;
92 }
93
94 }