code: def set_property(obj, name, value):
          
          if obj == None or name == None:
              return
  
          names = name.split(".")
          if names == None or len(names) == 0:
              return
  
          RecursiveObjectWriter._perform_set_property(obj, names, 0, value)
docs: Recursively sets value of object and its subobjects property specified by its name.
  
          The object can be a user defined object, map or array.
          The property name correspondently must be object property, map key or array index.
  
          If the property does not exist or introspection fails
          this method doesn't do anything and doesn't any throw errors.
  
          :param obj: an object to write property to.
  
          :param name: a name of the property to set.
  
          :param value: a new value for the property to set.