package Analizo::ModuleMetric;
sub new {
return bless { cache => {} }, __PACKAGE__;
}
sub value {
my ($self, $module) = @_;
if (!defined $self->{cache}->{$module}) {
$self->{cache}->{$module} = $self->calculate($module);
}
my $value = $self->{cache}->{$module};
return $value;
}
sub calculate {
die("Not implemented. Override in subclasses");
}
1;