+ } else {
+ Common::check_params(\%params, qw(links));
+
+ }
+
+ my @links;
+
+ if ($params{mode} && ($params{mode} eq 'ids')) {
+ my ($from_to, $to_from) = $params{from_ids} ? qw(from to) : qw(to from);
+ my %ids;
+
+ if ('ARRAY' eq ref $params{"${from_to}_ids"}) {
+ $ids{$from_to} = $params{"${from_to}_ids"};
+ } else {
+ $ids{$from_to} = [ grep { $_ } map { $_ * 1 } split m/\s+/, $params{"${from_to}_ids"} ];
+ }
+
+ if (my $num = scalar @{ $ids{$from_to} }) {
+ $ids{$to_from} = [ ($params{"${to_from}_id"}) x $num ];
+ @links = map { { 'from_table' => $params{from_table},
+ 'from_id' => $ids{from}->[$_],
+ 'to_table' => $params{to_table},
+ 'to_id' => $ids{to}->[$_], } } (0 .. $num - 1);
+ }
+
+ } else {
+ @links = @{ $params{links} };
+ }
+
+ if (!scalar @links) {