package Data::MultiValued::TagContainerForRanges;
{
$Data::MultiValued::TagContainerForRanges::VERSION = '0.0.1_6';
}
{
$Data::MultiValued::TagContainerForRanges::DIST = 'Data-MultiValued';
}
use Moose;
use namespace::autoclean;
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 $_,'Data::MultiValued::RangeContainer'
for values %{$self->{_storage}};
bless $self->{_default_tag},'Data::MultiValued::RangeContainer';
return;
}
sub _as_hash {
my ($self) = @_;
my %st;
for my $k (keys %{$self->_storage}) {
my %v = %{$self->_storage->{$k}};
$st{$k}=\%v;
}
my %dt = %{$self->_default_tag};
return {
_storage => \%st,
_default_tag => \%dt,
};
}
__PACKAGE__->meta->make_immutable();
1;
__END__