def get_property_by_name(self, name):
if "<STR_LIT:.>" not in name and name in self.properties:<EOL><INDENT>return self.properties[name]<EOL><DEDENT>tokens = name.split("<STR_LIT:.>")<EOL>object = self<EOL>for token in tokens:<EOL><INDENT>if isinstance(object, (DocumentObjectField, ObjectField, NestedObject)):<EOL><INDENT>if token in object.properties:<EOL><INDENT>object = object.properties[token]<EOL>continue<EOL><DEDENT><DEDENT>elif isinstance(object, MultiField):<EOL><INDENT>if token in object.fields:<EOL><INDENT>object = object.fields[token]<EOL>continue<EOL><DEDENT><DEDENT>raise MappedFieldNotFoundException(token)<EOL><DEDENT>if isinstance(object, (AbstractField, MultiField)):<EOL><INDENT>return object<EOL><DEDENT>raise MappedFieldNotFoundException(object)<EOL>
Returns a mapped object.

:param name the name of the property
:returns the mapped object or exception NotFoundMapping