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