'Create an XBlockCache object.
Arguments:
data (dict): The data to create the object with.
Returns:
An XBlockCache object.'

@classmethod
def create(cls, data):

    data = dict(data)
    usage_key = data.pop('usage_key')
    usage_key = usage_key.replace(course_key=modulestore().fill_in_run(usage_key.course_key))
    data['course_key'] = usage_key.course_key
    (xblock_cache, created) = cls.objects.get_or_create(usage_key=usage_key, defaults=data)
    if (not created):
        new_display_name = data.get('display_name', xblock_cache.display_name)
        if (xblock_cache.display_name != new_display_name):
            xblock_cache.display_name = new_display_name
            xblock_cache.save()
    return xblock_cache
