def primitive_wrapper_from_primitive(
      self,
      primitive_message: message.Message,
  ) -> _primitive_wrappers.PrimitiveWrapper:
    """See json_format PrimitiveHandler.primitive_wrapper_from_primitive."""
    if not annotation_utils.is_primitive_type(primitive_message):
      raise ValueError(
          f'Not a primitive type: {primitive_message.DESCRIPTOR.full_name!r}.')

    wrapper_cls = self.get_primitive_wrapper_cls_for_primitive_cls(
        type(primitive_message))
    wrapper_context = _primitive_wrappers.Context(
        separator_stride_cls=fhirproto_extensions_pb2
        .Base64BinarySeparatorStride,
        code_cls=self.code_cls,
        default_timezone=_primitive_time_utils.SIMPLE_ZULU)
    return wrapper_cls.from_primitive(primitive_message, wrapper_context)
  def primitive_wrapper_from_json_value(
      self,
      json_value: Optional[Any],
      primitive_cls: Type[message.Message],
      *,
      default_timezone: str = _primitive_time_utils.SIMPLE_ZULU
  ) -> _primitive_wrappers.PrimitiveWrapper:
    """See json_format PrimitiveHandler.primitive_wrapper_from_json_value."""
    if not annotation_utils.is_primitive_type(primitive_cls.DESCRIPTOR):
      raise ValueError(
          f'Not a primitive type: {primitive_cls.DESCRIPTOR.full_name!r}.')

    wrapper_cls = self.get_primitive_wrapper_cls_for_primitive_cls(
        primitive_cls)
    wrapper_context = _primitive_wrappers.Context(
        separator_stride_cls=fhirproto_extensions_pb2
        .Base64BinarySeparatorStride,
        code_cls=self.code_cls,
        default_timezone=default_timezone)
    return wrapper_cls.from_json_value(json_value, primitive_cls,
                                       wrapper_context)