-
-
Notifications
You must be signed in to change notification settings - Fork 19
/
edge_traversal.go
57 lines (48 loc) · 1.79 KB
/
edge_traversal.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package sarif
// EdgeTraversal ...
type EdgeTraversal struct {
EdgeID string `json:"edgeId"`
FinalState map[string]*MultiformatMessageString `json:"finalState,omitempty"`
Message *Message `json:"message,omitempty"`
StepOverEdgeCount *int `json:"stepOverEdgeCount,omitempty"`
PropertyBag
}
// NewEdgeTraversal creates a new EdgeTraversal and returns a pointer to it
func NewEdgeTraversal(edgeID string) *EdgeTraversal {
return &EdgeTraversal{
EdgeID: edgeID,
}
}
// WithDescription sets the Description
func (edgeTraversal *EdgeTraversal) WithDescription(message *Message) *EdgeTraversal {
edgeTraversal.Message = message
return edgeTraversal
}
// WithDescriptionText sets the DescriptionText
func (edgeTraversal *EdgeTraversal) WithDescriptionText(text string) *EdgeTraversal {
edgeTraversal.Message = &Message{
Text: &text,
}
return edgeTraversal
}
// WithDescriptionMarkdown sets the DescriptionMarkdown
func (edgeTraversal *EdgeTraversal) WithDescriptionMarkdown(markdown string) *EdgeTraversal {
edgeTraversal.Message = &Message{
Markdown: &markdown,
}
return edgeTraversal
}
// WithFinalState sets the FinalState
func (edgeTraversal *EdgeTraversal) WithFinalState(finalState map[string]*MultiformatMessageString) *EdgeTraversal {
edgeTraversal.FinalState = finalState
return edgeTraversal
}
// SetFinalState ...
func (edgeTraversal *EdgeTraversal) SetFinalState(key string, state *MultiformatMessageString) {
edgeTraversal.FinalState[key] = state
}
// WithStepOverEdgeCount sets the StepOverEdgeCount
func (edgeTraversal *EdgeTraversal) WithStepOverEdgeCount(stepOverEdgeCount int) *EdgeTraversal {
edgeTraversal.StepOverEdgeCount = &stepOverEdgeCount
return edgeTraversal
}