def objects_for_source_gid( src_gid, name, editing_context )
objects = []
if gids = @database.snapshot_for_source(src_gid, name) then
gids.each do |gid|
if object = editing_context.object(gid) then
objects << object
end
end
else
entity = @application.entity src_gid.entity_name
rel = entity.relationship name
snapshot = @database.snapshot src_gid
unless snapshot then
raise "Can't find a snapshot for global ID: #{src_gid}"
end
values = {}
rel.joins.each do |join|
values[join.destination.name] = snapshot[join.source.name]
end
qualifier = Qualifier.new_to_match_all_values values
fetchspec = FetchSpec.new(rel.destination, qualifier)
objects = fetch(fetchspec, editing_context)
end
objects
end