@ISA
=
qw(Exporter)
;
@EXPORT
=
qw(_serialize_object)
;
$VERSION
=
'0.28'
;
sub
_serialize_object {
my
(
$stream
,
$envelope
,
$k_uri
,
$k
,
$v
) =
@_
;
my
$serializer
=
$envelope
->_get_type_mapper()->get_serializer(
$v
);
if
(
$serializer
->is_multiref()) {
$stream
->reference_accessor(
$k_uri
,
$k
,
$v
);
}
else
{
if
(
$serializer
->is_compound()) {
my
(
$typeuri
,
$typename
) =
$serializer
->get_typeinfo();
my
$is_package
=
$serializer
->is_package();
my
$child_stream
=
$stream
->compound_accessor(
undef
,
$k
,
$typeuri
,
$typename
,
$is_package
);
$serializer
->serialize(
$child_stream
,
$envelope
);
}
else
{
my
$content
=
$serializer
->serialize_as_string();
my
(
$typeuri
,
$typename
) =
$serializer
->get_typeinfo();
$stream
->simple_accessor(
$k_uri
,
$k
,
$typeuri
,
$typename
,
$content
);
}
}
}
1;