NAME

perfSONAR_PS::Datatypes::v2_0::nmwg::Message  - A base class, implements  'message'  element from the perfSONAR_PS RelaxNG schema
 

DESCRIPTION

Object representation of the message element.
Object fields are:
 Scalar:     type, 
 Scalar:     id, 
 Object reference:   parameters => type ARRAY,
 Object reference:   metadata => type ARRAY,
 Object reference:   data => type ARRAY,

The constructor accepts only single parameter, it could be a hashref to parameters hash  or DOM with  'message' element 
 
 

SYNOPSIS

             use perfSONAR_PS::Datatypes::v2_0::nmwg::Message;
         
         my $el =  perfSONAR_PS::Datatypes::v2_0::nmwg::Message->new($DOM_Obj);

METHODS

new( )

creates   object, accepts DOM with  element tree or hashref to the list of
keyd parameters
   type   => undef, 
   id   => undef, 
   parameters => ARRAY,
   metadata => ARRAY,
   data => ARRAY,

getDOM ($)

     accept parent DOM
     return message object DOM, generated from object contents 

addparameters()

if any of subelements can be an arrray then this method will provide
facility to add another element to the  array and will return ref to such array
or just set the element to a new one

removeParametersById()

remove specific element from the array of parameters elements by id ( if id is supported by this element )
accepts single param - id - which is id attribute of the element
if there is no array then it will return undef and warninig
if it removed some id then $id will be returned

getParametersByMetadataIdRef()

get specific object from the array of parameters elements by  MetadataIdRef( if  MetadataIdRef is supported by this element )
accepts single param -  MetadataIdRef
if there is no array then it will return just an object

getParametersById()

get specific element from the array of parameters elements by id ( if id is supported by this element )
accepts single param - id
if there is no array then it will return just an object

addmetadata()

if any of subelements can be an arrray then this method will provide
facility to add another element to the  array and will return ref to such array
or just set the element to a new one

removeMetadataById()

remove specific element from the array of metadata elements by id ( if id is supported by this element )
accepts single param - id - which is id attribute of the element
if there is no array then it will return undef and warninig
if it removed some id then $id will be returned

getMetadataByMetadataIdRef()

get specific object from the array of metadata elements by  MetadataIdRef( if  MetadataIdRef is supported by this element )
accepts single param -  MetadataIdRef
if there is no array then it will return just an object

getMetadataById()

get specific element from the array of metadata elements by id ( if id is supported by this element )
accepts single param - id
if there is no array then it will return just an object

adddata()

if any of subelements can be an arrray then this method will provide
facility to add another element to the  array and will return ref to such array
or just set the element to a new one

removeDataById()

remove specific element from the array of data elements by id ( if id is supported by this element )
accepts single param - id - which is id attribute of the element
if there is no array then it will return undef and warninig
if it removed some id then $id will be returned

getDataByMetadataIdRef()

get specific object from the array of data elements by  MetadataIdRef( if  MetadataIdRef is supported by this element )
accepts single param -  MetadataIdRef
if there is no array then it will return just an object

getDataById()

get specific element from the array of data elements by id ( if id is supported by this element )
accepts single param - id
if there is no array then it will return just an object

querySQL ()

  depending on config  it will return some hash ref  to the initialized fields
for example querySQL ()
accepts one optional prameter - query hashref
will return:
{ ip_name_src =>  'hepnrc1.hep.net' },}

merge

merge with another message ( append + overwrite if exists )
we can do it differently
method #1:
   convert to dom both objects and then get resulted object from combined dom 
method #2 default:
   through the introspection of the object

buildIdMap()

if any of subelements has id then get a map of it in form of
hashref to { element}{id} = index in array and store in the idmap field

buildrefIdMap ()

if any of subelements has  metadataIdRef  then get a map of it in form of
hashref to { element}{ metadataIdRef } = index in array and store in the idmap field

asString()

shortcut to get DOM and convert into the XML string
returns XML string  representation of the  message object

registerNamespaces ()

will parse all subelements and register all namepspaces within the message namespace

fromDOM ($)

accepts parent XML DOM   element   tree as parameter 
returns message  object

AUTHORS

Maxim Grigoriev (FNAL)  2007-2008, maxim@fnal.gov