{
$MooseX::Attribute::Deflator::Registry::VERSION
=
'2.1.10'
;
}
has
deflators
=> (
traits
=> [
'Hash'
],
is
=>
'rw'
,
isa
=>
'HashRef[CodeRef]'
,
default
=>
sub
{ {} },
handles
=> {
has_deflator
=>
'get'
,
get_deflator
=>
'get'
,
set_deflator
=>
'set'
,
_add_deflator
=>
'set'
,
}
);
has
inlined_deflators
=> (
traits
=> [
'Hash'
],
is
=>
'rw'
,
isa
=>
'HashRef[CodeRef]'
,
default
=>
sub
{ {} },
handles
=> {
has_inlined_deflator
=>
'get'
,
get_inlined_deflator
=>
'get'
,
set_inlined_deflator
=>
'set'
,
_add_inlined_deflator
=>
'set'
,
}
);
has
inflators
=> (
traits
=> [
'Hash'
],
is
=>
'rw'
,
isa
=>
'HashRef[CodeRef]'
,
default
=>
sub
{ {} },
handles
=> {
has_inflator
=>
'get'
,
get_inflator
=>
'get'
,
set_inflator
=>
'set'
,
_add_inflator
=>
'set'
,
}
);
has
inlined_inflators
=> (
traits
=> [
'Hash'
],
is
=>
'rw'
,
isa
=>
'HashRef[CodeRef]'
,
default
=>
sub
{ {} },
handles
=> {
has_inlined_inflator
=>
'get'
,
get_inlined_inflator
=>
'get'
,
set_inlined_inflator
=>
'set'
,
_add_inlined_inflator
=>
'set'
,
}
);
sub
add_deflator {
my
(
$self
,
$name
,
$deflator
,
$inlined
) =
@_
;
$self
->_add_inlined_deflator(
$name
,
$inlined
)
if
(
$inlined
);
return
$self
->_add_deflator(
$name
,
$deflator
);
}
sub
find_deflator {
my
(
$self
,
$constraint
,
$norecurse
) =
@_
;
(
my
$name
=
$constraint
->name ) =~ s/\[.*\]/\[\]/;
my
$sub
=
$self
->get_deflator(
$name
);
return
(
$constraint
,
$sub
,
$self
->get_inlined_deflator(
$name
) )
if
(
$sub
);
return
undef
if
(
$norecurse
);
return
$self
->find_deflator(
$constraint
->parent )
if
(
$constraint
->has_parent );
}
sub
add_inflator {
my
(
$self
,
$name
,
$inflator
,
$inlined
) =
@_
;
$self
->_add_inlined_inflator(
$name
,
$inlined
)
if
(
$inlined
);
return
$self
->_add_inflator(
$name
,
$inflator
);
}
sub
find_inflator {
my
(
$self
,
$constraint
,
$norecurse
) =
@_
;
(
my
$name
=
$constraint
->name ) =~ s/\[.*\]/\[\]/;
my
$sub
=
$self
->get_inflator(
$name
);
return
(
$constraint
,
$sub
,
$self
->get_inlined_inflator(
$name
) )
if
(
$sub
);
return
undef
if
(
$norecurse
);
return
$self
->find_inflator(
$constraint
->parent )
if
(
$constraint
->has_parent );
}
1;