RobotCore 1.0
WPILib port to raspberry Pi
Loading...
Searching...
No Matches
NetworkTableValue.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// THIS FILE WAS AUTO-GENERATED BY ./ntcore/generate_topics.py. DO NOT MODIFY
6
7package org.wpilib.networktables;
8
9import java.util.Objects;
10
12@SuppressWarnings("UnnecessaryParentheses")
13public final class NetworkTableValue {
14 NetworkTableValue(NetworkTableType type, Object value, long time, long serverTime) {
15 m_type = type;
16 m_value = value;
17 m_time = time;
18 m_serverTime = serverTime;
19 }
20
21 NetworkTableValue(NetworkTableType type, Object value, long time) {
22 this(type, value, time, time == 0 ? 0 : 1);
23 }
24
25 NetworkTableValue(NetworkTableType type, Object value) {
26 this(type, value, NetworkTablesJNI.now(), 1);
27 }
28
29 NetworkTableValue(int type, Object value, long time, long serverTime) {
30 this(NetworkTableType.getFromInt(type), value, time, serverTime);
31 }
32
39 return m_type;
40 }
41
47 public Object getValue() {
48 return m_value;
49 }
50
56 public long getTime() {
57 return m_time;
58 }
59
65 public long getServerTime() {
66 return m_serverTime;
67 }
68
69 /*
70 * Type Checkers
71 */
72
78 public boolean isValid() {
79 return m_type != NetworkTableType.UNASSIGNED;
80 }
81
87 public boolean isBoolean() {
88 return m_type == NetworkTableType.BOOLEAN;
89 }
90
96 public boolean isInteger() {
97 return m_type == NetworkTableType.INTEGER;
98 }
99
105 public boolean isFloat() {
106 return m_type == NetworkTableType.FLOAT;
107 }
108
114 public boolean isDouble() {
115 return m_type == NetworkTableType.DOUBLE;
116 }
117
123 public boolean isString() {
124 return m_type == NetworkTableType.STRING;
125 }
126
132 public boolean isRaw() {
133 return m_type == NetworkTableType.RAW;
134 }
135
141 public boolean isBooleanArray() {
142 return m_type == NetworkTableType.BOOLEAN_ARRAY;
143 }
144
150 public boolean isIntegerArray() {
151 return m_type == NetworkTableType.INTEGER_ARRAY;
152 }
153
159 public boolean isFloatArray() {
160 return m_type == NetworkTableType.FLOAT_ARRAY;
161 }
162
168 public boolean isDoubleArray() {
169 return m_type == NetworkTableType.DOUBLE_ARRAY;
170 }
171
177 public boolean isStringArray() {
178 return m_type == NetworkTableType.STRING_ARRAY;
179 }
180
181 /*
182 * Type-Safe Getters
183 */
184
191 public boolean getBoolean() {
192 if (m_type != NetworkTableType.BOOLEAN) {
193 throw new ClassCastException("cannot convert " + m_type + " to boolean");
194 }
195 return (Boolean) m_value;
196 }
197
204 public long getInteger() {
205 if (m_type != NetworkTableType.INTEGER) {
206 throw new ClassCastException("cannot convert " + m_type + " to long");
207 }
208 return ((Number) m_value).longValue();
209 }
210
217 public float getFloat() {
218 if (m_type != NetworkTableType.FLOAT) {
219 throw new ClassCastException("cannot convert " + m_type + " to float");
220 }
221 return ((Number) m_value).floatValue();
222 }
223
230 public double getDouble() {
231 if (m_type != NetworkTableType.DOUBLE) {
232 throw new ClassCastException("cannot convert " + m_type + " to double");
233 }
234 return ((Number) m_value).doubleValue();
235 }
236
243 public String getString() {
244 if (m_type != NetworkTableType.STRING) {
245 throw new ClassCastException("cannot convert " + m_type + " to String");
246 }
247 return (String) m_value;
248 }
249
256 public byte[] getRaw() {
257 if (m_type != NetworkTableType.RAW) {
258 throw new ClassCastException("cannot convert " + m_type + " to byte[]");
259 }
260 return (byte[]) m_value;
261 }
262
269 public boolean[] getBooleanArray() {
270 if (m_type != NetworkTableType.BOOLEAN_ARRAY) {
271 throw new ClassCastException("cannot convert " + m_type + " to boolean[]");
272 }
273 return (boolean[]) m_value;
274 }
275
282 public long[] getIntegerArray() {
283 if (m_type != NetworkTableType.INTEGER_ARRAY) {
284 throw new ClassCastException("cannot convert " + m_type + " to long[]");
285 }
286 return (long[]) m_value;
287 }
288
295 public float[] getFloatArray() {
296 if (m_type != NetworkTableType.FLOAT_ARRAY) {
297 throw new ClassCastException("cannot convert " + m_type + " to float[]");
298 }
299 return (float[]) m_value;
300 }
301
308 public double[] getDoubleArray() {
309 if (m_type != NetworkTableType.DOUBLE_ARRAY) {
310 throw new ClassCastException("cannot convert " + m_type + " to double[]");
311 }
312 return (double[]) m_value;
313 }
314
321 public String[] getStringArray() {
322 if (m_type != NetworkTableType.STRING_ARRAY) {
323 throw new ClassCastException("cannot convert " + m_type + " to String[]");
324 }
325 return (String[]) m_value;
326 }
327
328 /*
329 * Factory functions.
330 */
331
338 public static NetworkTableValue makeBoolean(boolean value) {
339 return new NetworkTableValue(NetworkTableType.BOOLEAN, Boolean.valueOf(value));
340 }
341
349 public static NetworkTableValue makeBoolean(boolean value, long time) {
350 return new NetworkTableValue(NetworkTableType.BOOLEAN, Boolean.valueOf(value), time);
351 }
352
359 public static NetworkTableValue makeInteger(long value) {
360 return new NetworkTableValue(NetworkTableType.INTEGER, Long.valueOf(value));
361 }
362
370 public static NetworkTableValue makeInteger(long value, long time) {
371 return new NetworkTableValue(NetworkTableType.INTEGER, Long.valueOf(value), time);
372 }
373
380 public static NetworkTableValue makeFloat(float value) {
381 return new NetworkTableValue(NetworkTableType.FLOAT, Float.valueOf(value));
382 }
383
391 public static NetworkTableValue makeFloat(float value, long time) {
392 return new NetworkTableValue(NetworkTableType.FLOAT, Float.valueOf(value), time);
393 }
394
401 public static NetworkTableValue makeDouble(double value) {
402 return new NetworkTableValue(NetworkTableType.DOUBLE, Double.valueOf(value));
403 }
404
412 public static NetworkTableValue makeDouble(double value, long time) {
413 return new NetworkTableValue(NetworkTableType.DOUBLE, Double.valueOf(value), time);
414 }
415
422 public static NetworkTableValue makeString(String value) {
423 return new NetworkTableValue(NetworkTableType.STRING, (value));
424 }
425
433 public static NetworkTableValue makeString(String value, long time) {
434 return new NetworkTableValue(NetworkTableType.STRING, (value), time);
435 }
436
443 public static NetworkTableValue makeRaw(byte[] value) {
444 return new NetworkTableValue(NetworkTableType.RAW, (value));
445 }
446
454 public static NetworkTableValue makeRaw(byte[] value, long time) {
455 return new NetworkTableValue(NetworkTableType.RAW, (value), time);
456 }
457
464 public static NetworkTableValue makeBooleanArray(boolean[] value) {
465 return new NetworkTableValue(NetworkTableType.BOOLEAN_ARRAY, (value));
466 }
467
475 public static NetworkTableValue makeBooleanArray(boolean[] value, long time) {
476 return new NetworkTableValue(NetworkTableType.BOOLEAN_ARRAY, (value), time);
477 }
478
485 public static NetworkTableValue makeBooleanArray(Boolean[] value) {
486 return new NetworkTableValue(NetworkTableType.BOOLEAN_ARRAY, toNativeBooleanArray(value));
487 }
488
496 public static NetworkTableValue makeBooleanArray(Boolean[] value, long time) {
497 return new NetworkTableValue(NetworkTableType.BOOLEAN_ARRAY, toNativeBooleanArray(value), time);
498 }
499
506 public static NetworkTableValue makeIntegerArray(long[] value) {
507 return new NetworkTableValue(NetworkTableType.INTEGER_ARRAY, (value));
508 }
509
517 public static NetworkTableValue makeIntegerArray(long[] value, long time) {
518 return new NetworkTableValue(NetworkTableType.INTEGER_ARRAY, (value), time);
519 }
520
527 public static NetworkTableValue makeIntegerArray(Long[] value) {
528 return new NetworkTableValue(NetworkTableType.INTEGER_ARRAY, toNativeIntegerArray(value));
529 }
530
538 public static NetworkTableValue makeIntegerArray(Long[] value, long time) {
539 return new NetworkTableValue(NetworkTableType.INTEGER_ARRAY, toNativeIntegerArray(value), time);
540 }
541
548 public static NetworkTableValue makeFloatArray(float[] value) {
549 return new NetworkTableValue(NetworkTableType.FLOAT_ARRAY, (value));
550 }
551
559 public static NetworkTableValue makeFloatArray(float[] value, long time) {
560 return new NetworkTableValue(NetworkTableType.FLOAT_ARRAY, (value), time);
561 }
562
569 public static NetworkTableValue makeFloatArray(Float[] value) {
570 return new NetworkTableValue(NetworkTableType.FLOAT_ARRAY, toNativeFloatArray(value));
571 }
572
580 public static NetworkTableValue makeFloatArray(Float[] value, long time) {
581 return new NetworkTableValue(NetworkTableType.FLOAT_ARRAY, toNativeFloatArray(value), time);
582 }
583
590 public static NetworkTableValue makeDoubleArray(double[] value) {
591 return new NetworkTableValue(NetworkTableType.DOUBLE_ARRAY, (value));
592 }
593
601 public static NetworkTableValue makeDoubleArray(double[] value, long time) {
602 return new NetworkTableValue(NetworkTableType.DOUBLE_ARRAY, (value), time);
603 }
604
611 public static NetworkTableValue makeDoubleArray(Double[] value) {
612 return new NetworkTableValue(NetworkTableType.DOUBLE_ARRAY, toNativeDoubleArray(value));
613 }
614
622 public static NetworkTableValue makeDoubleArray(Double[] value, long time) {
623 return new NetworkTableValue(NetworkTableType.DOUBLE_ARRAY, toNativeDoubleArray(value), time);
624 }
625
632 public static NetworkTableValue makeStringArray(String[] value) {
633 return new NetworkTableValue(NetworkTableType.STRING_ARRAY, (value));
634 }
635
643 public static NetworkTableValue makeStringArray(String[] value, long time) {
644 return new NetworkTableValue(NetworkTableType.STRING_ARRAY, (value), time);
645 }
646
647 @Override
648 public boolean equals(Object other) {
649 return other == this
650 || other instanceof NetworkTableValue ntOther
651 && m_type == ntOther.m_type
652 && m_value.equals(ntOther.m_value);
653 }
654
655 @Override
656 public int hashCode() {
657 return Objects.hash(m_type, m_value);
658 }
659
660 // arraycopy() doesn't know how to unwrap boxed values; this is a false positive in PMD
661 // (see https://sourceforge.net/p/pmd/bugs/804/)
662 @SuppressWarnings("PMD.AvoidArrayLoops")
663 static boolean[] toNativeBooleanArray(Boolean[] arr) {
664 boolean[] out = new boolean[arr.length];
665 for (int i = 0; i < arr.length; i++) {
666 out[i] = arr[i];
667 }
668 return out;
669 }
670
671 static double[] toNativeDoubleArray(Number[] arr) {
672 double[] out = new double[arr.length];
673 for (int i = 0; i < arr.length; i++) {
674 out[i] = arr[i].doubleValue();
675 }
676 return out;
677 }
678
679 static long[] toNativeIntegerArray(Number[] arr) {
680 long[] out = new long[arr.length];
681 for (int i = 0; i < arr.length; i++) {
682 out[i] = arr[i].longValue();
683 }
684 return out;
685 }
686
687 static float[] toNativeFloatArray(Number[] arr) {
688 float[] out = new float[arr.length];
689 for (int i = 0; i < arr.length; i++) {
690 out[i] = arr[i].floatValue();
691 }
692 return out;
693 }
694
695 @SuppressWarnings("PMD.AvoidArrayLoops")
696 static Boolean[] fromNativeBooleanArray(boolean[] arr) {
697 Boolean[] out = new Boolean[arr.length];
698 for (int i = 0; i < arr.length; i++) {
699 out[i] = arr[i];
700 }
701 return out;
702 }
703
704 @SuppressWarnings("PMD.AvoidArrayLoops")
705 static Long[] fromNativeIntegerArray(long[] arr) {
706 Long[] out = new Long[arr.length];
707 for (int i = 0; i < arr.length; i++) {
708 out[i] = arr[i];
709 }
710 return out;
711 }
712
713 @SuppressWarnings("PMD.AvoidArrayLoops")
714 static Float[] fromNativeFloatArray(float[] arr) {
715 Float[] out = new Float[arr.length];
716 for (int i = 0; i < arr.length; i++) {
717 out[i] = arr[i];
718 }
719 return out;
720 }
721
722 @SuppressWarnings("PMD.AvoidArrayLoops")
723 static Double[] fromNativeDoubleArray(double[] arr) {
724 Double[] out = new Double[arr.length];
725 for (int i = 0; i < arr.length; i++) {
726 out[i] = arr[i];
727 }
728 return out;
729 }
730
731 private NetworkTableType m_type;
732 private Object m_value;
733 private long m_time;
734 private long m_serverTime;
735}
static NetworkTableValue makeFloatArray(float[] value)
static NetworkTableValue makeBoolean(boolean value)
static NetworkTableValue makeBooleanArray(boolean[] value)
static NetworkTableValue makeDouble(double value, long time)
static NetworkTableValue makeDoubleArray(Double[] value, long time)
static NetworkTableValue makeDoubleArray(double[] value)
static NetworkTableValue makeFloatArray(Float[] value)
static NetworkTableValue makeBooleanArray(boolean[] value, long time)
static NetworkTableValue makeIntegerArray(Long[] value, long time)
static NetworkTableValue makeIntegerArray(long[] value, long time)
static NetworkTableValue makeString(String value)
static NetworkTableValue makeFloat(float value)
static NetworkTableValue makeBoolean(boolean value, long time)
static NetworkTableValue makeDoubleArray(Double[] value)
static NetworkTableValue makeBooleanArray(Boolean[] value)
static NetworkTableValue makeInteger(long value, long time)
static NetworkTableValue makeIntegerArray(Long[] value)
static NetworkTableValue makeRaw(byte[] value, long time)
static NetworkTableValue makeString(String value, long time)
static NetworkTableValue makeStringArray(String[] value, long time)
static NetworkTableValue makeDouble(double value)
static NetworkTableValue makeInteger(long value)
static NetworkTableValue makeBooleanArray(Boolean[] value, long time)
static NetworkTableValue makeIntegerArray(long[] value)
static NetworkTableValue makeFloat(float value, long time)
static NetworkTableValue makeFloatArray(Float[] value, long time)
static NetworkTableValue makeFloatArray(float[] value, long time)
static NetworkTableValue makeStringArray(String[] value)
static NetworkTableValue makeRaw(byte[] value)
static NetworkTableValue makeDoubleArray(double[] value, long time)
static NetworkTableType getFromInt(int value)