mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-29 13:21:26 +08:00
41 lines
723 B
Go
41 lines
723 B
Go
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
|
|
}
|