Provided by: libur-perl_0.470+ds-2_all bug

NAME

       UR::Object::Index - Indexing system for retrieving objects by non-id properties

DESCRIPTION

       This class implements an indexing system for objects to retrieve them quickly by
       properties other than their ID properties.  Their existence and use is managed by the
       Context as needed, and end-users should never need to interact with UR::Object::Index
       instances.

       Internally, they are a container for objects of the same class and a set of properties
       used to look them up.  Each time a get() is performed on a new set of non-id properties, a
       new Index is created to handle the request for objects which may already exist in the
       object cache,

       The data_tree inside the Index is a multi-level hash.  The levels are in the same order as
       the properties in the get request.  At each level, the hash keys are the values that
       target property has.  For that level and key, all the objects inside have the same value
       for that property.  A get() by three non-id properties will have a 3-level hash.