<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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)