initial import
[Net-XRC.git] / lib / Net / XRC / Data / complex.pm
1 package Net::XRC::Data::complex;
2
3 use strict;
4 use vars qw(@ISA);
5 use Net::XRC::Data;
6
7 @ISA = qw(Net::XRC::Data);
8
9 sub encode {
10   my $self = shift;
11   my %hash = %$self;
12   my $typename = delete $hash{_type};
13   ":$typename(". join("\n", map {
14                                   "$_ ".
15                                   isa( $hash{$_}, 'Net::XRC::Data' )
16                                     ? $hash{$_}->encode
17                                     : Net::XRC::Data->new($hash{$_})->encode
18                                 }
19                                 keys %hash
20                      ).
21             ")";
22 }