FEATURE: Add ForceSerializeForCollection to GenericJsonSerializingTranscoder#1046
FEATURE: Add ForceSerializeForCollection to GenericJsonSerializingTranscoder#1046oliviarla wants to merge 1 commit intonaver:developfrom
Conversation
| } | ||
|
|
||
| if ((d.getFlags() & COMPRESSED) != 0) { | ||
| if (!isCollection && (d.getFlags() & COMPRESSED) != 0) { |
There was a problem hiding this comment.
!isCollection 조건은 없어야 할 것 같습니다.
이미 COMPRESSED 상태이면, decompress 해야 하기 때문입니다.
| byte[] b; | ||
| int flags = 0; | ||
|
|
||
| if (isCollection && forceJsonSerializeForCollection) { |
There was a problem hiding this comment.
isCollection == false이면
forceJsonSerializeForCollection == true이더라도 serialize() 하지 않는군요.
forceJsonSerializeForCollection 조건에 의해 serialize() 여부가 결정되는 것이
나을 것 같습니다.
| } | ||
| assert b != null; | ||
| if (cu.isCompressionCandidate(b)) { | ||
| if (!isCollection && cu.isCompressionCandidate(b)) { |
There was a problem hiding this comment.
isCollection은 collection element를 encode한다는 의미인가요?
collection 여부 보다는 compress 자체 기준에 따르는 것이 어떤가요?
|
@jhpark816 코멘트에서 질문하신 점도 여기서 답변 드립니다.
|
이 부분은 수정하는 것이 좋겠습니다. |
| private final CompressionUtils cu; | ||
| private final TranscoderUtils tu; | ||
| private final boolean isCollection; | ||
| private final boolean forceJsonSerializeForCollection; |
There was a problem hiding this comment.
질문입니다.
forceJDKSerializeForCollection 용어를 사용해야 하지 않는 지?
There was a problem hiding this comment.
ObectMapper 기반의 Json 변환을 하고 있으므로 JDKSerialize 방식을 사용하지 않습니다.
따라서 지금과 같이 변수명을 작성했습니다.
|
collection이면 compress되지 않기 때문에 decompress 고려할 필요가 없는데, 변경해야 하는 이유가 무엇인가요? |
마찬가지 이유입니다. 추가 이유는 코드 자체의 의미가 이상합니다. |
isCollection == false이면, forceJsonSerializeForCollection을 true로 설정할 수 없게 만들어 둔 상태입니다. |
🔗 Related Issue
⌨️ What I did
GenericJsonSerializingTranscoder수정 사항forceJDKSerializeForCollection옵션이 현재SerializingTranscoder에서만 제공되고 있습니다.GenericJsonSerializingTranscoder에서도 해당 기능을 제공하여 다양한 객체 타입을 collection에 저장할 수 있도록 합니다.SerializingTranscoder와 유사하게 구조를 변경하였습니다.isCollection,forceJsonSerializeForCollection변수를 추가하였으며 이로 인해 설정 요소들이 많아져 빌더 패턴으로 생성하도록 수정하였습니다.CollectionTranscoderTest는 사실상SerializingTranscoder의forceSerializeForCollection동작을 확인하는 클래스였습니다.SerializingTranscoder,GenericJsonSerializingTranscoder모두 확인하는ForceSerializeTranscoderTest클래스를 사용하도록 수정하였습니다.