'Collects any information that\'s necessary to execute this
transformer\'s transform method.'

@classmethod
def collect(cls, block_structure):

    block_structure.request_xblock_fields('mode')
    block_structure.request_xblock_fields('max_count')
    block_structure.request_xblock_fields('category')
    store = modulestore()
    def summarize_block(usage_key):
        '    Basic    information    about    the    given    block    '
        (orig_key, orig_version) = store.get_block_original_usage(usage_key)
        return {'usage_key': unicode(usage_key), 'original_usage_key': (unicode(orig_key) if orig_key else None), 'original_usage_version': (unicode(orig_version) if orig_version else None)}
    for block_key in block_structure.topological_traversal(filter_func=(lambda block_key: (block_key.block_type == 'library_content')), yield_descendants_of_unyielded=True):
        xblock = block_structure.get_xblock(block_key)
        for child_key in xblock.children:
            summary = summarize_block(child_key)
            block_structure.set_transformer_block_field(child_key, cls, 'block_analytics_summary', summary)
