-
Notifications
You must be signed in to change notification settings - Fork 1
/
field_builder.go
94 lines (69 loc) · 1.47 KB
/
field_builder.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package bconf
func FB() *FieldBuilder {
return NewFieldBuilder()
}
func NewFieldBuilder() *FieldBuilder {
return &FieldBuilder{field: &Field{}}
}
type FieldBuilder struct {
field *Field
}
func (b *FieldBuilder) Key(value string) *FieldBuilder {
b.init()
b.field.Key = value
return b
}
func (b *FieldBuilder) Default(value any) *FieldBuilder {
b.init()
b.field.Default = value
return b
}
func (b *FieldBuilder) Validator(value func(fieldValue any) error) *FieldBuilder {
b.init()
b.field.Validator = value
return b
}
func (b *FieldBuilder) DefaultGenerator(value func() (any, error)) *FieldBuilder {
b.init()
b.field.DefaultGenerator = value
return b
}
func (b *FieldBuilder) LoadConditions(value ...LoadCondition) *FieldBuilder {
b.init()
b.field.LoadConditions = value
return b
}
func (b *FieldBuilder) Type(value string) *FieldBuilder {
b.init()
b.field.Type = value
return b
}
func (b *FieldBuilder) Description(value string) *FieldBuilder {
b.init()
b.field.Description = value
return b
}
func (b *FieldBuilder) Enumeration(value ...any) *FieldBuilder {
b.init()
b.field.Enumeration = value
return b
}
func (b *FieldBuilder) Required() *FieldBuilder {
b.init()
b.field.Required = true
return b
}
func (b *FieldBuilder) Sensitive() *FieldBuilder {
b.init()
b.field.Sensitive = true
return b
}
func (b *FieldBuilder) Create() *Field {
b.init()
return b.field.Clone()
}
func (b *FieldBuilder) init() {
if b.field == nil {
b.field = &Field{}
}
}