File Coverage

blib/lib/DWH_File/Registry/URI.pm
Criterion Covered Total %
statement 38 39 97.4
branch 4 4 100.0
condition 1 3 33.3
subroutine 10 11 90.9
pod 0 6 0.0
total 53 63 84.1


line stmt bran cond sub pod time code
1             package DWH_File::Registry::URI;
2              
3 9     9   52 use warnings;
  9         19  
  9         451  
4 9     9   47 use strict;
  9         17  
  9         297  
5 9     9   43 use vars qw( @ISA $VERSION %registrands );
  9         16  
  9         510  
6 9     9   8658 use DWH_File::Registry;
  9         25  
  9         84  
7              
8             @ISA = qw( DWH_File::Registry );
9             $VERSION = 0.01;
10              
11 9     9   5526 BEGIN { %registrands = () }
12              
13             sub new {
14 13     13 0 41 my ( $this, $kernel, $property ) = @_;
15 13   33     105 my $class = ref $this || $this;
16 13         132 my $self = $class->SUPER::new( $kernel, $property );
17 13         165 $self->{ tags } = {};
18 13         60 $self->register( $kernel );
19 13         172351 return $self;
20             }
21              
22             sub retrieve {
23 19     19 0 74 my ( $self, $tag ) = @_;
24 19 100       74 if ( exists $self->{ $tag } ) { return $self->{ $tag } }
  17         112  
25             else {
26 2         31 my $uri = $self->fetch( $tag );
27 2         8 my $registrand = $registrands{ $uri };
28 2         9 $self->{ tags }{ $uri } = $tag;
29 2         5 $self->{ $tag } = $registrand;
30 2         10 return $registrand;
31             }
32             }
33              
34             sub register {
35 26     26 0 314 my ( $self, $registrand ) = @_;
36 26         168 $registrands{ $registrand->uri } = $registrand;
37             }
38              
39             sub tag {
40 21     21 0 41 my ( $self, $registrand ) = @_;
41 21         131 my $uri = $registrand->uri;
42 21 100       233741 if ( exists $self->{ tags }{ $uri } ) { return $self->{ tags }{ $uri } }
  19         354  
43             else {
44 2         106 my $tag = $self->get_key( $uri );
45 2         10 $self->{ tags }{ $uri } = $tag;
46 2         38 $self->{ $tag } = $registrand;
47 2         27 return $tag;
48             }
49             }
50              
51             sub release {
52 13     13 0 43 my ( $self, $registrand ) = @_;
53             #for my $registry ( @instances ) { $registry->sign_out( $registrand ) }
54             }
55              
56             sub sign_out {
57 0     0 0   my ( $self, $registrand ) = @_;
58             #delete $self->{ tags }{ $registrand->uri };
59             }
60              
61             1;
62              
63             __END__