This is an automated email from the ASF dual-hosted git repository.
philo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git
The following commit(s) were added to refs/heads/main by this push:
new 265fcbbe9d [GLUTEN-10473] Change `TypeNode` from interface to abstract
class (#10474)
265fcbbe9d is described below
commit 265fcbbe9de4cdd8ca30faec72bdf8313ae104e3
Author: Jiaan Geng <[email protected]>
AuthorDate: Tue Aug 19 16:59:17 2025 +0800
[GLUTEN-10473] Change `TypeNode` from interface to abstract class (#10474)
---
.../org/apache/gluten/substrait/type/BinaryTypeNode.java | 12 ++----------
.../apache/gluten/substrait/type/BooleanTypeNode.java | 12 ++----------
.../org/apache/gluten/substrait/type/DateTypeNode.java | 12 ++----------
.../apache/gluten/substrait/type/DecimalTypeNode.java | 12 ++----------
.../org/apache/gluten/substrait/type/FP32TypeNode.java | 12 ++----------
.../org/apache/gluten/substrait/type/FP64TypeNode.java | 12 ++----------
.../gluten/substrait/type/FixedBinaryTypeNode.java | 12 ++----------
.../apache/gluten/substrait/type/FixedCharTypeNode.java | 12 ++----------
.../org/apache/gluten/substrait/type/I16TypeNode.java | 12 ++----------
.../org/apache/gluten/substrait/type/I32TypeNode.java | 12 ++----------
.../org/apache/gluten/substrait/type/I64TypeNode.java | 12 ++----------
.../org/apache/gluten/substrait/type/I8TypeNode.java | 12 ++----------
.../gluten/substrait/type/IntervalYearTypeNode.java | 13 ++-----------
.../java/org/apache/gluten/substrait/type/ListNode.java | 12 ++----------
.../java/org/apache/gluten/substrait/type/MapNode.java | 11 ++---------
.../org/apache/gluten/substrait/type/NothingNode.java | 13 ++++---------
.../org/apache/gluten/substrait/type/StringTypeNode.java | 12 ++----------
.../org/apache/gluten/substrait/type/StructNode.java | 13 +++----------
.../apache/gluten/substrait/type/TimestampTypeNode.java | 12 ++----------
.../java/org/apache/gluten/substrait/type/TypeNode.java | 16 +++++++++++++---
20 files changed, 54 insertions(+), 192 deletions(-)
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/BinaryTypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/BinaryTypeNode.java
index 82770eea88..a4840c69bc 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/BinaryTypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/BinaryTypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class BinaryTypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class BinaryTypeNode extends TypeNode {
public BinaryTypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class BinaryTypeNode implements TypeNode, Serializable
{
builder.setBinary(binaryBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/BooleanTypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/BooleanTypeNode.java
index 531da33502..f91c378dae 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/BooleanTypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/BooleanTypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class BooleanTypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class BooleanTypeNode extends TypeNode {
public BooleanTypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class BooleanTypeNode implements TypeNode,
Serializable {
builder.setBool(booleanBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/DateTypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/DateTypeNode.java
index 0438abc781..57642740b0 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/DateTypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/DateTypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class DateTypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class DateTypeNode extends TypeNode {
public DateTypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -39,9 +36,4 @@ public class DateTypeNode implements TypeNode, Serializable {
builder.setDate(dateBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/DecimalTypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/DecimalTypeNode.java
index 59c810b0ef..b48ace5524 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/DecimalTypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/DecimalTypeNode.java
@@ -18,15 +18,12 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class DecimalTypeNode implements TypeNode, Serializable {
- public final Boolean nullable;
+public class DecimalTypeNode extends TypeNode {
public final int precision;
public final int scale;
public DecimalTypeNode(Boolean nullable, int precision, int scale) {
- this.nullable = nullable;
+ super(nullable);
this.precision = precision;
this.scale = scale;
}
@@ -46,9 +43,4 @@ public class DecimalTypeNode implements TypeNode,
Serializable {
builder.setDecimal(decimalBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FP32TypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FP32TypeNode.java
index 76d72ce658..7ece6278c8 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FP32TypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FP32TypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class FP32TypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class FP32TypeNode extends TypeNode {
public FP32TypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class FP32TypeNode implements TypeNode, Serializable {
builder.setFp32(doubleBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FP64TypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FP64TypeNode.java
index 21abe07570..7ab6d4224b 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FP64TypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FP64TypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class FP64TypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class FP64TypeNode extends TypeNode {
public FP64TypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class FP64TypeNode implements TypeNode, Serializable {
builder.setFp64(doubleBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FixedBinaryTypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FixedBinaryTypeNode.java
index 7fa6b7ef81..230c31f05f 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FixedBinaryTypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FixedBinaryTypeNode.java
@@ -18,14 +18,11 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class FixedBinaryTypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class FixedBinaryTypeNode extends TypeNode {
private final int length;
public FixedBinaryTypeNode(Boolean nullable, int length) {
- this.nullable = nullable;
+ super(nullable);
this.length = length;
}
@@ -43,9 +40,4 @@ public class FixedBinaryTypeNode implements TypeNode,
Serializable {
builder.setFixedBinary(fixedBinaryBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FixedCharTypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FixedCharTypeNode.java
index 710aa05566..1562ebc239 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FixedCharTypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/FixedCharTypeNode.java
@@ -18,14 +18,11 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class FixedCharTypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class FixedCharTypeNode extends TypeNode {
private final int length;
public FixedCharTypeNode(Boolean nullable, int length) {
- this.nullable = nullable;
+ super(nullable);
this.length = length;
}
@@ -43,9 +40,4 @@ public class FixedCharTypeNode implements TypeNode,
Serializable {
builder.setFixedChar(fixedCharBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I16TypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I16TypeNode.java
index d6a9dc016e..b50bd3842c 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I16TypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I16TypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class I16TypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class I16TypeNode extends TypeNode {
public I16TypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class I16TypeNode implements TypeNode, Serializable {
builder.setI16(i16Builder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I32TypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I32TypeNode.java
index 85ae2ec96c..2ffd9345e1 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I32TypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I32TypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class I32TypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class I32TypeNode extends TypeNode {
public I32TypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class I32TypeNode implements TypeNode, Serializable {
builder.setI32(i32Builder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I64TypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I64TypeNode.java
index 57248915a5..e9a6e1be3f 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I64TypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I64TypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class I64TypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class I64TypeNode extends TypeNode {
public I64TypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class I64TypeNode implements TypeNode, Serializable {
builder.setI64(i64Builder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I8TypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I8TypeNode.java
index 53e69e2ae8..c1a3449b4a 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I8TypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/I8TypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class I8TypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class I8TypeNode extends TypeNode {
public I8TypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class I8TypeNode implements TypeNode, Serializable {
builder.setI8(i8Builder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/IntervalYearTypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/IntervalYearTypeNode.java
index 532a2ec3ba..0544c20ca9 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/IntervalYearTypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/IntervalYearTypeNode.java
@@ -18,14 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class IntervalYearTypeNode implements TypeNode, Serializable {
-
- private final Boolean nullable;
+public class IntervalYearTypeNode extends TypeNode {
public IntervalYearTypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +36,4 @@ public class IntervalYearTypeNode implements TypeNode,
Serializable {
builder.setIntervalYear(intervalYearBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/ListNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/ListNode.java
index 4676d69a3b..c3a5ef1bb6 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/ListNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/ListNode.java
@@ -18,14 +18,11 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class ListNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class ListNode extends TypeNode {
private final TypeNode nestedType;
public ListNode(Boolean nullable, TypeNode nestedType) {
- this.nullable = nullable;
+ super(nullable);
this.nestedType = nestedType;
}
@@ -45,9 +42,4 @@ public class ListNode implements TypeNode, Serializable {
builder.setList(listBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/MapNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/MapNode.java
index 0514c39646..65615f61e8 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/MapNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/MapNode.java
@@ -18,17 +18,15 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-public class MapNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class MapNode extends TypeNode {
private final TypeNode keyType;
private final TypeNode valType;
public MapNode(Boolean nullable, TypeNode keyType, TypeNode valType) {
- this.nullable = nullable;
+ super(nullable);
this.keyType = keyType;
this.valType = valType;
}
@@ -61,9 +59,4 @@ public class MapNode implements TypeNode, Serializable {
builder.setMap(mapBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/NothingNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/NothingNode.java
index b79994ddae..048dce9cd1 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/NothingNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/NothingNode.java
@@ -18,10 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class NothingNode implements TypeNode, Serializable {
- public NothingNode() {}
+public class NothingNode extends TypeNode {
+ public NothingNode() {
+ super(true);
+ }
@Override
public Type toProtobuf() {
@@ -30,9 +30,4 @@ public class NothingNode implements TypeNode, Serializable {
builder.setNothing(nothingBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return true;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/StringTypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/StringTypeNode.java
index 68e43c06c6..4ade5b1cf0 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/StringTypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/StringTypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class StringTypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class StringTypeNode extends TypeNode {
public StringTypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class StringTypeNode implements TypeNode, Serializable
{
builder.setString(stringBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/StructNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/StructNode.java
index 57deda94cc..92c91a0f25 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/StructNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/StructNode.java
@@ -18,23 +18,21 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-public class StructNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class StructNode extends TypeNode {
private final List<TypeNode> types = new ArrayList<>();
private final List<String> names = new ArrayList<>();
public StructNode(Boolean nullable, List<TypeNode> types, List<String>
names) {
- this.nullable = nullable;
+ super(nullable);
this.types.addAll(types);
this.names.addAll(names);
}
public StructNode(Boolean nullable, List<TypeNode> types) {
- this.nullable = nullable;
+ super(nullable);
this.types.addAll(types);
}
@@ -61,9 +59,4 @@ public class StructNode implements TypeNode, Serializable {
builder.setStruct(structBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/TimestampTypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/TimestampTypeNode.java
index 5c63429cbd..f25b5e900e 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/TimestampTypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/TimestampTypeNode.java
@@ -18,13 +18,10 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-import java.io.Serializable;
-
-public class TimestampTypeNode implements TypeNode, Serializable {
- private final Boolean nullable;
+public class TimestampTypeNode extends TypeNode {
public TimestampTypeNode(Boolean nullable) {
- this.nullable = nullable;
+ super(nullable);
}
@Override
@@ -40,9 +37,4 @@ public class TimestampTypeNode implements TypeNode,
Serializable {
builder.setTimestamp(timestampBuilder.build());
return builder.build();
}
-
- @Override
- public Boolean nullable() {
- return nullable;
- }
}
diff --git
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/TypeNode.java
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/TypeNode.java
index de251fa06a..54ead45a09 100644
---
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/TypeNode.java
+++
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/type/TypeNode.java
@@ -18,8 +18,18 @@ package org.apache.gluten.substrait.type;
import io.substrait.proto.Type;
-public interface TypeNode {
- Type toProtobuf();
+import java.io.Serializable;
- Boolean nullable();
+public abstract class TypeNode implements Serializable {
+ protected final Boolean nullable;
+
+ protected TypeNode(Boolean nullable) {
+ this.nullable = nullable;
+ }
+
+ public abstract Type toProtobuf();
+
+ public Boolean nullable() {
+ return nullable;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]