Same as :py:meth:`.BaseBuilder.addMeal` but uses
            helper functions to convert input parameters into needed types.
            Meals names are auto-shortend to the allowed 250 characters.
            The following paramer is new:

            :param roles:  Is passed as role parameter to :func:`buildPrices`

def addMeal(self, date, category, name, notes=None, prices=None,
                roles=None):
        """ Same as :py:meth:`.BaseBuilder.addMeal` but uses
            helper functions to convert input parameters into needed types.
            Meals names are auto-shortend to the allowed 250 characters.
            The following paramer is new:

            :param roles:  Is passed as role parameter to :func:`buildPrices`
            """
        if self.legendData:  # do legend extraction
            name, notes = extractNotes(name, notes or [],
                                       legend=self.legendData,
                                       key=self.legendKeyFunc,
                                       regex=self.extra_regex)
        prices = buildPrices(prices or {}, roles,
                             default=self.additionalCharges[0],
                             additional=self.additionalCharges[1])
        if len(name) > 250:
            name = name[:247] + '...'
        super(LazyBuilder, self).addMeal(extractDate(date), category, name,
                                         notes or [], prices)