summaryrefslogtreecommitdiff
path: root/Data-TagsAndRanges/lib/Data/TagsAndRanges/TagContainer.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Data-TagsAndRanges/lib/Data/TagsAndRanges/TagContainer.pm')
-rw-r--r--Data-TagsAndRanges/lib/Data/TagsAndRanges/TagContainer.pm29
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;