@classmethod
def generate_from_events(cls, id_, events, committed=True, apply_map=None):
    """
        Return an aggregate from applying the supplied events and apply_map

        Parameters:
        apply_map -- A dict of event_type keys to handler functions
        id_ -- unique identity; required because an aggregate must have identity
               in order to have events associated
        events -- The events to apply
        committed -- If True then the events are added as if committed
        """
    apply_map = apply_map or cls.get_apply_map()
    aggregate = cls.generate(id_)
    return aggregate.apply_events(events, committed=committed, apply_map=
        apply_map)
