/*
    Add all workflow output fields for an operation to the json document. This happens both
    for internal connections and actual output nodes.

 */
QJsonArray WorkflowJSONConnector::createJSONOperationOutputList(const SPWorkFlowNode& node) {
    QJsonArray outputs;

    IOperationMetaData op = node->operation();
    if (op.isValid()) {

        int index = 0;
        std::vector<SPOperationParameter> params = op->getOutputParameters();
        foreach (SPOperationParameter opParam, params) {
            QJsonObject output;
            QString baseName("");
            output["local"] = baseName;
            output["url"] = baseName;
            output["value"] = baseName;
            output["name"] = opParam->name();
            output["id"] = index;
            output["optional"] = opParam->isOptional();
            output["description"] = opParam->description();

            bool isNum = hasType(opParam->type(), itNUMBER);
            bool isMap = hasType(opParam->type(), itRASTER );    // or should this be itCOVERAGE?
            if (isNum || isMap) output["show"] = true;
            if (isNum) output["type"] = QString("number");
            if (isMap) output["type"] = QString("map");

            index++;

            outputs.append(output);
        }