code: function StreamingQueryInfo(name, id, sourceStatuses, sinkStatus) {
  	var SourceStatus = require('../../sql/streaming/SourceStatus.js');
  	var SinkStatus = require('../../sql/streaming/SinkStatus.js');
  	if (typeof name == 'object') {
  		this._name = arguments[0].name;
  		this._id = arguments[0].id;
  		this._sourceStatuses = [];
  		arguments[0].sourceStatuses.forEach(function(sourceStatus){
  			this._sourceStatuses.push(new SourceStatus(sourceStatus.description, sourceStatus.offsetDesc));
  		}.bind(this));
  		this._sinkStatus = new SinkStatus(arguments[0].sinkStatus.description, arguments[0].sinkStatus.offsetDesc);
  	} else {
  	 this._name = name;
  	 this._id = id;
  	 this._sourceStatuses = sourceStatuses;
  	 this._sinkStatus = sinkStatus;
  	}
  
  }
docs: @classdesc
  :: Experimental ::
  A class used to report information about the progress of a {@link StreamingQuery}.
  
  @param name The {@link StreamingQuery} name. This name is unique across all active queries.
  @param id The {@link StreamingQuery} id. This id is unique across
  all queries that have been started in the current process.
  @param sourceStatuses The current statuses of the {@link StreamingQuery}'s sources.
  @param sinkStatus The current status of the {@link StreamingQuery}'s sink.
  @class
  @memberof module:eclairjs/sql/streaming