aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/java/src
diff options
context:
space:
mode:
authorGravatar karl@kubx.ca <karl@kubx.ca>2018-08-13 21:44:01 -0400
committerGravatar karl@kubx.ca <karl@kubx.ca>2018-08-13 21:57:41 -0400
commit22de3494abde705f9cbce973ed37323a8fe17363 (patch)
tree8cd39ef67c493076c209596537d74d08433b47e0 /tensorflow/java/src
parent5326a7fb028d6a66286e9e929dc9454c12e81522 (diff)
Extend UInt8 class from Number (via TFNumber abstract class)
Diffstat (limited to 'tensorflow/java/src')
-rw-r--r--tensorflow/java/src/main/java/org/tensorflow/types/TFNumber.java50
-rw-r--r--tensorflow/java/src/main/java/org/tensorflow/types/UInt8.java5
2 files changed, 54 insertions, 1 deletions
diff --git a/tensorflow/java/src/main/java/org/tensorflow/types/TFNumber.java b/tensorflow/java/src/main/java/org/tensorflow/types/TFNumber.java
new file mode 100644
index 0000000000..82e5c360ff
--- /dev/null
+++ b/tensorflow/java/src/main/java/org/tensorflow/types/TFNumber.java
@@ -0,0 +1,50 @@
+/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+==============================================================================*/
+package org.tensorflow.types;
+
+/**
+ * Base class for Tensorflow real numbers data types.
+ *
+ * <p>Real number Tensorflow data types must extend from this class to satisfy compile-time type safety enforced by
+ * operations that only accept real number tensors as some of their operands. This is asserted by extending the
+ * generic parameter of those operands from {@link Number}.
+ *
+ * <p>Since data types listed under this pacakge are only used for generic parameterization, there is no real data
+ * manipulation involved. So it is safe to implement the {@link Number} abstract methods by returning zero in all cases.
+ */
+abstract class TFNumber extends Number {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public double doubleValue() {
+ return 0.0;
+ }
+
+ @Override
+ public float floatValue() {
+ return 0.0f;
+ }
+
+ @Override
+ public int intValue() {
+ return 0;
+ }
+
+ @Override
+ public long longValue() {
+ return 0L;
+ }
+}
diff --git a/tensorflow/java/src/main/java/org/tensorflow/types/UInt8.java b/tensorflow/java/src/main/java/org/tensorflow/types/UInt8.java
index 0c751aed9f..52952afbde 100644
--- a/tensorflow/java/src/main/java/org/tensorflow/types/UInt8.java
+++ b/tensorflow/java/src/main/java/org/tensorflow/types/UInt8.java
@@ -16,6 +16,9 @@ limitations under the License.
package org.tensorflow.types;
/** Represents an 8-bit unsigned integer. */
-public class UInt8 {
+public class UInt8 extends TFNumber {
+
+ private static final long serialVersionUID = 1L;
+
private UInt8() {}
}