# File lib/puppet/property.rb, line 463
463:         def retrieve
464:             # XXX This is a problem -- whether the object exists or not often
465:             # depends on the results of other properties, yet we're the first property
466:             # to get checked, which means that those other properties do not have
467:             # @is values set.  This seems to be the source of quite a few bugs,
468:             # although they're mostly logging bugs, not functional ones.
469:             if prov = @resource.provider and prov.respond_to?(:exists?)
470:                 result = prov.exists?
471:             elsif @resource.respond_to?(:exists?)
472:                 result = @resource.exists?
473:             else
474:                 raise Puppet::DevError, "No ability to determine if %s exists" %
475:                     @resource.class.name
476:             end
477:             if result
478:                 return :present
479:             else
480:                 return :absent
481:             end
482:         end