def METHOD_NAME(self, context):
    cr = context.cairo
    # no tail drawing in case of communication diagram
    if self._is_communication:
        cr.line_to(0, 0)
        return
    subject = self.subject
    if subject and subject.messageSort in ("createMessage", "reply"):
        cr.set_dash((7.0, 5.0), 0)
    cr.line_to(0, 0)
    stroke(context, fill=False, dash=False)
    cr.set_dash((), 0)
    if subject:
        w = cr.get_line_width()
        if subject.messageKind == "lost":
            self._draw_circle(cr)
            cr.stroke()
        cr.set_line_width(w)
        half = subject.messageSort == "asynchSignal"
        filled = subject.messageSort in ("synchCall", "deleteMessage")
        self._draw_arrow(cr, half, filled)
    else:
        self._draw_arrow(cr)
    stroke(context, fill=False)