|
11 | 11 | import org.apache.kafka.connect.data.Struct;
|
12 | 12 |
|
13 | 13 | import com.redis.lettucemod.timeseries.Sample;
|
14 |
| -import com.redis.spring.batch.item.redis.common.DataType; |
15 | 14 | import com.redis.spring.batch.item.redis.common.KeyValue;
|
16 | 15 |
|
17 | 16 | import io.lettuce.core.ScoredValue;
|
18 | 17 |
|
19 |
| -public class ToStructFunction implements Function<KeyValue<String, Object>, Struct> { |
| 18 | +public class ToStructFunction implements Function<KeyValue<String>, Struct> { |
20 | 19 |
|
21 | 20 | public static final String FIELD_KEY = "key";
|
22 | 21 |
|
@@ -60,43 +59,45 @@ public class ToStructFunction implements Function<KeyValue<String, Object>, Stru
|
60 | 59 | .field(FIELD_SET, SET_SCHEMA).field(FIELD_ZSET, ZSET_SCHEMA).name(VALUE_SCHEMA_NAME).build();
|
61 | 60 |
|
62 | 61 | @Override
|
63 |
| - public Struct apply(KeyValue<String, Object> input) { |
| 62 | + public Struct apply(KeyValue<String> input) { |
64 | 63 | Struct struct = new Struct(VALUE_SCHEMA);
|
65 | 64 | struct.put(FIELD_KEY, input.getKey());
|
66 | 65 | struct.put(FIELD_TTL, input.getTtl());
|
67 | 66 | struct.put(FIELD_TYPE, input.getType());
|
68 |
| - switch (DataType.of(input.getType())) { |
69 |
| - case HASH: |
70 |
| - struct.put(FIELD_HASH, input.getValue()); |
71 |
| - break; |
72 |
| - case JSON: |
73 |
| - struct.put(FIELD_JSON, input.getValue()); |
74 |
| - break; |
75 |
| - case LIST: |
76 |
| - struct.put(FIELD_LIST, input.getValue()); |
77 |
| - break; |
78 |
| - case SET: |
79 |
| - struct.put(FIELD_SET, list(input)); |
80 |
| - break; |
81 |
| - case STRING: |
82 |
| - struct.put(FIELD_STRING, input.getValue()); |
83 |
| - break; |
84 |
| - case ZSET: |
85 |
| - struct.put(FIELD_ZSET, zsetMap(input)); |
86 |
| - break; |
87 |
| - default: |
88 |
| - break; |
| 67 | + if (input.getType() != null) { |
| 68 | + switch (input.getType()) { |
| 69 | + case KeyValue.TYPE_HASH: |
| 70 | + struct.put(FIELD_HASH, input.getValue()); |
| 71 | + break; |
| 72 | + case KeyValue.TYPE_JSON: |
| 73 | + struct.put(FIELD_JSON, input.getValue()); |
| 74 | + break; |
| 75 | + case KeyValue.TYPE_LIST: |
| 76 | + struct.put(FIELD_LIST, input.getValue()); |
| 77 | + break; |
| 78 | + case KeyValue.TYPE_SET: |
| 79 | + struct.put(FIELD_SET, list(input)); |
| 80 | + break; |
| 81 | + case KeyValue.TYPE_STRING: |
| 82 | + struct.put(FIELD_STRING, input.getValue()); |
| 83 | + break; |
| 84 | + case KeyValue.TYPE_ZSET: |
| 85 | + struct.put(FIELD_ZSET, zsetMap(input)); |
| 86 | + break; |
| 87 | + default: |
| 88 | + break; |
| 89 | + } |
89 | 90 | }
|
90 | 91 | return struct;
|
91 | 92 | }
|
92 | 93 |
|
93 | 94 | @SuppressWarnings("unchecked")
|
94 |
| - private Object list(KeyValue<String, Object> input) { |
| 95 | + private Object list(KeyValue<String> input) { |
95 | 96 | return new ArrayList<>((Collection<String>) input.getValue());
|
96 | 97 | }
|
97 | 98 |
|
98 | 99 | @SuppressWarnings("unchecked")
|
99 |
| - public static Map<Double, String> zsetMap(KeyValue<String, Object> input) { |
| 100 | + public static Map<Double, String> zsetMap(KeyValue<String> input) { |
100 | 101 | Collection<ScoredValue<String>> value = (Collection<ScoredValue<String>>) input.getValue();
|
101 | 102 | return zsetMap(value);
|
102 | 103 | }
|
|
0 commit comments