'Creates a new message, assembled from JSON fragments.
Args:
header_json (JSON) :
metadata_json (JSON) :
content_json (JSON) :
Returns:
Message subclass
Raises:
MessageError'

@classmethod
def assemble(cls, header_json, metadata_json, content_json):

    try:
        header = json_decode(header_json)
    except ValueError:
        raise MessageError('header    could    not    be    decoded')
    try:
        metadata = json_decode(metadata_json)
    except ValueError:
        raise MessageError('metadata    could    not    be    decoded')
    try:
        content = json_decode(content_json)
    except ValueError:
        raise MessageError('content    could    not    be    decoded')
    msg = cls(header, metadata, content)
    msg._header_json = header_json
    msg._metadata_json = metadata_json
    msg._content_json = content_json
    return msg
