summaryrefslogtreecommitdiff
path: root/lib/Data/MultiValued/TagContainerForRanges.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Data/MultiValued/TagContainerForRanges.pm')
-rw-r--r--lib/Data/MultiValued/TagContainerForRanges.pm38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/Data/MultiValued/TagContainerForRanges.pm b/lib/Data/MultiValued/TagContainerForRanges.pm
new file mode 100644
index 0000000..d3cd4b9
--- /dev/null
+++ b/lib/Data/MultiValued/TagContainerForRanges.pm
@@ -0,0 +1,38 @@
+package Data::MultiValued::TagContainerForRanges;
+use Moose;
+use MooseX::Types::Moose qw(HashRef);
+use Moose::Util::TypeConstraints;
+use Data::MultiValued::RangeContainer;
+
+extends 'Data::MultiValued::TagContainer';
+
+has '+_storage' => (
+ isa => HashRef[class_type('Data::MultiValued::RangeContainer')],
+);
+
+has '+_default_tag' => (
+ isa => class_type('Data::MultiValued::RangeContainer'),
+);
+
+sub _create_new_inferior {
+ Data::MultiValued::RangeContainer->new();
+}
+
+sub _rebless_storage {
+ my ($self) = @_;
+ bless $self->{_storage},'Data::MultiValued::RangeContainer';
+ bless $self->{_default_tag},'Data::MultiValued::RangeContainer';
+ return;
+}
+
+sub _as_hash {
+ my ($self) = @_;
+ my %st = %{$self->_storage};
+ my %dt = %{$self->_default_tag};
+ return {
+ _storage => \%st,
+ _default_tag => \%dt,
+ };
+}
+
+1;