/usr/share/perl5/graphincludes/graph/grouped.pm is in libdeps-perl 0.13-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | # This file is part of the DEPS/graph-includes package
#
# (c) 2006 Yann Dirson <ydirson@altern.org>
# Distributed under version 2 of the GNU GPL.
package graphincludes::graph::grouped;
use strict;
use warnings;
use base qw(graphincludes::graph);
use Set::Object qw();
use Hash::Util qw(lock_keys unlock_keys);
use Carp qw(croak);
sub new {
my $class = shift;
my $self = $class->SUPER::new(@_);
unlock_keys (%$self);
$self->{_REVGROUP} = undef;
bless ($self, $class);
lock_keys (%$self);
return $self;
}
sub register_group_member {
my $self = shift;
my ($group, $member) = @_;
if (defined $self->{_REVGROUP}{$member}) {
# already registered: sanity check
croak "Node '$member->{LABEL}' already member of group '$self->{_REVGROUP}{$member}{LABEL}'"
if $self->{_REVGROUP}{$member} ne $group;
} else {
# do register
$self->{_REVGROUP}{$member} = $group;
}
}
sub who_contains {
my $self = shift;
my ($member) = @_;
$self->{_REVGROUP}{$member};
}
sub register_intragroup_edge {
my $self = shift;
my ($group, $edge) = @_;
$group->{intraedges} = new Set::Object
unless defined $group->{intraedges};
$group->{intraedges}->insert($edge);
}
1;
|