Skip to content

Commit 70b5e75

Browse files
committed
CDM-37 consolidating registry to cqlHelper
1 parent 476e5fc commit 70b5e75

File tree

3 files changed

+13
-12
lines changed

3 files changed

+13
-12
lines changed

src/main/java/datastax/cdm/cql/CqlHelper.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,7 @@ public Boolean isFeatureEnabled(Featureset featureEnum) {
117117
private void registerTargetCodecs() {
118118
List<String> codecList = propertyHelper.getStringList(KnownProperties.TRANSFORM_CODECS);
119119
if (null!=codecList && !codecList.isEmpty()) {
120-
MutableCodecRegistry registry =
121-
(MutableCodecRegistry) targetSession.getContext().getCodecRegistry();
120+
MutableCodecRegistry registry = getCodecRegistry();
122121

123122
StringBuilder sb = new StringBuilder("PARAM -- Codecs Enabled: ");
124123
for (String codecString : codecList) {
@@ -136,6 +135,10 @@ public boolean isCodecRegistered(Codecset codecEnum) {
136135
return codecMap.containsKey(codecEnum);
137136
}
138137

138+
public MutableCodecRegistry getCodecRegistry() {
139+
return (MutableCodecRegistry) targetSession.getContext().getCodecRegistry();
140+
}
141+
139142
// --------------- Session and Performance -------------------------
140143
public void setOriginSession(CqlSession originSession) {
141144
this.originSession = originSession;

src/main/java/datastax/cdm/job/DiffJobSession.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ public class DiffJobSession extends CopyJobSession {
5151
private final int explodeMapKeyIndex;
5252
private final int explodeMapValueIndex;
5353

54-
private final CodecRegistry originCodecRegistry;
55-
private final CodecRegistry targetCodecRegistry;
54+
private final CodecRegistry codecRegistry;
5655

5756
private DiffJobSession(CqlSession originSession, CqlSession targetSession, SparkConf sc) {
5857
super(originSession, targetSession, sc);
@@ -81,8 +80,7 @@ private DiffJobSession(CqlSession originSession, CqlSession targetSession, Spark
8180
this.explodeMapValueIndex = -1;
8281
}
8382

84-
this.originCodecRegistry = originSession.getContext().getCodecRegistry();
85-
this.targetCodecRegistry = targetSession.getContext().getCodecRegistry();
83+
this.codecRegistry = cqlHelper.getCodecRegistry();
8684
}
8785

8886
public static DiffJobSession getInstance(CqlSession originSession, CqlSession targetSession, SparkConf sparkConf) {
@@ -232,7 +230,7 @@ private String isDifferent(EnhancedPK pk, Row originRow, Row targetRow) {
232230
MigrateDataType originDataTypeObj = originColumnTypes.get(originIndex);
233231
origin = cqlHelper.getData(originDataTypeObj, originIndex, originRow);
234232
if (!originDataTypeObj.equals(targetDataTypeObj)) {
235-
origin = MigrateDataType.convert(origin, originDataTypeObj, originCodecRegistry, targetDataTypeObj, targetCodecRegistry);
233+
origin = MigrateDataType.convert(origin, originDataTypeObj, targetDataTypeObj, codecRegistry);
236234
}
237235
}
238236
}

src/main/java/datastax/cdm/job/MigrateDataType.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,18 @@ public boolean diff(Object obj1, Object obj2) {
8989
}
9090

9191
@SuppressWarnings("unchecked")
92-
public static Object convert(Object value, MigrateDataType fromDataType, CodecRegistry fromRegistry, MigrateDataType toDataType, CodecRegistry toRegistry) {
92+
public static Object convert(Object value, MigrateDataType fromDataType, MigrateDataType toDataType, CodecRegistry codecRegistry) {
9393
Class<?> fromClass = fromDataType.getTypeClass();
9494
Class<?> toClass = toDataType.getTypeClass();
9595
DataType cqlType = toDataType.getCqlDataType();
9696

97-
TypeCodec<Object> fromCodec = (TypeCodec<Object>) fromRegistry.codecFor(cqlType, fromClass);
97+
TypeCodec<Object> fromCodec = (TypeCodec<Object>) codecRegistry.codecFor(cqlType, fromClass);
9898
if (fromCodec == null) {
99-
throw new IllegalArgumentException("No codec found in fromRegistry for Java type " + fromClass.getName() + " to CQL type " + toDataType);
99+
throw new IllegalArgumentException("No codec found in codecRegistry for Java type " + fromClass.getName() + " to CQL type " + toDataType);
100100
}
101-
TypeCodec<Object> toCodec = (TypeCodec<Object>) toRegistry.codecFor(cqlType, toClass);
101+
TypeCodec<Object> toCodec = (TypeCodec<Object>) codecRegistry.codecFor(cqlType, toClass);
102102
if (toCodec == null) {
103-
throw new IllegalArgumentException("No codec found in toRegistry for Java type " + toClass.getName() + " to CQL type " + toDataType);
103+
throw new IllegalArgumentException("No codec found in codecRegistry for Java type " + toClass.getName() + " to CQL type " + toDataType);
104104
}
105105
ByteBuffer encoded = fromCodec.encode(value, ProtocolVersion.DEFAULT);
106106
return toCodec.decode(encoded, ProtocolVersion.DEFAULT);

0 commit comments

Comments
 (0)