1 package OpenSRF::Transport::Jabber::JMessageWrapper;
2 use Jabber::NodeFactory;
3 use Net::Jabber qw(Client);
4 use Net::Jabber::Message;
5 use base qw/ Net::Jabber::Message OpenSRF /;
6 use OpenSRF::Utils::Logger qw(:level);
7 use strict; use warnings;
11 OpenSRF::Transport::Jabber::JMessageWrapper
13 Provides a means to extract information about a Jabber
14 message when all you have is the raw XML. The API
15 implemented here should be implemented by any Transport
16 helper/MessageWrapper class.
22 my $logger = "OpenSRF::Utils::Logger";
23 my $_node_factory = Jabber::NodeFactory->new( fromstr => 1 );
26 =head2 new( Net::Jabber::Message/$raw_xml )
28 Pass in the raw Jabber message as XML and create a new
34 my( $class, $xml ) = @_;
35 $class = ref( $class ) || $class;
37 return undef unless( $xml );
44 $logger->transport( "MWrapper got: " . $xml, INTERNAL );
45 my $node = $_node_factory->newNodeFromStr( $xml );
46 $self = $class->SUPER::new();
47 $self->SetFrom( $node->attr('from') );
48 $self->SetThread( $node->getTag('thread')->data );
49 $self->SetBody( $node->getTag('body')->data );
52 bless( $self, $class );
54 $logger->transport( "MessageWrapper $self after blessing", INTERNAL );
62 Returns the JID (user@host/resource) of the remote user
67 return $self->GetFrom();
72 Returns the Jabber thread associated with this message
77 return $self->GetThread();
82 Returns the message body of the Jabber message
87 return $self->GetBody();