@@ -12,7 +12,7 @@ import (
12
12
type classicalStrategy struct {
13
13
rules []C.Rule
14
14
count int
15
- parse func ( tp , payload , target string , params [] string ) ( parsed C. Rule , parseErr error )
15
+ parse common. ParseRuleFunc
16
16
}
17
17
18
18
func (c * classicalStrategy ) Behavior () P.RuleBehavior {
@@ -39,25 +39,26 @@ func (c *classicalStrategy) Reset() {
39
39
}
40
40
41
41
func (c * classicalStrategy ) Insert (rule string ) {
42
- ruleType , rule , params := common .ParseRulePayload (rule )
43
- r , err := c .parse (ruleType , rule , "" , params )
42
+ r , err := c .payloadToRule (rule )
44
43
if err != nil {
45
- log .Warnln ("parse classical rule error: %s" , err .Error ())
44
+ log .Warnln ("parse classical rule [%s] error: %s" , rule , err .Error ())
46
45
} else {
47
46
c .rules = append (c .rules , r )
48
47
c .count ++
49
48
}
50
49
}
51
50
51
+ func (c * classicalStrategy ) payloadToRule (rule string ) (C.Rule , error ) {
52
+ tp , payload , target , params := common .ParseRulePayload (rule , false )
53
+ switch tp {
54
+ case "MATCH" , "RULE-SET" , "SUB-RULE" :
55
+ return nil , fmt .Errorf ("unsupported rule type on classical rule-set: %s" , tp )
56
+ }
57
+ return c .parse (tp , payload , target , params , nil )
58
+ }
59
+
52
60
func (c * classicalStrategy ) FinishInsert () {}
53
61
54
- func NewClassicalStrategy (parse func (tp , payload , target string , params []string , subRules map [string ][]C.Rule ) (parsed C.Rule , parseErr error )) * classicalStrategy {
55
- return & classicalStrategy {rules : []C.Rule {}, parse : func (tp , payload , target string , params []string ) (parsed C.Rule , parseErr error ) {
56
- switch tp {
57
- case "MATCH" , "RULE-SET" , "SUB-RULE" :
58
- return nil , fmt .Errorf ("unsupported rule type on classical rule-set: %s" , tp )
59
- default :
60
- return parse (tp , payload , target , params , nil )
61
- }
62
- }}
62
+ func NewClassicalStrategy (parse common.ParseRuleFunc ) * classicalStrategy {
63
+ return & classicalStrategy {rules : []C.Rule {}, parse : parse }
63
64
}
0 commit comments