5: def collect_targets(requested_target_key, need_requested_targets=false)
6: foreign_base_key = primary_key
7: return [] if foreign_base_key.nil?
8:
9: requested_targets = @owner[@options[requested_target_key], true]
10:
11: components = requested_targets.reject(&:nil?)
12: unless foreign_base_key == "dn"
13: components = components.collect do |value|
14: [foreign_base_key, value]
15: end
16: end
17:
18: if components.empty?
19: targets = []
20: elsif foreign_base_key == "dn"
21: targets = foreign_class.find(components, find_options)
22: else
23: options = find_options(:filter => [:or, *components])
24: targets = foreign_class.find(:all, options)
25: end
26:
27: if need_requested_targets
28: [targets, requested_targets]
29: else
30: targets
31: end
32: end