7package org.wpilib.networktables;
9import java.util.Objects;
12@SuppressWarnings(
"UnnecessaryParentheses")
13public final class NetworkTableValue {
14 NetworkTableValue(
NetworkTableType type, Object value,
long time,
long serverTime) {
18 m_serverTime = serverTime;
22 this(type, value, time, time == 0 ? 0 : 1);
29 NetworkTableValue(
int type, Object value,
long time,
long serverTime) {
193 throw new ClassCastException(
"cannot convert " + m_type +
" to boolean");
195 return (Boolean) m_value;
206 throw new ClassCastException(
"cannot convert " + m_type +
" to long");
208 return ((Number) m_value).longValue();
219 throw new ClassCastException(
"cannot convert " + m_type +
" to float");
221 return ((Number) m_value).floatValue();
232 throw new ClassCastException(
"cannot convert " + m_type +
" to double");
234 return ((Number) m_value).doubleValue();
245 throw new ClassCastException(
"cannot convert " + m_type +
" to String");
247 return (String) m_value;
258 throw new ClassCastException(
"cannot convert " + m_type +
" to byte[]");
260 return (
byte[]) m_value;
271 throw new ClassCastException(
"cannot convert " + m_type +
" to boolean[]");
273 return (
boolean[]) m_value;
284 throw new ClassCastException(
"cannot convert " + m_type +
" to long[]");
286 return (
long[]) m_value;
297 throw new ClassCastException(
"cannot convert " + m_type +
" to float[]");
299 return (
float[]) m_value;
310 throw new ClassCastException(
"cannot convert " + m_type +
" to double[]");
312 return (
double[]) m_value;
323 throw new ClassCastException(
"cannot convert " + m_type +
" to String[]");
325 return (String[]) m_value;
349 public static NetworkTableValue
makeBoolean(
boolean value,
long time) {
370 public static NetworkTableValue
makeInteger(
long value,
long time) {
380 public static NetworkTableValue
makeFloat(
float value) {
391 public static NetworkTableValue
makeFloat(
float value,
long time) {
412 public static NetworkTableValue
makeDouble(
double value,
long time) {
433 public static NetworkTableValue
makeString(String value,
long time) {
443 public static NetworkTableValue
makeRaw(
byte[] value) {
454 public static NetworkTableValue
makeRaw(
byte[] value,
long time) {
648 public boolean equals(Object other) {
651 && m_type == ntOther.m_type
652 && m_value.equals(ntOther.m_value);
656 public int hashCode() {
657 return Objects.hash(m_type, m_value);
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++) {
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();
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();
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();
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++) {
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++) {
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++) {
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++) {
732 private Object m_value;
734 private long m_serverTime;
static NetworkTableValue makeFloatArray(float[] value)
boolean[] getBooleanArray()
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)
String[] getStringArray()
static NetworkTableValue makeBooleanArray(Boolean[] value)
static NetworkTableValue makeInteger(long value, long time)
NetworkTableType getType()
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)
double[] getDoubleArray()
static NetworkTableType getFromInt(int value)