# module ActiveLdap::Association::HasManyUtils

### Private Instance Methods

collect_targets(requested_target_key, need_requested_targets=false) click to toggle source

    # File lib/active_ldap/association/has_many_utils.rb, line 5
    def collect_targets(requested_target_key, need_requested_targets=false)
      _foreign_key = foreign_key
      return [] if _foreign_key.nil?

      requested_targets = @owner[requested_target_key, true]
      requested_targets = requested_targets.reject(&:nil?)
      if requested_targets.empty?
        targets = []
      elsif _foreign_key == "dn"
        requested_targets = requested_targets.collect do |target|
          if target.is_a?(DN)
            target
          else
            DN.parse(target)
          end
        end
        targets = []
        requested_targets.each do |target|
          begin
            targets << foreign_class.find(target, find_options)
          rescue EntryNotFound
          end
        end
      else
        components = requested_targets.collect do |value|
          [_foreign_key, value]
        end
        options = find_options(:filter => [:or, *components])
        targets = foreign_class.find(:all, options)
      end

      if need_requested_targets
        [targets, requested_targets]
      else
        targets
      end
    end