docs: def get_property_by_name(self, name):
          """
          Returns a mapped object.
  
          :param name the name of the property
          :returns the mapped object or exception NotFoundMapping
  
          """
          if "." not in name and name in self.properties:
              return self.properties[name]
  
          tokens = name.split(".")
          object = self
          for token in tokens:
              if isinstance(object, (DocumentObjectField, ObjectField, NestedObject)):
                  if token in object.properties:
                      object = object.properties[token]
                      continue
              elif isinstance(object, MultiField):
                  if token in object.fields:
                      object = object.fields[token]
                      continue
              raise MappedFieldNotFoundException(token)
          if isinstance(object, (AbstractField, MultiField)):
              return object
          raise MappedFieldNotFoundException(object)