1 | |
|
2 | |
|
3 | |
|
4 | |
|
5 | |
|
6 | |
package jaggregate.internal.number; |
7 | |
|
8 | |
|
9 | |
|
10 | |
|
11 | |
|
12 | |
|
13 | |
|
14 | 16389 | public class OperableInteger extends OperableNumber<Integer> { |
15 | |
private static final long serialVersionUID = -1L; |
16 | |
|
17 | 1 | private static final OperableInteger ONE = new OperableInteger( 1 ) { |
18 | |
private static final long serialVersionUID = -1L; |
19 | |
|
20 | |
@Override |
21 | 1717 | public void incrementBy( OperableNumber<Integer> increment ) { |
22 | 1 | throw new UnsupportedOperationException(); |
23 | |
} |
24 | |
}; |
25 | |
|
26 | |
|
27 | |
|
28 | |
|
29 | |
|
30 | |
|
31 | |
public OperableInteger( Integer wrapped ) { |
32 | 12096 | super( wrapped ); |
33 | 12096 | } |
34 | |
|
35 | |
|
36 | |
|
37 | |
|
38 | |
@Override |
39 | |
public boolean isZero() { |
40 | 845 | return unwrapped() == 0; |
41 | |
} |
42 | |
|
43 | |
|
44 | |
|
45 | |
|
46 | |
@Override |
47 | |
public OperableInteger plus( Integer addend ) { |
48 | 3155 | return new OperableInteger( unwrapped() + addend ); |
49 | |
} |
50 | |
|
51 | |
|
52 | |
|
53 | |
|
54 | |
@Override |
55 | |
public OperableInteger plus( int addend ) { |
56 | 668 | return new OperableInteger( unwrapped() + addend ); |
57 | |
} |
58 | |
|
59 | |
|
60 | |
|
61 | |
|
62 | |
@Override |
63 | |
public OperableInteger minus( Integer subtrahend ) { |
64 | 1336 | return new OperableInteger( unwrapped() - subtrahend ); |
65 | |
} |
66 | |
|
67 | |
|
68 | |
|
69 | |
|
70 | |
@Override |
71 | |
public OperableInteger times( Integer multiplier ) { |
72 | 668 | return new OperableInteger( unwrapped() * multiplier ); |
73 | |
} |
74 | |
|
75 | |
|
76 | |
|
77 | |
|
78 | |
@Override |
79 | |
public OperableInteger times( int multiplier ) { |
80 | 2372 | return new OperableInteger( unwrapped() * multiplier ); |
81 | |
} |
82 | |
|
83 | |
|
84 | |
|
85 | |
|
86 | |
@Override |
87 | |
public OperableInteger dividedBy( Integer divisor ) { |
88 | 1336 | return new OperableInteger( unwrapped() / divisor ); |
89 | |
} |
90 | |
|
91 | |
|
92 | |
|
93 | |
|
94 | |
@Override |
95 | |
public OperableInteger modulo( Integer divisor ) { |
96 | 79 | return new OperableInteger( unwrapped() % divisor ); |
97 | |
} |
98 | |
|
99 | |
|
100 | |
|
101 | |
|
102 | |
@Override |
103 | |
public boolean isPositive() { |
104 | 3891 | return unwrapped() > 0; |
105 | |
} |
106 | |
|
107 | |
|
108 | |
|
109 | |
|
110 | |
@Override |
111 | |
public boolean isNegative() { |
112 | 1147 | return unwrapped() < 0; |
113 | |
} |
114 | |
|
115 | |
|
116 | |
|
117 | |
|
118 | |
@Override |
119 | |
public boolean greaterThan( Integer comparand ) { |
120 | 3691 | return unwrapped() > comparand; |
121 | |
} |
122 | |
|
123 | |
|
124 | |
|
125 | |
|
126 | |
@Override |
127 | |
public boolean greaterThanOrEqualTo( Integer comparand ) { |
128 | 385 | return unwrapped() >= comparand; |
129 | |
} |
130 | |
|
131 | |
|
132 | |
|
133 | |
|
134 | |
@Override |
135 | |
public boolean lessThan( Integer comparand ) { |
136 | 3481 | return unwrapped() < comparand; |
137 | |
} |
138 | |
|
139 | |
|
140 | |
|
141 | |
|
142 | |
@Override |
143 | |
public boolean lessThanOrEqualTo( Integer comparand ) { |
144 | 837 | return unwrapped() <= comparand; |
145 | |
} |
146 | |
|
147 | |
|
148 | |
|
149 | |
|
150 | |
@Override |
151 | |
public OperableInteger negated() { |
152 | 97 | return new OperableInteger( -unwrapped() ); |
153 | |
} |
154 | |
|
155 | |
|
156 | |
|
157 | |
|
158 | |
@Override |
159 | |
public void incrementBy( OperableNumber<Integer> increment ) { |
160 | 914 | update( unwrapped() + increment.unwrapped() ); |
161 | 914 | } |
162 | |
|
163 | |
|
164 | |
|
165 | |
|
166 | |
@Override |
167 | |
public OperableNumber<Integer> one() { |
168 | 207 | return ONE; |
169 | |
} |
170 | |
} |