Atoms
come in two basic types. Data atoms like NumAtoms and
NameAtoms
contain actual data. RefAtoms
contain a reference to an IndirectObject which contains another
Atom.
Quite often you will want to resolve any RefAtoms and just obtain
the final IndirectObject - you want a pointer to the final item of
data rather than a reference somewhere up the chain.
This function takes an Atom. If it is a RefAtom it finds the
IndirectObject to which it points. It keeps doing this until it
finds the final IndirectObject in the chain. It returns this
IndirectObject.
This method may return null if null is passed in, if the supplied
Atom is not a RefAtom, if a RefAtom cannot be resolved or if a
circular dependency is detected.
The reason this function is a member of the IndirectObject is
because resolving RefAtoms requires access to the ObjectSoup. The ObjectSoup
is taken from the IndirectObject.
|