our
$VERSION
= v0.06;
my
%_properties
= (
data_uriid_attr_displayname
=> {
loader
=> \
&_load_data_uriid
},
data_uriid_attr_media_subtype
=> {
loader
=> \
&_load_data_uriid
,
rawtype
=>
'mediatype'
},
data_uriid_attr_thumbnail
=> {
loader
=> \
&_load_data_uriid
},
data_uriid_id
=> {
loader
=> \
&_load_data_uriid
},
data_uriid_ise
=> {
loader
=> \
&_load_data_uriid
,
rawtype
=>
'ise'
},
data_uriid_type
=> {
loader
=> \
&_load_data_uriid
,
rawtype
=>
'ise'
},
data_uriid_result
=> {
loader
=> \
&_load_data_uriid
,
rawtype
=>
'Data::URIID::Result'
},
);
sub
_new {
my
(
$pkg
,
%opts
) =
@_
;
my
$self
=
$pkg
->SUPER::_new(
%opts
,
properties
=> \
%_properties
);
return
$self
;
}
sub
_load_data_uriid {
my
(
$self
) =
@_
;
my
$result
=
$self
->{data_uriid_result} //
return
;
my
$pv
= (
$self
->{properties_values} //= {})->{current} //= {};
return
if
$self
->{_loaded_data_uriid};
$self
->{_loaded_data_uriid} = 1;
eval
{
$pv
->{data_uriid_ise} = {
raw
=>
$result
->ise}};
eval
{
$pv
->{data_uriid_id} = {
raw
=>
$result
->id}};
eval
{
$pv
->{data_uriid_type} = {
raw
=>
$result
->id_type(
as
=>
'ise'
)}};
$pv
->{data_uriid_result} = {
raw
=>
$result
};
foreach
my
$digest
(
$result
->available_keys(
'digest'
)) {
my
$value
=
$result
->digest(
$digest
,
as
=>
'hex'
,
default
=>
undef
) //
next
;
$self
->{digest}{current}{
$digest
} =
$value
;
}
foreach
my
$key
(
grep
{/^data_uriid_attr_/}
keys
%_properties
) {
my
$real_key
=
$key
=~ s/^data_uriid_attr_//r;
my
$value
=
$result
->attribute(
$real_key
,
as
=>
'string'
,
default
=>
undef
) //
next
;
$pv
->{
$key
} = {
raw
=>
$value
};
}
}
1;