'Sets the Options given on the OptionList to self. The options are the
result of a user entering some data on a window that was constructed
using the XML Options that was retrieved from the plugin using
get_options()
This method MUST be implemented on every plugin.
:return: No value is returned.'

def set_options(self, option_list):

    self._user_option_fix_content_len = option_list['fix_content_len'].get_value()
    self._expressions = ','.join(option_list['expressions'].get_value())
    self._expressions = re.findall('([qs])([bh])/(.*?)/(.*?)/;?', self._expressions)
    if ((len(self._expressions) == 0) and (len(option_list['expressions'].get_value()) != 0)):
        msg = 'The    user    specified    expression    is    invalid.'
        raise BaseFrameworkException(msg)
    for exp in self._expressions:
        (req_res, body_header, regex_str, target_str) = exp
        if (req_res not in ('q', 's')):
            msg = 'The    first    letter    of    the    sed    expression    should    be    "q"    for    indicating    request    or    "s"    for    response,    got    "%s"    instead.'
            raise BaseFrameworkException((msg % req_res))
        if (body_header not in ('b', 'h')):
            msg = 'The    second    letter    of    the    expression    should    be    "b"    for    body    or    "h"    for    header,    got    "%s"    instead.'
            raise BaseFrameworkException((msg % body_header))
        try:
            regex = re.compile(regex_str)
        except re.error as re_err:
            msg = 'Regular    expression    compilation    error    at    "%s",    the    original    exception    was    "%s".'
            raise BaseFrameworkException((msg % (regex_str, re_err)))
        self._manglers[req_res][body_header].add((regex, target_str))
