<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def put(self, key, value):
 """ Puts a new value into map element specified by its key. The key can be defined using dot notation and allows to recursively access elements of elements. :param key: a key of the element to put. :param value: a new value for map element. """

        if key == None or key == '':
            return None
        elif key.find('.') > 0:
            RecursiveObjectWriter.set_property(self, key, value)
            return value
        else:
            self[key] = value
            return value