1package common 2 3import ( 4 "errors" 5 "strings" 6) 7 8var ( 9 // ErrIllegalArgument is returned when illegal argument 10 ErrIllegalArgument = errors.New("Illegal argument") 11) 12 13// LogicalValue represents a Logical Value. 14// @see <a href="http://cpe.mitre.org">cpe.mitre.org</a> for more information. 15// @author JKRAUNELIS 16// @email jkraunelis@mitre.org 17type LogicalValue struct { 18 Any bool 19 Na bool 20} 21 22// NewLogicalValue returns Logicalvalue 23func NewLogicalValue(t string) (lv LogicalValue, err error) { 24 t = strings.ToUpper(t) 25 if t == "ANY" { 26 lv.Any = true 27 } else if t == "NA" { 28 lv.Na = true 29 } else { 30 return LogicalValue{}, ErrIllegalArgument 31 } 32 return lv, nil 33} 34 35// IsANY returns whether any is true 36func (lv LogicalValue) IsANY() bool { 37 return lv.Any 38} 39 40// IsNA returns whether na is true 41func (lv LogicalValue) IsNA() bool { 42 return lv.Na 43} 44 45// String : String 46func (lv LogicalValue) String() string { 47 if lv.Any { 48 return "ANY" 49 } 50 return "NA" 51} 52