axway-flow-graph
v3.3.5
Published
Graph structure for parsing and manipulating flows
Downloads
563
Readme
axway-flow-graph
Graph structure for parsing and manipulating flows
API Reference
axway-flow-graph~FlowValidator
Helper for validating flows. The validation checks for:
- no cyclical loops
- no undefined nodes in the routing
Kind: inner class of axway-flow-graph
Access: public
- ~FlowValidator
- new FlowValidator(flowGraph, credentialManager)
- ._strongconnect(vertex, stack, stronglyConnectedGroups)
- ._parseParamValue(param) ⇒ object
- ._addValidationError(validationData, error)
- ._addValidationWarning(validationData, warning)
- .checkForLoops(validationData) ⇒ boolean
- .checkForMissingRoutes(validationData) ⇒ boolean
- .checkForInvalidStart(validationData) ⇒ boolean
- .checkNodeOutputContext(validationData) ⇒ boolean
- .validate() ⇒ object
new FlowValidator(flowGraph, credentialManager)
Create a flow validator.
| Param | Type | Description | | --- | --- | --- | | flowGraph | object | a FlowGraph instance | | credentialManager | object | a credentialManager |
flowValidator._strongconnect(vertex, stack, stronglyConnectedGroups)
Using 'Tarjan's strongly connected components algorithm' to group strongly conencted nodes (loops).
Kind: instance method of FlowValidator
Access: protected
| Param | Type | Description | | --- | --- | --- | | vertex | object | The node/vertex to process. | | stack | array | The stack for vertex processing. | | stronglyConnectedGroups | array | The resulting list of strongly connected groups. |
flowValidator._parseParamValue(param) ⇒ object
Parses a parameter to a given type.
Kind: instance method of FlowValidator
Returns: object - containing error code in 'error' or parsed value in 'data'.
| Param | Type | Description | | --- | --- | --- | | param | object | flow node param object | | param.type | string | type of data to parse. Defaults to jsonpaht | | param.value | string | stringified data to be parsed |
flowValidator._addValidationError(validationData, error)
Adds a validation error to validationData
Kind: instance method of FlowValidator
| Param | Type | Description | | --- | --- | --- | | validationData | object | Object containing the validation warnings and errors | | error | object | Object containg an error |
flowValidator._addValidationWarning(validationData, warning)
Adds a validation warning to validationData
Kind: instance method of FlowValidator
| Param | Type | Description | | --- | --- | --- | | validationData | object | Object containing the validation warnings and errors | | warning | object | Object containg an warning |
flowValidator.checkForLoops(validationData) ⇒ boolean
Check for any closed loops in the graph. If there are loops loop chains are stored in validationData.errors.flowErrors.loops.
Possible errors and error codes: type: loop code: INVALID_NODE
Kind: instance method of FlowValidator
Returns: boolean - true if there are loops detected.
Access: public
| Param | Type | Description | | --- | --- | --- | | validationData | object | The object to add the validation errors to. |
flowValidator.checkForMissingRoutes(validationData) ⇒ boolean
Check nodes that have connections to non-existent targets. If there are undefined connections the details are are stored in validationData.errors.nodeErrors[nodeId].missingRoutes.
Possible errors and error codes: type: invalidNodeRoute code: INVALID_NODE
Kind: instance method of FlowValidator
Returns: boolean - true if there are missing routes detected.
Access: public
| Param | Type | Description | | --- | --- | --- | | validationData | object | The object to add the validation errors to. |
flowValidator.checkForInvalidStart(validationData) ⇒ boolean
Check start to see if it is an invalid type or pointing to a non-existant node. If start is invalid the details are are stored in validationData.errors.flowErrors.invalidStart.
Possible errors and error codes: type: invalidStart code: INVALID_NODE
Kind: instance method of FlowValidator
Returns: boolean - true if start is invalid.
Access: public
| Param | Type | Description | | --- | --- | --- | | validationData | object | The object to add the validation errors to. |
flowValidator.checkNodeOutputContext(validationData) ⇒ boolean
Check that the flow node output contexts are valid JSONPath selectors. If output contexts are invalid, the details are are stored in validationData.errors.nodeErrors[nodeId].invalidOuputContext.
Possible errors and error codes: type: invalidNodeOutput code: INVALID_JSONPATH
Kind: instance method of FlowValidator
Returns: boolean - true if there are invalid ouput contexts detected.
Access: public
| Param | Type | Description | | --- | --- | --- | | validationData | object | The object to add the validation errors to. |
flowValidator.validate() ⇒ object
Run checks on the flow and report validation errors as they are found.
Possible errors and error codes: type: loop code: INVALID_NODE
type: invalidNodeRoute code: INVALID_NODE
type: invalidStart code: INVALID_NODE
type: invalidNodeOutput code: INVALID_JSONPATH
Kind: instance method of FlowValidator
Returns: object - the validation report
Access: public
axway-flow-graph~FlowGraph
Kind: inner class of axway-flow-graph
- ~FlowGraph
- new FlowGraph()
- new FlowGraph(flowId, flowdef)
- ._ensureVertex(vertexId, info) ⇒ object
- ._deleteVertex(vertexId)
- ._getVertexChildren(vertexId, output, [idsOnly]) ⇒ Array.<string> | Array.<object>
- ._getVertexParents(vertexId, [idsOnly]) ⇒ Array.<string> | Array.<object>
- ._ensureEdge(output, fromId, toId) ⇒ object
- ._deleteEdge(fromId, output, toId)
- ._deleteEdges(fromId, toId)
- ._setValidation(validation)
- ._getOutputRoutes(nodeId) ⇒ object
- ._onChange()
- ._buildGraph()
- ._buildVertex(nodeId)
- .changeNodeName(nodeId, name)
- .changeMethod(nodeId, method, nodehandler)
- .insertNode(node, nodeId) ⇒ string
- .deleteNode(nodeId)
- .deleteRoute(output, fromId, toId)
- .deleteRoutes(fromId, toId)
- .setStart(nodeId)
- .unsetStart()
- .addParameter(nodeId, name, value, [type])
- .updateParameter(nodeId, name, prop, newValue)
- .removeParameter(nodeId, name) ⇒ object
- .addAuthorization(nodeId, name, value, [type])
- .updateAuthorization(nodeId, name, prop, newValue)
- .removeAuthorization(nodeId, name) ⇒ object
- ._addParameter(location, nodeId, name, value, [type])
- ._getParameter(location, nodeId, name) ⇒ object
- ._getParameterIndex(location, nodeId, name) ⇒ number
- ._updateParameter(location, nodeId, name, prop, newValue)
- ._removeParameterByName(location, nodeId, name) ⇒ object
- ._removeParameter(location, nodeId, index) ⇒ object
- .updateOutputContext(nodeId, name, value)
- .connectNode(sourceId, sourceOutput, targetId)
- .disconnectNode(sourceId, sourceOutput, targetId)
- .isEmpty() ⇒ boolean
- .getName() ⇒ string
- .setName(name)
- .getDescription() ⇒ string
- .setDescription(description)
- .getSymbol() ⇒ symbol
- .getDefinition() ⇒ object
- .getGraph() ⇒ object
- .getId() ⇒ string
- .getEdges() ⇒ Array.<object>
- .getEdge(output, fromId, toId) ⇒ object | null
- .getVertices([idsOnly]) ⇒ Array.<string> | Array.<object>
- .getNodes([idsOnly]) ⇒ Array.<string> | Array.<object>
- .getChildren(nodeId, output, [idsOnly]) ⇒ Array.<string> | Array.<object>
- .getParents(nodeId, [idsOnly]) ⇒ Array.<string> | Array.<object>
- .getTerminalNodes([idsOnly]) ⇒ Array.<string> | Array.<object>
- .getVertex(vertexId) ⇒ object
- .getNode(nodeId) ⇒ object | null
- .getNodeUnsafe(nodeId) ⇒ object
- .getValidation() ⇒ object
- .registerValidator(validator)
- .validate() ⇒ object
new FlowGraph()
FlowGraph object
new FlowGraph(flowId, flowdef)
Creates an instance of FlowGraph.
| Param | Type | Description | | --- | --- | --- | | flowId | string | The id of this flow. | | flowdef | object | The flow definition. |
flowGraph._ensureVertex(vertexId, info) ⇒ object
Ensures that a vertex will exist
Kind: instance method of FlowGraph
Returns: object - the vertex which matched or was created.
Access: protected
| Param | Type | Description | | --- | --- | --- | | vertexId | string | the ID of the vertex | | info | object | info to be set on the vertex. If vertex already exists, the info will be merged with the existing info. |
flowGraph._deleteVertex(vertexId)
Deletes a vertex from the graph
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description | | --- | --- | --- | | vertexId | string | the id of the vertex to delete |
flowGraph._getVertexChildren(vertexId, output, [idsOnly]) ⇒ Array.<string> | Array.<object>
Gets the children of a vertex in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> | Array.<object> - the child vertices of a vertex in the flow
| Param | Type | Description | | --- | --- | --- | | vertexId | string | the Id of the vertex to get children for. | | output | string | the vetex output to get the children for. | | [idsOnly] | bool | if the vertex idsOnly should be returned rather than the vertices |
flowGraph._getVertexParents(vertexId, [idsOnly]) ⇒ Array.<string> | Array.<object>
Gets the parents of a vertex in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> | Array.<object> - the parent nodes of a vertex in the flow
| Param | Type | Description | | --- | --- | --- | | vertexId | string | the Id of the vertex to get parents for. | | [idsOnly] | bool | if the vertex ids should be returned rather than the vertices |
flowGraph._ensureEdge(output, fromId, toId) ⇒ object
Ensures that an edge will exist between any two vertices. If any of the vertices do not exist, they will be created.
Kind: instance method of FlowGraph
Returns: object - the edge which matched or was created.
Access: protected
| Param | Type | Description | | --- | --- | --- | | output | string | the vertex output group the edge belongs to. | | fromId | string | the ID of the vertex where the edge starts | | toId | string | this ID of the vertex where the edge ends |
flowGraph._deleteEdge(fromId, output, toId)
Deletes an edge from one node to another. Removes the parent/child where necesarry from each vertex.
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description | | --- | --- | --- | | fromId | string | the vertex where the edge starts | | output | string | the vertex output group the edge belongs to. | | toId | string | the vertex where the edge ends |
flowGraph._deleteEdges(fromId, toId)
Deletes the edges from one node to another (across all outputs). Removes the parent/child where necesarry from each vertex.
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description | | --- | --- | --- | | fromId | string | the vertex where the edge starts | | toId | string | the vertex where the edge ends |
flowGraph._setValidation(validation)
Sets the validation state on the flow definition
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description | | --- | --- | --- | | validation | object | the validation state |
flowGraph._getOutputRoutes(nodeId) ⇒ object
Gets a list of all nodes which a node may route to grouped by output.
Kind: instance method of FlowGraph
Returns: object - A map of IDs for routes from the node specified grouped by output.
Access: protected
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the ID of a node to get routes for |
flowGraph._onChange()
Generates a unique symbol of the flow. Should be called whenever the flow changes.
Kind: instance method of FlowGraph
flowGraph._buildGraph()
Build a graph from the flow definition.
Kind: instance method of FlowGraph
Access: protected
flowGraph._buildVertex(nodeId)
Builds a vertex for a nodeId
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | The nodeId from which to build a vertex. |
flowGraph.changeNodeName(nodeId, name)
Sets the name of a node
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | Node ID | | name | string | New node name |
flowGraph.changeMethod(nodeId, method, nodehandler)
Modifies the method of a node to match a new spec
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | The id of the node to update. | | method | string | the method to use | | nodehandler | object | the node handler in use |
flowGraph.insertNode(node, nodeId) ⇒ string
Inserts a node into the flow graph.
Kind: instance method of FlowGraph
Returns: string - - the inserted nodeId
| Param | Type | Description | | --- | --- | --- | | node | object | The node to insert. | | nodeId | string | The id of the node to insert. If supplied, it must be unique. If not supplied, the node id will be generated. |
flowGraph.deleteNode(nodeId)
Delete a specific node from the flow.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the id of the node to delete |
flowGraph.deleteRoute(output, fromId, toId)
Delete the output route from one node to another.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | output | string | the output to delete the route for. | | fromId | string | the node id the routes are being deleted from. | | toId | string | the node id being removed from the routes. |
flowGraph.deleteRoutes(fromId, toId)
Delete all the output routes from one node to another.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | fromId | string | the node id the routes are being deleted from. | | toId | string | the node id being removed from the routes. |
flowGraph.setStart(nodeId)
Sets a node as the start node for the flow.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | The start node for the flow. |
flowGraph.unsetStart()
Clears the start node for the flow. This action will make the flow invalid.
Kind: instance method of FlowGraph
flowGraph.addParameter(nodeId, name, value, [type])
Adds a parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description | | --- | --- | --- | --- | | nodeId | string | | the node id | | name | string | | the name of the parameter | | value | string | | the value of the parameter | | [type] | string | "jsonpath" | the type of the parameter. |
flowGraph.updateParameter(nodeId, name, prop, newValue)
Updates a parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the node id | | name | string | the current name of the parameter | | prop | string | object | the field to update (name|type|value) if string, or the new value of the parameter | | newValue | string | the new value of the prop specified if it is a string |
flowGraph.removeParameter(nodeId, name) ⇒ object
Removes a parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the node id | | name | string | the name of the parameter |
flowGraph.addAuthorization(nodeId, name, value, [type])
Adds a authorization parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description | | --- | --- | --- | --- | | nodeId | string | | the node id | | name | string | | the name of the parameter | | value | string | | the value of the parameter | | [type] | string | "jsonpath" | the type of the parameter. |
flowGraph.updateAuthorization(nodeId, name, prop, newValue)
Updates a authorization parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the node id | | name | string | the current name of the parameter | | prop | string | object | the field to update (name|type|value) if string, or the new value of the parameter | | newValue | string | the new value of the prop specified if it is a string |
flowGraph.removeAuthorization(nodeId, name) ⇒ object
Removes a authorization parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the node id | | name | string | the name of the parameter |
flowGraph._addParameter(location, nodeId, name, value, [type])
Adds a parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description | | --- | --- | --- | --- | | location | string | | the parameter location, one of: parameters|authorizations | | nodeId | string | | the node id | | name | string | | the name of the parameter | | value | string | | the value of the parameter | | [type] | string | "jsonpath" | the type of the parameter. |
flowGraph._getParameter(location, nodeId, name) ⇒ object
Gets a parameter from the node by name
Kind: instance method of FlowGraph
Returns: object - the parameter
| Param | Type | Description | | --- | --- | --- | | location | string | the parameter location, one of: parameters|authorizations | | nodeId | string | the node id | | name | string | the name of the parameter |
flowGraph._getParameterIndex(location, nodeId, name) ⇒ number
Gets a parameter index from the node by name
Kind: instance method of FlowGraph
Returns: number - the parameter index
| Param | Type | Description | | --- | --- | --- | | location | string | the parameter location, one of: parameters|authorizations | | nodeId | string | the node id | | name | string | the name of the parameter |
flowGraph._updateParameter(location, nodeId, name, prop, newValue)
Updates a parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | location | string | the parameter location, one of: parameters|authorizations | | nodeId | string | the node id | | name | string | the current name of the parameter | | prop | string | object | the field to update (name|type|value) if string, or the new value of the parameter | | newValue | string | the new value of the prop specified if it is a string |
flowGraph._removeParameterByName(location, nodeId, name) ⇒ object
Removes a parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description | | --- | --- | --- | | location | string | the parameter location, one of: parameters|authorizations | | nodeId | string | the node id | | name | number | the name of the parameter |
flowGraph._removeParameter(location, nodeId, index) ⇒ object
Removes a parameter by index from a node in the flow. Does not trigger change.
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description | | --- | --- | --- | | location | string | the parameter location, one of: parameters|authorizations | | nodeId | string | the node id | | index | number | the index of the parameter |
flowGraph.updateOutputContext(nodeId, name, value)
Modifies the JSONPath context of an output
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the node id | | name | string | the name of the output | | value | string | the new JSONPath context |
flowGraph.connectNode(sourceId, sourceOutput, targetId)
Connects a node output to the specified target.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | sourceId | string | The source node for the connection. | | sourceOutput | string | The output in the source node for the connection. | | targetId | string | The id of the target node to connect to. |
flowGraph.disconnectNode(sourceId, sourceOutput, targetId)
Disconnects a target node from a parent node's source and output.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | sourceId | string | The source node for the connection. | | sourceOutput | string | The output in the source node for the connection. | | targetId | string | The id of the target node to connect to. |
flowGraph.isEmpty() ⇒ boolean
Indicates if the flow is empty, with no nodes.
Kind: instance method of FlowGraph
Returns: boolean - true
if the flow is empty.
flowGraph.getName() ⇒ string
Gets the name of the flow from flow info meta-data.
Kind: instance method of FlowGraph
Returns: string - The flow name.
flowGraph.setName(name)
Sets the name of the flow.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | name | string | The flow name. |
flowGraph.getDescription() ⇒ string
Gets the description of the flow from flow info meta-data.
Kind: instance method of FlowGraph
Returns: string - The flow description.
flowGraph.setDescription(description)
Sets the description of the flow.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | description | string | The flow description. |
flowGraph.getSymbol() ⇒ symbol
Get the unique symbol of the flow
Kind: instance method of FlowGraph
Returns: symbol - the flow symbol
flowGraph.getDefinition() ⇒ object
Gets the definition of the flow
Kind: instance method of FlowGraph
Returns: object - the flow definition
flowGraph.getGraph() ⇒ object
Gets the graph representation of the flow
Kind: instance method of FlowGraph
Returns: object - the flow graph representation
flowGraph.getId() ⇒ string
Gets the Id of the flow
Kind: instance method of FlowGraph
Returns: string - the flow id
flowGraph.getEdges() ⇒ Array.<object>
Gets the edges of the flow graph
Kind: instance method of FlowGraph
Returns: Array.<object> - the edges of the graph
flowGraph.getEdge(output, fromId, toId) ⇒ object | null
Get the edge between two nodes.
Kind: instance method of FlowGraph
Returns: object | null - the edge between two nodes. Null if no edge exists.
| Param | Type | Description | | --- | --- | --- | | output | string | the node output the edges belong to. | | fromId | string | the ID of the vertex where the edge starts | | toId | string | this ID of the vertex where the edge ends |
flowGraph.getVertices([idsOnly]) ⇒ Array.<string> | Array.<object>
Gets the vertices of the graph
Kind: instance method of FlowGraph
Returns: Array.<string> | Array.<object> - the vertices of the graph
| Param | Type | Description | | --- | --- | --- | | [idsOnly] | bool | if the vertex ids should be returned rather than the vertices |
flowGraph.getNodes([idsOnly]) ⇒ Array.<string> | Array.<object>
Gets the nodes of the flow
Kind: instance method of FlowGraph
Returns: Array.<string> | Array.<object> - the nodes of the flow
| Param | Type | Description | | --- | --- | --- | | [idsOnly] | bool | if the node ids should be returned rather than the nodes |
flowGraph.getChildren(nodeId, output, [idsOnly]) ⇒ Array.<string> | Array.<object>
Gets the children of a node in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> | Array.<object> - the child nodes of a node in the flow
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the Id of the node to get children for. | | output | string | the node output to get the children for. If omitted then all children are returned. | | [idsOnly] | bool | if the node idsOnly should be returned rather than the nodes |
flowGraph.getParents(nodeId, [idsOnly]) ⇒ Array.<string> | Array.<object>
Gets the parents of a node in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> | Array.<object> - the parent nodes of a node in the flow
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the Id of the node to get parents for. | | [idsOnly] | bool | if the node ids should be returned rather than the nodes |
flowGraph.getTerminalNodes([idsOnly]) ⇒ Array.<string> | Array.<object>
Gets the terminal nodes of the flow
Kind: instance method of FlowGraph
Returns: Array.<string> | Array.<object> - the terminal nodes of the flow
| Param | Type | Description | | --- | --- | --- | | [idsOnly] | bool | if the node ids should be returned rather than the nodes |
flowGraph.getVertex(vertexId) ⇒ object
Get the vertex which matches the ID specified
Kind: instance method of FlowGraph
Returns: object - a vertex in the graph
| Param | Type | Description | | --- | --- | --- | | vertexId | string | the ID of the vertex to return |
flowGraph.getNode(nodeId) ⇒ object | null
Get the node which matches the ID specified
Kind: instance method of FlowGraph
Returns: object | null - a node in the flow, or null
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the ID of the node to return |
flowGraph.getNodeUnsafe(nodeId) ⇒ object
Get the node which matches the ID specified and will throw an error if node was not found. Call this if you expect the node to exist
Kind: instance method of FlowGraph
Returns: object - a node in the flow
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the ID of the node to return |
flowGraph.getValidation() ⇒ object
Get the validation state of the flow
Kind: instance method of FlowGraph
Returns: object - the validation state of the flow
flowGraph.registerValidator(validator)
Registers a FlowValidator type class to the flow. When validation is run, this class will be used to validate the flow.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | validator | FlowValidator | A class which is a FlowValidator |
flowGraph.validate() ⇒ object
Validate the flow - check all the nodes, no cycles, syntax, etc. Update the definition to make validation report available to clients
Kind: instance method of FlowGraph
Returns: object - the validation state
axway-flow-graph~FlowGraph
Kind: inner class of axway-flow-graph
- ~FlowGraph
- new FlowGraph()
- new FlowGraph(flowId, flowdef)
- ._ensureVertex(vertexId, info) ⇒ object
- ._deleteVertex(vertexId)
- ._getVertexChildren(vertexId, output, [idsOnly]) ⇒ Array.<string> | Array.<object>
- ._getVertexParents(vertexId, [idsOnly]) ⇒ Array.<string> | Array.<object>
- ._ensureEdge(output, fromId, toId) ⇒ object
- ._deleteEdge(fromId, output, toId)
- ._deleteEdges(fromId, toId)
- ._setValidation(validation)
- ._getOutputRoutes(nodeId) ⇒ object
- ._onChange()
- ._buildGraph()
- ._buildVertex(nodeId)
- .changeNodeName(nodeId, name)
- .changeMethod(nodeId, method, nodehandler)
- .insertNode(node, nodeId) ⇒ string
- .deleteNode(nodeId)
- .deleteRoute(output, fromId, toId)
- .deleteRoutes(fromId, toId)
- .setStart(nodeId)
- .unsetStart()
- .addParameter(nodeId, name, value, [type])
- .updateParameter(nodeId, name, prop, newValue)
- .removeParameter(nodeId, name) ⇒ object
- .addAuthorization(nodeId, name, value, [type])
- .updateAuthorization(nodeId, name, prop, newValue)
- .removeAuthorization(nodeId, name) ⇒ object
- ._addParameter(location, nodeId, name, value, [type])
- ._getParameter(location, nodeId, name) ⇒ object
- ._getParameterIndex(location, nodeId, name) ⇒ number
- ._updateParameter(location, nodeId, name, prop, newValue)
- ._removeParameterByName(location, nodeId, name) ⇒ object
- ._removeParameter(location, nodeId, index) ⇒ object
- .updateOutputContext(nodeId, name, value)
- .connectNode(sourceId, sourceOutput, targetId)
- .disconnectNode(sourceId, sourceOutput, targetId)
- .isEmpty() ⇒ boolean
- .getName() ⇒ string
- .setName(name)
- .getDescription() ⇒ string
- .setDescription(description)
- .getSymbol() ⇒ symbol
- .getDefinition() ⇒ object
- .getGraph() ⇒ object
- .getId() ⇒ string
- .getEdges() ⇒ Array.<object>
- .getEdge(output, fromId, toId) ⇒ object | null
- .getVertices([idsOnly]) ⇒ Array.<string> | Array.<object>
- .getNodes([idsOnly]) ⇒ Array.<string> | Array.<object>
- .getChildren(nodeId, output, [idsOnly]) ⇒ Array.<string> | Array.<object>
- .getParents(nodeId, [idsOnly]) ⇒ Array.<string> | Array.<object>
- .getTerminalNodes([idsOnly]) ⇒ Array.<string> | Array.<object>
- .getVertex(vertexId) ⇒ object
- .getNode(nodeId) ⇒ object | null
- .getNodeUnsafe(nodeId) ⇒ object
- .getValidation() ⇒ object
- .registerValidator(validator)
- .validate() ⇒ object
new FlowGraph()
FlowGraph object
new FlowGraph(flowId, flowdef)
Creates an instance of FlowGraph.
| Param | Type | Description | | --- | --- | --- | | flowId | string | The id of this flow. | | flowdef | object | The flow definition. |
flowGraph._ensureVertex(vertexId, info) ⇒ object
Ensures that a vertex will exist
Kind: instance method of FlowGraph
Returns: object - the vertex which matched or was created.
Access: protected
| Param | Type | Description | | --- | --- | --- | | vertexId | string | the ID of the vertex | | info | object | info to be set on the vertex. If vertex already exists, the info will be merged with the existing info. |
flowGraph._deleteVertex(vertexId)
Deletes a vertex from the graph
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description | | --- | --- | --- | | vertexId | string | the id of the vertex to delete |
flowGraph._getVertexChildren(vertexId, output, [idsOnly]) ⇒ Array.<string> | Array.<object>
Gets the children of a vertex in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> | Array.<object> - the child vertices of a vertex in the flow
| Param | Type | Description | | --- | --- | --- | | vertexId | string | the Id of the vertex to get children for. | | output | string | the vetex output to get the children for. | | [idsOnly] | bool | if the vertex idsOnly should be returned rather than the vertices |
flowGraph._getVertexParents(vertexId, [idsOnly]) ⇒ Array.<string> | Array.<object>
Gets the parents of a vertex in the flow
Kind: instance method of FlowGraph
Returns: Array.<string> | Array.<object> - the parent nodes of a vertex in the flow
| Param | Type | Description | | --- | --- | --- | | vertexId | string | the Id of the vertex to get parents for. | | [idsOnly] | bool | if the vertex ids should be returned rather than the vertices |
flowGraph._ensureEdge(output, fromId, toId) ⇒ object
Ensures that an edge will exist between any two vertices. If any of the vertices do not exist, they will be created.
Kind: instance method of FlowGraph
Returns: object - the edge which matched or was created.
Access: protected
| Param | Type | Description | | --- | --- | --- | | output | string | the vertex output group the edge belongs to. | | fromId | string | the ID of the vertex where the edge starts | | toId | string | this ID of the vertex where the edge ends |
flowGraph._deleteEdge(fromId, output, toId)
Deletes an edge from one node to another. Removes the parent/child where necesarry from each vertex.
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description | | --- | --- | --- | | fromId | string | the vertex where the edge starts | | output | string | the vertex output group the edge belongs to. | | toId | string | the vertex where the edge ends |
flowGraph._deleteEdges(fromId, toId)
Deletes the edges from one node to another (across all outputs). Removes the parent/child where necesarry from each vertex.
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description | | --- | --- | --- | | fromId | string | the vertex where the edge starts | | toId | string | the vertex where the edge ends |
flowGraph._setValidation(validation)
Sets the validation state on the flow definition
Kind: instance method of FlowGraph
Access: protected
| Param | Type | Description | | --- | --- | --- | | validation | object | the validation state |
flowGraph._getOutputRoutes(nodeId) ⇒ object
Gets a list of all nodes which a node may route to grouped by output.
Kind: instance method of FlowGraph
Returns: object - A map of IDs for routes from the node specified grouped by output.
Access: protected
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the ID of a node to get routes for |
flowGraph._onChange()
Generates a unique symbol of the flow. Should be called whenever the flow changes.
Kind: instance method of FlowGraph
flowGraph._buildGraph()
Build a graph from the flow definition.
Kind: instance method of FlowGraph
Access: protected
flowGraph._buildVertex(nodeId)
Builds a vertex for a nodeId
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | The nodeId from which to build a vertex. |
flowGraph.changeNodeName(nodeId, name)
Sets the name of a node
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | Node ID | | name | string | New node name |
flowGraph.changeMethod(nodeId, method, nodehandler)
Modifies the method of a node to match a new spec
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | The id of the node to update. | | method | string | the method to use | | nodehandler | object | the node handler in use |
flowGraph.insertNode(node, nodeId) ⇒ string
Inserts a node into the flow graph.
Kind: instance method of FlowGraph
Returns: string - - the inserted nodeId
| Param | Type | Description | | --- | --- | --- | | node | object | The node to insert. | | nodeId | string | The id of the node to insert. If supplied, it must be unique. If not supplied, the node id will be generated. |
flowGraph.deleteNode(nodeId)
Delete a specific node from the flow.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the id of the node to delete |
flowGraph.deleteRoute(output, fromId, toId)
Delete the output route from one node to another.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | output | string | the output to delete the route for. | | fromId | string | the node id the routes are being deleted from. | | toId | string | the node id being removed from the routes. |
flowGraph.deleteRoutes(fromId, toId)
Delete all the output routes from one node to another.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | fromId | string | the node id the routes are being deleted from. | | toId | string | the node id being removed from the routes. |
flowGraph.setStart(nodeId)
Sets a node as the start node for the flow.
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | The start node for the flow. |
flowGraph.unsetStart()
Clears the start node for the flow. This action will make the flow invalid.
Kind: instance method of FlowGraph
flowGraph.addParameter(nodeId, name, value, [type])
Adds a parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description | | --- | --- | --- | --- | | nodeId | string | | the node id | | name | string | | the name of the parameter | | value | string | | the value of the parameter | | [type] | string | "jsonpath" | the type of the parameter. |
flowGraph.updateParameter(nodeId, name, prop, newValue)
Updates a parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the node id | | name | string | the current name of the parameter | | prop | string | object | the field to update (name|type|value) if string, or the new value of the parameter | | newValue | string | the new value of the prop specified if it is a string |
flowGraph.removeParameter(nodeId, name) ⇒ object
Removes a parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the node id | | name | string | the name of the parameter |
flowGraph.addAuthorization(nodeId, name, value, [type])
Adds a authorization parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description | | --- | --- | --- | --- | | nodeId | string | | the node id | | name | string | | the name of the parameter | | value | string | | the value of the parameter | | [type] | string | "jsonpath" | the type of the parameter. |
flowGraph.updateAuthorization(nodeId, name, prop, newValue)
Updates a authorization parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the node id | | name | string | the current name of the parameter | | prop | string | object | the field to update (name|type|value) if string, or the new value of the parameter | | newValue | string | the new value of the prop specified if it is a string |
flowGraph.removeAuthorization(nodeId, name) ⇒ object
Removes a authorization parameter by name from a node in the flow
Kind: instance method of FlowGraph
Returns: object - the parameter that was removed
| Param | Type | Description | | --- | --- | --- | | nodeId | string | the node id | | name | string | the name of the parameter |
flowGraph._addParameter(location, nodeId, name, value, [type])
Adds a parameter to a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Default | Description | | --- | --- | --- | --- | | location | string | | the parameter location, one of: parameters|authorizations | | nodeId | string | | the node id | | name | string | | the name of the parameter | | value | string | | the value of the parameter | | [type] | string | "jsonpath" | the type of the parameter. |
flowGraph._getParameter(location, nodeId, name) ⇒ object
Gets a parameter from the node by name
Kind: instance method of FlowGraph
Returns: object - the parameter
| Param | Type | Description | | --- | --- | --- | | location | string | the parameter location, one of: parameters|authorizations | | nodeId | string | the node id | | name | string | the name of the parameter |
flowGraph._getParameterIndex(location, nodeId, name) ⇒ number
Gets a parameter index from the node by name
Kind: instance method of FlowGraph
Returns: number - the parameter index
| Param | Type | Description | | --- | --- | --- | | location | string | the parameter location, one of: parameters|authorizations | | nodeId | string | the node id | | name | string | the name of the parameter |
flowGraph._updateParameter(location, nodeId, name, prop, newValue)
Updates a parameter from a node in the flow
Kind: instance method of FlowGraph
| Param | Type | Description | | --- | --- | --- | | location | string | the parameter location, one of: parameters|authorizations | | nodeId | string | the node id | | name | string | the current name of the parameter | | prop | string | object | the field t