def METHOD_NAME(self, name, value):
    """Set analysis field/interim value
    """
    # set of updated objects
    updated_objects = METHOD_NAME()
    # schema field
    field = self.fields.get(name)
    # interims
    interims = self.context.getInterimFields()
    interim_keys = map(lambda i: i.get("keyword"), interims)
    # schema field found
    if field:
        # Check the permission of the field
        if not self.is_field_writeable(field):
            logger.error("Field '{}' not writeable!".format(name))
            return []
        # get the field mutator (works only for AT content types)
        if hasattr(field, "getMutator"):
            mutator = field.getMutator(self.context)
            mapply(mutator, value)
        else:
            # Set the value on the field directly
            field.METHOD_NAME(self.context, value)
        updated_objects.add(self.context)
    # interim key found
    elif name in interim_keys:
        # Check the permission of the field
        interim_field = self.fields.get("InterimFields")
        if not self.is_field_writeable(interim_field):
            logger.error("Interim field '{}' not writeable!".format(name))
            return []
        self.context.setInterimValue(name, value)
    # recalculate dependent results for result and interim fields
    if name == "Result" or name in interim_keys:
        updated_objects.add(self.context)
        updated_objects.update(self.recalculate_results(self.context))
    # return a unified list of the updated objects
    return list(updated_objects)