/** * Licensed Materials - Property of IBM IBM Cognos Products: Modeling UI (C) Copyright IBM Corp. 2016, 2019 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP * Schedule Contract with IBM Corp. */ define([ 'underscore', 'bi/commons/ui/core/Class', 'bi/moser/moser.min', '../InternalBridge' ], function(_, Class, moserjs, InternalBridge) { var DiagramLink = Class.extend({ identifier: null, source: null, target: null, sourceCardinality: null, targetCardinality: null, init: function(options) { DiagramLink.inherited('init', this); _.extend(this, options); this.linksRepresented = []; this.source = options.source; this.target = options.target; this.identifier = options.id; this.instanceType = options.instanceType; this.isValid = InternalBridge.validationUtils.isValid(InternalBridge.modelUtils.getRelationshipById(this.identifier, this.moserModule)); }, addARepresentedLink: function(data) { var mapping = InternalBridge.joinUtils.relationshipMappingMinMaxEx(data.linkObj); var linkCardinality = InternalBridge.joinUtils.getCardinalityMarkers(mapping); var linkObj = { identifier: data.linkObj.identifier, left: data.left, isLeftMincardZero: mapping.leftMincard === moserjs.default.CardinalityEnum.ZERO, link: data.link, right: data.right, isRightMincardZero: mapping.rightMincard === moserjs.default.CardinalityEnum.ZERO, sourceCardinality: linkCardinality[0], targetCardinality: linkCardinality[1], instanceType: data.linkObj.instanceType }; this.linksRepresented.push(linkObj); if (this.linksRepresented.length < 2) { this.sourceCardinality = linkCardinality[0]; this.targetCardinality = linkCardinality[1]; this.isLeftMincardZero = linkObj.isLeftMincardZero; this.isRightMincardZero = linkObj.isRightMincardZero; this.hideCardinality = false; } else { this.hideCardinality = true; } }, /** * Set the instanceType on the link. * * @param {String} * instanceType The instance type */ setInstanceType: function(instanceType) { this.instanceType = instanceType; } }); return DiagramLink; });