提交kit/flow

Signed-off-by: lixxxww <941403820@qq.com>
This commit is contained in:
lixxxww
2024-01-23 11:32:00 +00:00
committed by Gitee
parent 731f8224b0
commit a329e336e0
3 changed files with 115 additions and 0 deletions

40
kit/flow/flow.go Normal file
View File

@@ -0,0 +1,40 @@
package flow
type Flow struct {
Nodes []Node `json:"nodes"`
Edges []Edge `json:"edges"`
}
func (f *Flow) GetStartNode(ty string) *Node {
for _, node := range f.Nodes {
if node.IsStartNode(ty) {
return &node
}
}
return nil
}
func (f *Flow) GetTargetNodeId(sourceNodeId string) string {
for _, edge := range f.Edges {
return edge.getTargetNode(sourceNodeId)
}
return ""
}
func (f *Flow) GetTargetNode(sourceNodeId string) *Node {
for _, edge := range f.Edges {
if edge.SourceNodeId == sourceNodeId {
return f.GetNode(edge.TargetNodeId)
}
}
return nil
}
func (f *Flow) GetNode(nodeId string) *Node {
for _, node := range f.Nodes {
if node.Id == nodeId {
return &node
}
}
return nil
}