Skip to content

Commit 45a9cd4

Browse files
committed
make visitor null-safe
1 parent e4d3913 commit 45a9cd4

1 file changed

Lines changed: 28 additions & 40 deletions

File tree

flink-cdc-common/src/main/java/org/apache/flink/cdc/common/event/visitor/SchemaChangeEventVisitor.java

Lines changed: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -27,60 +27,47 @@
2727
import org.apache.flink.cdc.common.event.RenameColumnEvent;
2828
import org.apache.flink.cdc.common.event.SchemaChangeEvent;
2929
import org.apache.flink.cdc.common.event.TruncateTableEvent;
30+
import org.apache.flink.cdc.common.utils.Preconditions;
31+
32+
import javax.annotation.Nonnull;
3033

3134
/** Visitor clas for all {@link SchemaChangeEvent}s and returns a specific typed object. */
3235
@Internal
3336
public class SchemaChangeEventVisitor {
3437
public static <T, E extends Throwable> T visit(
3538
SchemaChangeEvent event,
36-
VisitorHandler<AddColumnEvent, T, E> addColumnVisitor,
37-
VisitorHandler<AlterColumnTypeEvent, T, E> alterColumnTypeEventVisitor,
38-
VisitorHandler<CreateTableEvent, T, E> createTableEventVisitor,
39-
VisitorHandler<DropColumnEvent, T, E> dropColumnEventVisitor,
40-
VisitorHandler<DropTableEvent, T, E> dropTableEventVisitor,
41-
VisitorHandler<RenameColumnEvent, T, E> renameColumnEventVisitor,
42-
VisitorHandler<TruncateTableEvent, T, E> truncateTableEventVisitor,
43-
VisitorHandler<AlterTableCommentEvent, T, E> alterTableCommentEventVisitor)
39+
@Nonnull VisitorHandler<AddColumnEvent, T, E> addColumnVisitor,
40+
@Nonnull VisitorHandler<AlterColumnTypeEvent, T, E> alterColumnTypeEventVisitor,
41+
@Nonnull VisitorHandler<CreateTableEvent, T, E> createTableEventVisitor,
42+
@Nonnull VisitorHandler<DropColumnEvent, T, E> dropColumnEventVisitor,
43+
@Nonnull VisitorHandler<DropTableEvent, T, E> dropTableEventVisitor,
44+
@Nonnull VisitorHandler<RenameColumnEvent, T, E> renameColumnEventVisitor,
45+
@Nonnull VisitorHandler<TruncateTableEvent, T, E> truncateTableEventVisitor,
46+
@Nonnull VisitorHandler<AlterTableCommentEvent, T, E> alterTableCommentEventVisitor)
4447
throws E {
4548
if (event instanceof AddColumnEvent) {
46-
if (addColumnVisitor == null) {
47-
return null;
48-
}
49+
Preconditions.checkNotNull(addColumnVisitor);
4950
return addColumnVisitor.visit((AddColumnEvent) event);
5051
} else if (event instanceof AlterColumnTypeEvent) {
51-
if (alterColumnTypeEventVisitor == null) {
52-
return null;
53-
}
52+
Preconditions.checkNotNull(alterColumnTypeEventVisitor);
5453
return alterColumnTypeEventVisitor.visit((AlterColumnTypeEvent) event);
5554
} else if (event instanceof CreateTableEvent) {
56-
if (createTableEventVisitor == null) {
57-
return null;
58-
}
55+
Preconditions.checkNotNull(createTableEventVisitor);
5956
return createTableEventVisitor.visit((CreateTableEvent) event);
6057
} else if (event instanceof DropColumnEvent) {
61-
if (dropColumnEventVisitor == null) {
62-
return null;
63-
}
58+
Preconditions.checkNotNull(dropColumnEventVisitor);
6459
return dropColumnEventVisitor.visit((DropColumnEvent) event);
6560
} else if (event instanceof DropTableEvent) {
66-
if (dropTableEventVisitor == null) {
67-
return null;
68-
}
61+
Preconditions.checkNotNull(dropTableEventVisitor);
6962
return dropTableEventVisitor.visit((DropTableEvent) event);
7063
} else if (event instanceof RenameColumnEvent) {
71-
if (renameColumnEventVisitor == null) {
72-
return null;
73-
}
64+
Preconditions.checkNotNull(renameColumnEventVisitor);
7465
return renameColumnEventVisitor.visit((RenameColumnEvent) event);
7566
} else if (event instanceof TruncateTableEvent) {
76-
if (truncateTableEventVisitor == null) {
77-
return null;
78-
}
67+
Preconditions.checkNotNull(truncateTableEventVisitor);
7968
return truncateTableEventVisitor.visit((TruncateTableEvent) event);
8069
} else if (event instanceof AlterTableCommentEvent) {
81-
if (alterTableCommentEventVisitor == null) {
82-
return null;
83-
}
70+
Preconditions.checkNotNull(alterTableCommentEventVisitor);
8471
return alterTableCommentEventVisitor.visit((AlterTableCommentEvent) event);
8572
} else {
8673
throw new IllegalArgumentException(
@@ -90,14 +77,14 @@ public static <T, E extends Throwable> T visit(
9077

9178
public static <E extends Throwable> void voidVisit(
9279
SchemaChangeEvent event,
93-
VoidVisitorHandler<AddColumnEvent, E> addColumnVisitor,
94-
VoidVisitorHandler<AlterColumnTypeEvent, E> alterColumnTypeEventVisitor,
95-
VoidVisitorHandler<CreateTableEvent, E> createTableEventVisitor,
96-
VoidVisitorHandler<DropColumnEvent, E> dropColumnEventVisitor,
97-
VoidVisitorHandler<DropTableEvent, E> dropTableEventVisitor,
98-
VoidVisitorHandler<RenameColumnEvent, E> renameColumnEventVisitor,
99-
VoidVisitorHandler<TruncateTableEvent, E> truncateTableEventVisitor,
100-
VoidVisitorHandler<AlterTableCommentEvent, E> alterTableCommentEventHandler)
80+
@Nonnull VoidVisitorHandler<AddColumnEvent, E> addColumnVisitor,
81+
@Nonnull VoidVisitorHandler<AlterColumnTypeEvent, E> alterColumnTypeEventVisitor,
82+
@Nonnull VoidVisitorHandler<CreateTableEvent, E> createTableEventVisitor,
83+
@Nonnull VoidVisitorHandler<DropColumnEvent, E> dropColumnEventVisitor,
84+
@Nonnull VoidVisitorHandler<DropTableEvent, E> dropTableEventVisitor,
85+
@Nonnull VoidVisitorHandler<RenameColumnEvent, E> renameColumnEventVisitor,
86+
@Nonnull VoidVisitorHandler<TruncateTableEvent, E> truncateTableEventVisitor,
87+
@Nonnull VoidVisitorHandler<AlterTableCommentEvent, E> alterTableCommentEventHandler)
10188
throws E {
10289
visit(
10390
event,
@@ -113,6 +100,7 @@ public static <E extends Throwable> void voidVisit(
113100

114101
private static <EVT extends SchemaChangeEvent, E extends Throwable>
115102
VisitorHandler<EVT, Void, E> wrapVoidVisitor(VoidVisitorHandler<EVT, E> handler) {
103+
Preconditions.checkNotNull(handler);
116104
return event -> {
117105
handler.visit(event);
118106
return null;

0 commit comments

Comments
 (0)