/** * Copyright 2015 IBM Corp. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. **/ var when = require("when"); var clone = require("clone"); var typeRegistry = require("../registry"); var Log = require("../../log"); var redUtil = require("../../util"); var flowUtil = require("./util"); function Flow(global,flow) { if (typeof flow === 'undefined') { flow = global; } var activeNodes = {}; var subflowInstanceNodes = {}; var catchNodeMap = {}; var statusNodeMap = {}; this.start = function(diff) { var node; var id; catchNodeMap = {}; statusNodeMap = {}; for (id in flow.configs) { if (flow.configs.hasOwnProperty(id)) { node = flow.configs[id]; if (!activeNodes[id]) { activeNodes[id] = createNode(node.type,node); } } } if (diff) { for (var j=0;j