RobotCore
1.0
WPILib port to raspberry Pi
Toggle main menu visibility
Loading...
Searching...
No Matches
MultUnit.java
1
// Copyright (c) FIRST and other WPILib contributors.
2
// Open Source Software; you can modify and/or share it under the terms of
3
// the WPILib BSD license file in the root directory of this project.
4
5
package
org.wpilib.units;
6
7
import
java.util.Objects;
8
import
org.wpilib.units.measure.Mult;
9
18
public
class
MultUnit<A
extends
Unit
, B extends
Unit
> extends
Unit
{
19
private
final
A m_unitA;
20
private
final
B m_unitB;
21
22
@SuppressWarnings(
"rawtypes"
)
23
private
static
final
CombinatoryUnitCache<Unit, Unit, MultUnit>
cache =
24
new
CombinatoryUnitCache<>
(MultUnit::new);
25
33
private
MultUnit(A a, B b) {
34
super(
35
a.isBaseUnit() && b.isBaseUnit() ?
null
:
combine
(a.getBaseUnit(), b.getBaseUnit()),
36
a.toBaseUnits(1) * b.toBaseUnits(1),
37
a.name() +
"-"
+ b.name(),
38
a.symbol() +
"*"
+ b.symbol());
39
m_unitA = a;
40
m_unitB = b;
41
}
42
51
protected
MultUnit
(MultUnit<A, B> baseUnit, A a, B b) {
52
super(
53
baseUnit,
54
a.
toBaseUnits
(1) * b.toBaseUnits(1),
55
a.name() +
"-"
+ b.name(),
56
a.symbol() +
"*"
+ b.symbol());
57
m_unitA = a;
58
m_unitB = b;
59
}
60
61
MultUnit
(
62
MultUnit<A, B>
baseUnit,
63
UnaryFunction
toBaseConverter,
64
UnaryFunction
fromBaseConverter,
65
String
name
,
66
String
symbol
) {
67
super(baseUnit, toBaseConverter, fromBaseConverter,
name
,
symbol
);
68
m_unitA =
getBaseUnit
().unitA();
69
m_unitB =
getBaseUnit
().unitB();
70
}
71
85
@SuppressWarnings(
"unchecked"
)
86
public static <A extends
Unit
, B extends
Unit
> MultUnit<A, B>
combine
(A a, B b) {
87
return
cache.combine(a, b);
88
}
89
101
@Override
102
public
Measure<? extends MultUnit<A, B>
>
of
(
double
magnitude) {
103
return
ofNative
(magnitude);
104
}
105
117
@Override
118
public
Measure<? extends MultUnit<A, B>
>
ofBaseUnits
(
double
baseUnitMagnitude) {
119
return
ofNativeBaseUnits
(baseUnitMagnitude);
120
}
121
130
public
final
Mult<A, B>
ofNative
(
double
magnitude) {
131
return
new
Mult<>(magnitude,
toBaseUnits
(magnitude),
this
);
132
}
133
142
public
final
Mult<A, B>
ofNativeBaseUnits
(
double
baseUnitMagnitude) {
143
return
new
Mult<>(
fromBaseUnits
(baseUnitMagnitude), baseUnitMagnitude,
this
);
144
}
145
146
@Override
147
@SuppressWarnings(
"unchecked"
)
148
public
Measure
<? extends MultUnit<A, B>>
zero
() {
149
return
(
Measure
<? extends MultUnit<A, B>>) super.zero();
150
}
151
152
@Override
153
@SuppressWarnings(
"unchecked"
)
154
public
Measure
<? extends MultUnit<A, B>>
one
() {
155
return
(
Measure
<? extends MultUnit<A, B>>) super.one();
156
}
157
158
@Override
159
public
Unit
per
(
TimeUnit
time) {
160
return
VelocityUnit
.
combine
(
this
, time);
161
}
162
170
public
double
convertFrom
(
double
magnitude, MultUnit<A, B> otherUnit) {
171
return
fromBaseUnits
(otherUnit.
toBaseUnits
(magnitude));
172
}
173
174
@Override
175
@SuppressWarnings(
"unchecked"
)
176
public MultUnit<A, B>
getBaseUnit
() {
177
return
(MultUnit<A, B>) super.getBaseUnit();
178
}
179
185
public
A
unitA
() {
186
return
m_unitA;
187
}
188
194
public
B
unitB
() {
195
return
m_unitB;
196
}
197
198
@Override
199
public
String toString() {
200
return
"("
+ m_unitA.toString() +
" * "
+ m_unitB.toString() +
")"
;
201
}
202
203
@Override
204
public
boolean
equals(Object o) {
205
if
(
this
== o) {
206
return
true
;
207
}
208
if
(o ==
null
|| getClass() != o.getClass()) {
209
return
false
;
210
}
211
if
(!super.equals(o)) {
212
return
false
;
213
}
214
MultUnit<?, ?> multUnit = (MultUnit<?, ?>) o;
215
return
Objects.equals(m_unitA, multUnit.m_unitA) && Objects.equals(m_unitB, multUnit.m_unitB);
216
}
217
218
@Override
219
public
int
hashCode() {
220
return
Objects.hash(super.hashCode(), m_unitA, m_unitB);
221
}
222
}
org.wpilib.units.CombinatoryUnitCache
Definition
CombinatoryUnitCache.java:19
org.wpilib.units.CombinatoryUnitCache.CombinatoryUnitCache
CombinatoryUnitCache(BiFunction<? super A, ? super B, ? extends Out > constructor)
Definition
CombinatoryUnitCache.java:34
org.wpilib.units.MultUnit
Definition
MultUnit.java:18
org.wpilib.units.MultUnit.unitB
B unitB()
Definition
MultUnit.java:194
org.wpilib.units.MultUnit.ofNative
final Mult< A, B > ofNative(double magnitude)
Definition
MultUnit.java:130
org.wpilib.units.MultUnit.MultUnit
MultUnit(MultUnit< A, B > baseUnit, A a, B b)
Definition
MultUnit.java:51
org.wpilib.units.MultUnit.ofBaseUnits
Measure<? extends MultUnit< A, B > > ofBaseUnits(double baseUnitMagnitude)
Definition
MultUnit.java:118
org.wpilib.units.MultUnit.ofNativeBaseUnits
final Mult< A, B > ofNativeBaseUnits(double baseUnitMagnitude)
Definition
MultUnit.java:142
org.wpilib.units.MultUnit.convertFrom
double convertFrom(double magnitude, MultUnit< A, B > otherUnit)
Definition
MultUnit.java:170
org.wpilib.units.MultUnit.of
Measure<? extends MultUnit< A, B > > of(double magnitude)
Definition
MultUnit.java:102
org.wpilib.units.MultUnit.one
Measure<? extends MultUnit< A, B > > one()
Definition
MultUnit.java:154
org.wpilib.units.MultUnit.unitA
A unitA()
Definition
MultUnit.java:185
org.wpilib.units.MultUnit.combine
static< A extends Unit, B extends Unit > MultUnit< A, B > combine(A a, B b)
Definition
MultUnit.java:86
org.wpilib.units.MultUnit.per
Unit per(TimeUnit time)
Definition
MultUnit.java:159
org.wpilib.units.MultUnit.getBaseUnit
MultUnit< A, B > getBaseUnit()
Definition
MultUnit.java:176
org.wpilib.units.MultUnit.zero
Measure<? extends MultUnit< A, B > > zero()
Definition
MultUnit.java:148
org.wpilib.units.TimeUnit
Definition
TimeUnit.java:18
org.wpilib.units.Unit.toBaseUnits
double toBaseUnits(double valueInNativeUnits)
Definition
Unit.java:166
org.wpilib.units.Unit.name
String name()
Definition
Unit.java:234
org.wpilib.units.Unit.symbol
String symbol()
Definition
Unit.java:243
org.wpilib.units.Unit.Unit
Unit(Unit baseUnit, UnaryFunction toBaseConverter, UnaryFunction fromBaseConverter, String name, String symbol)
Definition
Unit.java:38
org.wpilib.units.Unit.fromBaseUnits
double fromBaseUnits(double valueInBaseUnits)
Definition
Unit.java:156
org.wpilib.units.VelocityUnit
Definition
VelocityUnit.java:19
org.wpilib.units.VelocityUnit.combine
static< D extends Unit > VelocityUnit< D > combine(D unit, TimeUnit period)
Definition
VelocityUnit.java:52
org.wpilib.units.Measure
Definition
Measure.java:41
org.wpilib.units.UnaryFunction
Definition
UnaryFunction.java:17
org
wpilib
units
MultUnit.java
Generated by
1.18.0