buildPortValue()

in src/generator/WDL/entities/WorkflowGenerator.js [105:130]


  buildPortValue(value) {
    if (value.desc && value.desc.expression && !_.isUndefined(value.desc.expression)) {
      return `${value.desc.expression}`;
    } else if (value.expression && value.expression.type.toLowerCase() !== 'identifier'
      && value.expression.type.toLowerCase() !== 'memberaccess' && !_.isUndefined(value.expression.string)) {
      return `${value.expression.string}`;
    } else if (value.inputs && _.size(value.inputs) > 0) {
      if (_.size(value.inputs) > 1) {
        throw new Error('Multiple links into one input are prohibited');
      }

      const connection = value.inputs[0];
      if (connection.from instanceof Port) {
        const outStep = connection.from.step;
        const outStepName = outStep.name;
        const outVarName = connection.from.name;

        if (outStepName === this.wfName || (outStep.type && outStep.type.toLowerCase() !== constants.WORKFLOW)) {
          return outVarName;
        }
        return `${outStepName}.${outVarName}`;
      }
      return connection.from;
    }
    return '';
  }