Skip to content

Commit 1fe0c7f

Browse files
authored
refactor: Avoid casting, use Optional, use equals, use Boolean.toString (#90)
Follow up to https://medium.com/@johnpang/optionals-and-lombok-a414639dca1e
1 parent 2c7060f commit 1fe0c7f

File tree

3 files changed

+53
-46
lines changed

3 files changed

+53
-46
lines changed

lib/src/main/java/io/cloudquery/helper/ArrowHelper.java

Lines changed: 47 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.HashMap;
1717
import java.util.List;
1818
import java.util.Map;
19+
import java.util.Objects;
1920
import org.apache.arrow.memory.BufferAllocator;
2021
import org.apache.arrow.memory.RootAllocator;
2122
import org.apache.arrow.vector.BigIntVector;
@@ -57,80 +58,80 @@ public class ArrowHelper {
5758

5859
private static void setVectorData(FieldVector vector, Object data) {
5960
vector.allocateNew();
60-
if (vector instanceof BigIntVector) {
61-
((BigIntVector) vector).set(0, (long) data);
61+
if (vector instanceof BigIntVector bigIntVector) {
62+
bigIntVector.set(0, (long) data);
6263
return;
6364
}
64-
if (vector instanceof BitVector) {
65-
((BitVector) vector).set(0, (int) data);
65+
if (vector instanceof BitVector bitVector) {
66+
bitVector.set(0, (int) data);
6667
return;
6768
}
68-
if (vector instanceof FixedSizeBinaryVector) {
69-
((FixedSizeBinaryVector) vector).set(0, (byte[]) data);
69+
if (vector instanceof FixedSizeBinaryVector fixedSizeBinaryVector) {
70+
fixedSizeBinaryVector.set(0, (byte[]) data);
7071
return;
7172
}
72-
if (vector instanceof Float4Vector) {
73-
((Float4Vector) vector).set(0, (float) data);
73+
if (vector instanceof Float4Vector float4Vector) {
74+
float4Vector.set(0, (float) data);
7475
return;
7576
}
76-
if (vector instanceof Float8Vector) {
77-
((Float8Vector) vector).set(0, (double) data);
77+
if (vector instanceof Float8Vector float8Vector) {
78+
float8Vector.set(0, (double) data);
7879
return;
7980
}
80-
if (vector instanceof IntVector) {
81-
((IntVector) vector).set(0, (int) data);
81+
if (vector instanceof IntVector intVector) {
82+
intVector.set(0, (int) data);
8283
return;
8384
}
84-
if (vector instanceof LargeVarBinaryVector) {
85-
((LargeVarBinaryVector) vector).set(0, (byte[]) data);
85+
if (vector instanceof LargeVarBinaryVector largeVarBinaryVector) {
86+
largeVarBinaryVector.set(0, (byte[]) data);
8687
return;
8788
}
88-
if (vector instanceof LargeVarCharVector) {
89-
((LargeVarCharVector) vector).set(0, (Text) data);
89+
if (vector instanceof LargeVarCharVector largeVarCharVector) {
90+
largeVarCharVector.set(0, (Text) data);
9091
return;
9192
}
92-
if (vector instanceof SmallIntVector) {
93-
((SmallIntVector) vector).set(0, (short) data);
93+
if (vector instanceof SmallIntVector smallIntVector) {
94+
smallIntVector.set(0, (short) data);
9495
return;
9596
}
96-
if (vector instanceof TimeStampVector) {
97-
((TimeStampVector) vector).set(0, (long) data);
97+
if (vector instanceof TimeStampVector timeStampVector) {
98+
timeStampVector.set(0, (long) data);
9899
return;
99100
}
100-
if (vector instanceof TinyIntVector) {
101-
((TinyIntVector) vector).set(0, (byte) data);
101+
if (vector instanceof TinyIntVector tinyIntVector) {
102+
tinyIntVector.set(0, (byte) data);
102103
return;
103104
}
104-
if (vector instanceof UInt1Vector) {
105-
((UInt1Vector) vector).set(0, (byte) data);
105+
if (vector instanceof UInt1Vector uInt1Vector) {
106+
uInt1Vector.set(0, (byte) data);
106107
return;
107108
}
108-
if (vector instanceof UInt2Vector) {
109-
((UInt2Vector) vector).set(0, (short) data);
109+
if (vector instanceof UInt2Vector uInt2Vector) {
110+
uInt2Vector.set(0, (short) data);
110111
return;
111112
}
112-
if (vector instanceof UInt4Vector) {
113-
((UInt4Vector) vector).set(0, (int) data);
113+
if (vector instanceof UInt4Vector uInt4Vector) {
114+
uInt4Vector.set(0, (int) data);
114115
return;
115116
}
116-
if (vector instanceof UInt8Vector) {
117-
((UInt8Vector) vector).set(0, (long) data);
117+
if (vector instanceof UInt8Vector uInt8Vector) {
118+
uInt8Vector.set(0, (long) data);
118119
return;
119120
}
120-
if (vector instanceof VarBinaryVector) {
121-
((VarBinaryVector) vector).set(0, (byte[]) data);
121+
if (vector instanceof VarBinaryVector varBinaryVector) {
122+
varBinaryVector.set(0, (byte[]) data);
122123
return;
123124
}
124-
if (vector instanceof VarCharVector) {
125-
((VarCharVector) vector).set(0, (Text) data);
125+
if (vector instanceof VarCharVector vectorCharVector) {
126+
vectorCharVector.set(0, (Text) data);
126127
return;
127128
}
128-
if (vector instanceof UUIDVector) {
129-
((UUIDVector) vector).set(0, (java.util.UUID) data);
129+
if (vector instanceof UUIDVector uuidVector) {
130+
uuidVector.set(0, (java.util.UUID) data);
130131
return;
131132
}
132-
if (vector instanceof JSONVector) {
133-
((JSONVector) vector).setSafe(0, (byte[]) data);
133+
if (vector instanceof JSONVector jsonVector) {
134+
jsonVector.setSafe(0, (byte[]) data);
134135
return;
135136
}
136137

@@ -168,9 +169,9 @@ public static Schema toArrowSchema(Table table) {
168169
for (int i = 0; i < columns.size(); i++) {
169170
Column column = columns.get(i);
170171
Map<String, String> metadata = new HashMap<>();
171-
metadata.put(CQ_EXTENSION_UNIQUE, column.isUnique() ? "true" : "false");
172-
metadata.put(CQ_EXTENSION_PRIMARY_KEY, column.isPrimaryKey() ? "true" : "false");
173-
metadata.put(CQ_EXTENSION_INCREMENTAL, column.isIncrementalKey() ? "true" : "false");
172+
metadata.put(CQ_EXTENSION_UNIQUE, Boolean.toString(column.isUnique()));
173+
metadata.put(CQ_EXTENSION_PRIMARY_KEY, Boolean.toString(column.isPrimaryKey()));
174+
metadata.put(CQ_EXTENSION_INCREMENTAL, Boolean.toString(column.isIncrementalKey()));
174175
Field field =
175176
new Field(
176177
column.getName(),
@@ -196,9 +197,11 @@ public static Schema toArrowSchema(Table table) {
196197
public static Table fromArrowSchema(Schema schema) {
197198
List<Column> columns = new ArrayList<>();
198199
for (Field field : schema.getFields()) {
199-
boolean isUnique = field.getMetadata().get(CQ_EXTENSION_UNIQUE) == "true";
200-
boolean isPrimaryKey = field.getMetadata().get(CQ_EXTENSION_PRIMARY_KEY) == "true";
201-
boolean isIncrementalKey = field.getMetadata().get(CQ_EXTENSION_INCREMENTAL) == "true";
200+
boolean isUnique = Objects.equals(field.getMetadata().get(CQ_EXTENSION_UNIQUE), "true");
201+
boolean isPrimaryKey =
202+
Objects.equals(field.getMetadata().get(CQ_EXTENSION_PRIMARY_KEY), "true");
203+
boolean isIncrementalKey =
204+
Objects.equals(field.getMetadata().get(CQ_EXTENSION_INCREMENTAL), "true");
202205

203206
columns.add(
204207
Column.builder()

lib/src/main/java/io/cloudquery/scheduler/Scheduler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void sync() {
3737
for (Table table : tables) {
3838
try {
3939
logger.info("resolving table: {}", table.getName());
40-
if (table.getResolver() == null) {
40+
if (!table.getResolver().isPresent()) {
4141
logger.error("no resolver for table: {}", table.getName());
4242
continue;
4343
}
@@ -48,7 +48,7 @@ public void sync() {
4848
.logger(logger)
4949
.syncStream(syncStream)
5050
.build();
51-
table.getResolver().resolve(client, null, schedulerTableOutputStream);
51+
table.getResolver().get().resolve(client, null, schedulerTableOutputStream);
5252
logger.info("resolved table: {}", table.getName());
5353
} catch (Exception e) {
5454
syncStream.onError(e);

lib/src/main/java/io/cloudquery/schema/Table.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@ public Optional<Column> getColumn(String name) {
210210
return Optional.empty();
211211
}
212212

213+
public Optional<TableResolver> getResolver() {
214+
return Optional.ofNullable(resolver);
215+
}
216+
213217
public List<TableColumnChange> getChanges(Table old) {
214218
List<TableColumnChange> changes = new ArrayList<>();
215219
for (Column currentColumn : columns) {

0 commit comments

Comments
 (0)