Skip to content

Commit

Permalink
fix: Cache in top level
Browse files Browse the repository at this point in the history
  • Loading branch information
ekawinataa committed Dec 11, 2024
1 parent a10ec22 commit 6781977
Showing 1 changed file with 6 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.gotocompany.depot.maxcompute.converter;

import com.aliyun.odps.data.SimpleStruct;
import com.aliyun.odps.type.ArrayTypeInfo;
import com.aliyun.odps.type.StructTypeInfo;
import com.aliyun.odps.type.TypeInfo;
import com.aliyun.odps.type.TypeInfoFactory;
Expand All @@ -26,11 +25,13 @@ public MessageProtobufMaxComputeConverter(MaxComputeProtobufConverterCache maxCo
}

@Override
public TypeInfo convertSingularTypeInfo(Descriptors.FieldDescriptor fieldDescriptor) {
return maxComputeProtobufConverterCache.getOrCreateTypeInfo(fieldDescriptor, () -> calculateTypeInfo(fieldDescriptor));
public TypeInfo convertTypeInfo(Descriptors.FieldDescriptor fieldDescriptor) {
return maxComputeProtobufConverterCache.getOrCreateTypeInfo(fieldDescriptor,
() -> wrapTypeInfo(fieldDescriptor, convertSingularTypeInfo(fieldDescriptor)));
}

private StructTypeInfo calculateTypeInfo(Descriptors.FieldDescriptor fieldDescriptor) {
@Override
public StructTypeInfo convertSingularTypeInfo(Descriptors.FieldDescriptor fieldDescriptor) {
List<String> fieldNames = fieldDescriptor.getMessageType().getFields().stream()
.map(Descriptors.FieldDescriptor::getName)
.collect(Collectors.toList());
Expand Down Expand Up @@ -62,8 +63,7 @@ public Object convertSingularPayload(ProtoPayload protoPayload) {
.convertPayload(new ProtoPayload(innerFieldDescriptor, payloadFields.get(innerFieldDescriptor), false));
values.add(mappedInnerValue);
});
TypeInfo typeInfo = convertSingularTypeInfo(protoPayload.getFieldDescriptor());
return new SimpleStruct((StructTypeInfo) (typeInfo instanceof ArrayTypeInfo ? ((ArrayTypeInfo) typeInfo).getElementTypeInfo() : typeInfo), values);
return new SimpleStruct(convertSingularTypeInfo(protoPayload.getFieldDescriptor()), values);
}

}

0 comments on commit 6781977

Please sign in to comment.