code: function Message(messageId) {
  
      if (util.isNullOrUndefined(messageId) || "string" !== typeof(messageId)) {
          throw new IllegalArgumentException();
      }
  
      /**
       * This parameter uniquely identifies a message in an XMPP connection.
       */
      this.mMessageId = messageId;
      this.mCollapseKey = null;
      this.mDelayWhileIdle = null;
      this.mTimeToLive = null;
      this.mData = null;  //Object
      this.mDryRun = null;
      this.mDeliveryReceiptRequested = false;
      this.mPriority = null;
      this.mNotification = null;
      this.mContentAvailable = false;
      this.mMutableContent = false;
  
      this.mBuilded = false;
  }
docs: FCM message.
  
  <p>
  Instances of this class should be immutable. In order to accomplish, build method
  must be called lastly {@link #build}. Examples:
  
  <pre><code>
  var Message = require('node-xcs').Message;
  </pre></code>
  
  <strong>Simplest message:</strong>
  <pre><code>
  var message = new Message("<messageId>").build();
  </pre></code>
  
  <strong>Message with optional attributes:</strong>
  <pre><code>
  var message = new Message("<messageId>")
  .collapseKey(collapseKey)
  .timeToLive(3)
  .delayWhileIdle(true)
  .dryRun(true)
  .deliveryReceiptRequested(true)
  .build();
  </pre></code>
  
  <strong>Message with optional attributes and payload data:</strong>
  <pre><code>
  var message = new Message("<messageId>")
  .priority("normal")
  .collapseKey(collapseKey)
  .timeToLive(3)
  .delayWhileIdle(true)
  .dryRun(true)
  .deliveryReceiptRequested(true)
  .addData("key1", "value1")
  .addData("key2", "value2")
  .build();
  </pre></code>