matcher

package
v1.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MatchMap = make(map[string]map[string]*FieldMatcher)

MatchMap key:类全名,value:key:属性名

Functions

func BuildConditionMatcher

func BuildConditionMatcher(objectTypeFullName string, fieldKind reflect.Kind, objectFieldName string, tagName string, subCondition string, errMsg string)

func BuildCustomizeMatcher

func BuildCustomizeMatcher(objectTypeFullName string, _ reflect.Kind, objectFieldName string, tagName string, subCondition string, errMsg string)

func BuildIsBlankMatcher

func BuildIsBlankMatcher(objectTypeFullName string, fieldKind reflect.Kind, objectFieldName string, tagName string, subCondition string, errMsg string)

func BuildIsUnBlankMatcher

func BuildIsUnBlankMatcher(objectTypeFullName string, fieldKind reflect.Kind, objectFieldName string, tagName string, subCondition string, errMsg string)

func BuildModelMatcher

func BuildModelMatcher(objectTypeFullName string, fieldKind reflect.Kind, objectFieldName string, tagName string, subCondition string, errMsg string)

func BuildRangeMatcher

func BuildRangeMatcher(objectTypeFullName string, fieldKind reflect.Kind, objectFieldName string, tagName string, subCondition string, errMsg string)

func BuildRegexMatcher

func BuildRegexMatcher(objectTypeFullName string, fieldKind reflect.Kind, objectFieldName string, tagName string, subCondition string, errMsg string)

func BuildValuesMatcher

func BuildValuesMatcher(objectTypeFullName string, fieldKind reflect.Kind, objectFieldName string, tagName string, subCondition string, errMsg string)

func Cast

func Cast(fieldKind reflect.Kind, valueStr string) (any, error)

func CastBool

func CastBool(valueStr string) (bool, error)

func CollectAccept

func CollectAccept(objectTypeFullName string, _ reflect.Kind, objectFieldName string, tagName string, subCondition string, errMsg string)

func IsCheckNumber

func IsCheckNumber(fieldKing reflect.Kind) bool

IsCheckNumber 是否数字类型

func IsCheckedKing

func IsCheckedKing(fieldType reflect.Type) bool

IsCheckedKing 是否待核查的类型

func RegisterCustomize

func RegisterCustomize(funName string, fun interface{})

Types

type BlackWhiteMatch

type BlackWhiteMatch struct {
	BlackMsg string
	WhiteMsg string
}

func (*BlackWhiteMatch) GetBlackMsg

func (blackWhiteMatch *BlackWhiteMatch) GetBlackMsg() string

func (*BlackWhiteMatch) GetWhitMsg

func (blackWhiteMatch *BlackWhiteMatch) GetWhitMsg() string

func (*BlackWhiteMatch) SetBlackMsg

func (blackWhiteMatch *BlackWhiteMatch) SetBlackMsg(format string, a ...any)

func (*BlackWhiteMatch) SetWhiteMsg

func (blackWhiteMatch *BlackWhiteMatch) SetWhiteMsg(format string, a ...any)

type ConditionMatch

type ConditionMatch struct {
	BlackWhiteMatch

	Program *vm.Program
	// contains filtered or unexported fields
}

func (*ConditionMatch) IsEmpty

func (conditionMatch *ConditionMatch) IsEmpty() bool

func (*ConditionMatch) Match

func (conditionMatch *ConditionMatch) Match(_ map[string]interface{}, object any, field reflect.StructField, fieldValue any) bool

type CustomizeMatch

type CustomizeMatch struct {
	BlackWhiteMatch
	// contains filtered or unexported fields
}

func (*CustomizeMatch) IsEmpty

func (customizeMatch *CustomizeMatch) IsEmpty() bool

func (*CustomizeMatch) Match

func (customizeMatch *CustomizeMatch) Match(parameterMap map[string]interface{}, object any, field reflect.StructField, fieldValue any) bool

type DynamicTimeNum

type DynamicTimeNum struct {
	// contains filtered or unexported fields
}

type FieldMatcher

type FieldMatcher struct {

	// 属性名
	FieldName string
	// 异常信息编译后的处理
	ErrMsgProgram *vm.Program
	// 是否接受:true,则表示白名单,false,则表示黑名单
	Accept bool
	// 是否禁用
	Disable bool
	// 匹配器列表
	Matchers []*Matcher
}

type IsBlankMatch

type IsBlankMatch struct {
	BlackWhiteMatch

	// 是否设置过isNil值
	HaveSet int8

	// 匹配空字符的值
	IsBlank bool
}

func (*IsBlankMatch) IsEmpty

func (isBlankMatch *IsBlankMatch) IsEmpty() bool

func (*IsBlankMatch) Match

func (isBlankMatch *IsBlankMatch) Match(parameterMap map[string]interface{}, _ any, field reflect.StructField, fieldValue any) bool

type IsUnBlankMatch

type IsUnBlankMatch struct {
	BlackWhiteMatch

	// 是否设置过isNil值
	HaveSet int8

	// 匹配非空的值
	IsUnBlank bool
}

func (*IsUnBlankMatch) IsEmpty

func (isUnBlankMatch *IsUnBlankMatch) IsEmpty() bool

func (*IsUnBlankMatch) Match

func (isUnBlankMatch *IsUnBlankMatch) Match(_ map[string]interface{}, _ any, field reflect.StructField, fieldValue any) bool

type MatchJudge

type MatchJudge func(any) bool

type Matcher

type Matcher interface {
	//Match(object any, field reflect.StructField, fieldValue any) bool
	Match(parameterMap map[string]interface{}, object interface{}, field reflect.StructField, fieldValue interface{}) bool
	IsEmpty() bool
	GetWhitMsg() string
	GetBlackMsg() string
}

type ModelMatch

type ModelMatch struct {
	BlackWhiteMatch
	// contains filtered or unexported fields
}

func (*ModelMatch) IsEmpty

func (modelMatch *ModelMatch) IsEmpty() bool

func (*ModelMatch) Match

func (modelMatch *ModelMatch) Match(_ map[string]interface{}, _ any, field reflect.StructField, fieldValue any) bool

type Predicate

type Predicate func(subCondition string) bool

type RangeEntity

type RangeEntity struct {
	// contains filtered or unexported fields
}

type RangeMatch

type RangeMatch struct {
	BlackWhiteMatch

	RangeExpress string
	Script       string
	Begin        any
	End          any
	BeginNow     bool
	EndNow       bool
	Program      *vm.Program
}

func (*RangeMatch) IsEmpty

func (rangeMatch *RangeMatch) IsEmpty() bool

func (*RangeMatch) Match

func (rangeMatch *RangeMatch) Match(_ map[string]interface{}, _ any, field reflect.StructField, fieldValue any) bool

type RegexMatch

type RegexMatch struct {
	BlackWhiteMatch

	Reg *regexp.Regexp
}

func (*RegexMatch) IsEmpty

func (regexMatch *RegexMatch) IsEmpty() bool

func (*RegexMatch) Match

func (regexMatch *RegexMatch) Match(_ map[string]interface{}, _ any, field reflect.StructField, fieldValue any) bool

type ValueMatch

type ValueMatch struct {
	BlackWhiteMatch
	Values []any
}

func (*ValueMatch) IsEmpty

func (valueMatch *ValueMatch) IsEmpty() bool

func (*ValueMatch) Match

func (valueMatch *ValueMatch) Match(_ map[string]interface{}, _ any, field reflect.StructField, fieldValue any) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL