Description
The RecursiveObjectReader class allows you to examine the properties of an object (property instrospection) and to dynamically read them recursively using “dot” notation (e.g property.property.method).
Important points
- It is similar to ObjectReader but reads properties recursively through the entire object graph.
 - Nested property names are defined using dot notation as “object.subobject.property”.
 
Static methods
get_properties
Gets values of all properties in specified object and its subobjects and returns them as a map.
The object can be a user defined object, map or array. Returned properties correspondently are object properties, map key-pairs or array elements with their indexes.
staticget_properties(obj: Any): Any
- obj: Any - an object to get properties from.
 - returns: Any - a map, containing the names of the object’s properties and their values.
 
get_property
Recursively gets value of object or 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.
staticget_property(obj: Any, name: str): Any
- obj: Any - an object to read property from.
 - name: str - a name of the property to get.
 - returns: Any - the property value or None if property doesn’t exist or introspection failed.
 
get_property_names
Recursively gets names of all properties implemented in specified object and its subobjects.
The object can be a user defined object, map or array. Returned property name correspondently are object properties, map keys or array indexes.
staticget_property_names(obj: Any): List[str]
- obj: Any - an objec to introspect.
 - returns: List[str] - a list with property names.
 
has_property
statichas_property(obj: Any, name: str): bool
- obj: Any - an object to introspect.
 - name: str - a name of the property to check.
 - returns: bool - true if the object has the property and false if it doesn’t.