class JsonEncodedMessage implements EncodableMessage {

    private volatile ByteBuf payload;

    @Getter
    private Object nativePayload;

    public JsonEncodedMessage(Object nativePayload) {
        Objects.requireNonNull(nativePayload);
        this.nativePayload = nativePayload;
    }

    @Nonnull
    @Override
    public ByteBuf getPayload() {<FILL_FUNCTION_BODY>}


}

        if (payload == null) {
            payload = PayloadType.JSON.write(nativePayload);
        }
        return payload;
    
<no_super_class>