diff options
Diffstat (limited to 'Data-TagsAndRanges/lib/Data/TagsAndRanges/TagContainer.pm')
-rw-r--r-- | Data-TagsAndRanges/lib/Data/TagsAndRanges/TagContainer.pm | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/Data-TagsAndRanges/lib/Data/TagsAndRanges/TagContainer.pm b/Data-TagsAndRanges/lib/Data/TagsAndRanges/TagContainer.pm index c820f9a..8ede59f 100644 --- a/Data-TagsAndRanges/lib/Data/TagsAndRanges/TagContainer.pm +++ b/Data-TagsAndRanges/lib/Data/TagsAndRanges/TagContainer.pm @@ -3,11 +3,10 @@ use Moose; use Moose::Util::TypeConstraints; use MooseX::Types::Moose qw(HashRef); use Data::TagsAndRanges::Exceptions; -use Data::TagsAndRanges::RangeContainer; has _storage => ( is => 'rw', - isa => HashRef[class_type('Data::TagsAndRanges::RangeContainer')], + isa => HashRef, init_arg => undef, default => sub { { } }, traits => ['Hash'], @@ -18,11 +17,10 @@ has _storage => ( }, ); -has _default_range => ( +has _default_tag => ( is => 'rw', - isa => class_type('Data::TagsAndRanges::RangeContainer'), init_arg => undef, - predicate => '_has_default_range', + predicate => '_has_default_tag', ); sub get { @@ -31,8 +29,8 @@ sub get { my $tag = $args->{tag}; if (!defined($tag)) { - if ($self->_has_default_range) { - return $self->_default_range; + if ($self->_has_default_tag) { + return $self->_default_tag; } Data::TagsAndRanges::Exceptions::TagNotFound->throw({ @@ -54,20 +52,25 @@ sub get_or_create { my $tag = $args->{tag}; if (!defined($tag)) { - if ($self->_has_default_range) { - return $self->_default_range; + if ($self->_has_default_tag) { + return $self->_default_tag; } else { - return $self->_default_range( - Data::TagsAndRanges::RangeContainer->new() - ); + return $self->_default_tag( + $self->_create_new_inferior + ); } } if (!$self->_has_tag($tag)) { - $self->_create_tag($tag,Data::TagsAndRanges::RangeContainer->new()); + $self->_create_tag($tag,$self->_create_new_inferior); } return $self->_get_tag($tag); } +sub _create_new_inferior { + my ($self) = @_; + return {}; +} + 1; |