1 package org.sim0mq.message.types;
2
3 import java.io.Serializable;
4
5 import org.djunits.unit.DurationUnit;
6 import org.djunits.value.vdouble.scalar.Duration;
7 import org.djunits.value.vfloat.scalar.FloatDuration;
8
9
10
11
12
13
14
15
16
17
18
19
20 public class NumberDuration extends Number implements Serializable
21 {
22
23 private static final long serialVersionUID = 20170424L;
24
25
26 private final Number duration;
27
28
29 private final Duration doubleScalar;
30
31
32
33
34
35 public NumberDuration(final Number duration)
36 {
37 this.duration = duration;
38 this.doubleScalar = new Duration(duration.doubleValue(), DurationUnit.SI);
39 }
40
41
42
43
44
45 public NumberDuration(final Duration duration)
46 {
47 this.duration = duration;
48 this.doubleScalar = duration;
49 }
50
51
52
53
54
55 public NumberDuration(final FloatDuration duration)
56 {
57 this.duration = duration;
58 this.doubleScalar = new Duration(duration.getInUnit(), duration.getUnit());
59 }
60
61
62 @Override
63 public int intValue()
64 {
65 return this.duration.intValue();
66 }
67
68
69 @Override
70 public long longValue()
71 {
72 return this.duration.longValue();
73 }
74
75
76 @Override
77 public float floatValue()
78 {
79 return this.duration.floatValue();
80 }
81
82
83 @Override
84 public double doubleValue()
85 {
86 return this.duration.doubleValue();
87 }
88
89
90
91
92 public Duration getDuration()
93 {
94 return this.doubleScalar;
95 }
96
97
98
99
100 public FloatDuration getFloatDuration()
101 {
102 return new FloatDuration((float) this.doubleScalar.getInUnit(), this.doubleScalar.getUnit());
103 }
104 }