def _create_serializer(self) -> JsonObjectSerializer:
        """
        Create serializer that is to be used by this encoder
        :return: the serializer
        """
        if self._serializer_cache is None:
            serializer_cls = type(
                "%sInternalSerializer" % type(self),
                (JsonObjectSerializer,),
                {
                    "_JSON_ENCODER_ARGS": self._args,
                    "_JSON_ENCODER_KWARGS": self._kwargs
                }
            )
            self._serializer_cache = serializer_cls(self._get_property_mappings())
        return self._serializer_cache
Create serializer that is to be used by this encoder
        :return: the serializer