code: function ElementConnectionData(elementConnectionDataDict){
    if(!(this instanceof ElementConnectionData))
      return new ElementConnectionData(elementConnectionDataDict)
  
    // Check elementConnectionDataDict has the required fields
    checkType('MediaElement', 'elementConnectionDataDict.source', elementConnectionDataDict.source, {required: true});
    checkType('MediaElement', 'elementConnectionDataDict.sink', elementConnectionDataDict.sink, {required: true});
    checkType('MediaType', 'elementConnectionDataDict.type', elementConnectionDataDict.type, {required: true});
    checkType('String', 'elementConnectionDataDict.sourceDescription', elementConnectionDataDict.sourceDescription, {required: true});
    checkType('String', 'elementConnectionDataDict.sinkDescription', elementConnectionDataDict.sinkDescription, {required: true});
  
    // Init parent class
    ElementConnectionData.super_.call(this, elementConnectionDataDict)
  
    // Set object properties
    Object.defineProperties(this, {
      source: {
        writable: true,
        enumerable: true,
        value: elementConnectionDataDict.source
      },
      sink: {
        writable: true,
        enumerable: true,
        value: elementConnectionDataDict.sink
      },
      type: {
        writable: true,
        enumerable: true,
        value: elementConnectionDataDict.type
      },
      sourceDescription: {
        writable: true,
        enumerable: true,
        value: elementConnectionDataDict.sourceDescription
      },
      sinkDescription: {
        writable: true,
        enumerable: true,
        value: elementConnectionDataDict.sinkDescription
      }
    })
  }
docs: @constructor module:core/complexTypes.ElementConnectionData
  
  @property {module:core/abstracts.MediaElement} source
  The source element in the connection
  @property {module:core/abstracts.MediaElement} sink
  The sink element in the connection
  @property {module:core/complexTypes.MediaType} type
  MediaType of the connection
  @property {external:String} sourceDescription
  Description of source media. Could be emty.
  @property {external:String} sinkDescription
  Description of sink media. Could be emty.