1 package org.djunits.value.vfloat.vector;
2
3 import java.util.List;
4 import java.util.SortedMap;
5
6 import org.djunits.unit.AngleUnit;
7 import org.djunits.unit.DirectionUnit;
8 import org.djunits.value.StorageType;
9 import org.djunits.value.ValueException;
10 import org.djunits.value.vfloat.scalar.FloatDirection;
11
12
13
14
15
16
17
18
19
20
21
22
23 public class MutableFloatDirectionVector extends AbstractMutableFloatVectorAbs<DirectionUnit, AngleUnit, FloatDirectionVector,
24 FloatAngleVector, MutableFloatDirectionVector, FloatDirection>
25 {
26
27 private static final long serialVersionUID = 20151003L;
28
29
30
31
32
33
34
35
36 public MutableFloatDirectionVector(final float[] values, final DirectionUnit unit, final StorageType storageType)
37 throws ValueException
38 {
39 super(values, unit, storageType);
40 }
41
42
43
44
45
46
47
48
49 public MutableFloatDirectionVector(final List<Float> values, final DirectionUnit unit, final StorageType storageType)
50 throws ValueException
51 {
52 super(values, unit, storageType);
53 }
54
55
56
57
58
59
60
61 public MutableFloatDirectionVector(final FloatDirection[] values, final StorageType storageType) throws ValueException
62 {
63 super(values, storageType);
64 }
65
66
67
68
69
70
71
72 public MutableFloatDirectionVector(final List<FloatDirection> values, final StorageType storageType) throws ValueException
73 {
74 super(values, storageType);
75 }
76
77
78
79
80
81
82
83
84
85 public MutableFloatDirectionVector(final SortedMap<Integer, FloatDirection> values, final int length,
86 final StorageType storageType) throws ValueException
87 {
88 super(values, length, storageType);
89 }
90
91
92
93
94
95
96
97
98
99
100 public MutableFloatDirectionVector(final SortedMap<Integer, Float> values, final DirectionUnit unit, final int length,
101 final StorageType storageType) throws ValueException
102 {
103 super(values, unit, length, storageType);
104 }
105
106
107
108
109
110
111 MutableFloatDirectionVector(final FloatVectorData data, final DirectionUnit unit)
112 {
113 super(data, unit);
114 }
115
116
117 @Override
118 protected final FloatDirectionVector instantiateTypeAbs(final FloatVectorData dvd, final DirectionUnit unit)
119 {
120 return new FloatDirectionVector(dvd, unit);
121 }
122
123
124 @Override
125 protected final FloatAngleVector instantiateTypeRel(final FloatVectorData dvd, final AngleUnit unit)
126 {
127 return new FloatAngleVector(dvd, unit);
128 }
129
130
131 @Override
132 protected final MutableFloatDirectionVector instantiateMutableType(final FloatVectorData dvd, final DirectionUnit unit)
133 {
134 return new MutableFloatDirectionVector(dvd, unit);
135 }
136
137
138 @Override
139 protected final FloatDirection instantiateScalar(final float value, final DirectionUnit unit)
140 {
141 return new FloatDirection(value, unit);
142 }
143
144
145 @Override
146 public final MutableFloatDirectionVector toDense()
147 {
148 return this.data.isDense() ? (MutableFloatDirectionVector) this
149 : instantiateMutableType(this.data.toDense(), getUnit());
150 }
151
152
153 @Override
154 public final MutableFloatDirectionVector toSparse()
155 {
156 return this.data.isSparse() ? (MutableFloatDirectionVector) this
157 : instantiateMutableType(this.data.toSparse(), getUnit());
158 }
159
160
161
162
163
164
165 public FloatDirection[] toArray()
166 {
167 FloatDirection[] array = new FloatDirection[size()];
168 for (int i = 0; i < size(); i++)
169 {
170 try
171 {
172 array[i] = get(i);
173 }
174 catch (ValueException exception)
175 {
176 throw new RuntimeException(exception);
177 }
178 }
179 return array;
180 }
181
182 }