Skip to content

Commit dde0453

Browse files
findepiwendigo
authored andcommitted
Improve generics of DistributedQueryRunner.Builder
Now chains of configuration methods do not erase the builder type. This allows e.g. for HiveQueryRunner.Builder's method to be invoked before or after methods coming from DistributedQueryRunner.Builder, without any compiler issues.
1 parent bac693a commit dde0453

2 files changed

Lines changed: 17 additions & 6 deletions

File tree

plugin/trino-hive/src/test/java/io/trino/plugin/hive/HiveQueryRunner.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,17 +83,28 @@ public static QueryRunner create()
8383
return builder().build();
8484
}
8585

86-
public static Builder<Builder<?>> builder()
86+
public static ConcreteBuilder builder()
8787
{
88-
return new Builder<>();
88+
return new ConcreteBuilder();
8989
}
9090

91-
public static Builder<Builder<?>> builder(Session defaultSession)
91+
public static ConcreteBuilder builder(Session defaultSession)
9292
{
93-
return new Builder<>(defaultSession);
93+
return new ConcreteBuilder(defaultSession);
9494
}
9595

96-
public static class Builder<SELF extends Builder<?>>
96+
public static final class ConcreteBuilder
97+
extends Builder<ConcreteBuilder>
98+
{
99+
private ConcreteBuilder() {}
100+
101+
private ConcreteBuilder(Session defaultSession)
102+
{
103+
super(defaultSession);
104+
}
105+
}
106+
107+
public static class Builder<SELF extends Builder<SELF>>
97108
extends DistributedQueryRunner.Builder<SELF>
98109
{
99110
private boolean skipTimezoneSetup;

testing/trino-testing/src/main/java/io/trino/testing/DistributedQueryRunner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,7 @@ private static void closeUnchecked(AutoCloseable closeable)
732732
}
733733
}
734734

735-
public static class Builder<SELF extends Builder<?>>
735+
public static class Builder<SELF extends Builder<SELF>>
736736
{
737737
private Session defaultSession;
738738
private boolean withTracing;

0 commit comments

Comments
 (0)