@@ -23,16 +23,36 @@ var (
2323 typeWrappers []TypeWrapper
2424)
2525
26- const (
27- packageVersion = "0.7.6"
28- mapperTagKey = "mapper"
29- jsonTagKey = "json"
30- IgnoreTagValue = "-"
31- nameConnector = "_"
32- formatTime = "15:04:05"
33- formatDate = "2006-01-02"
34- formatDateTime = "2006-01-02 15:04:05"
35- )
26+ type IMapper interface {
27+ Mapper (fromObj , toObj interface {}) error
28+ AutoMapper (fromObj , toObj interface {}) error
29+ MapperMap (fromMap map [string ]interface {}, toObj interface {}) error
30+ Register (obj interface {}) error
31+ GetTypeName (obj interface {}) string
32+ GetFieldName (objElem reflect.Value , index int ) string
33+ GetDefaultTimeWrapper () * TimeWrapper
34+ CheckExistsField (elem reflect.Value , fieldName string ) (realFieldName string , exists bool )
35+ MapToSlice (fromMap map [string ]interface {}, toSlice interface {}) error
36+ MapperMapSlice (fromMaps map [string ]map [string ]interface {}, toSlice interface {}) error
37+ MapperSlice (fromSlice , toSlice interface {}) error
38+ MapToJson (fromMap map [string ]interface {}) ([]byte , error )
39+ JsonToMap (body []byte , toMap * map [string ]interface {}) error
40+
41+ SetEnabledTypeChecking (isEnabled bool )
42+ IsEnabledTypeChecking () bool
43+
44+ SetEnabledMapperTag (isEnabled bool )
45+ IsEnabledMapperTag () bool
46+
47+ SetEnabledJsonTag (isEnabled bool )
48+ IsEnabledJsonTag () bool
49+
50+ SetEnabledAutoTypeConvert (isEnabled bool )
51+ IsEnabledAutoTypeConvert () bool
52+
53+ SetEnabledMapperStructField (isEnabled bool )
54+ IsEnabledMapperStructField () bool
55+ }
3656
3757func init () {
3858 ZeroValue = reflect.Value {}
@@ -136,7 +156,7 @@ func registerValue(objValue reflect.Value) error {
136156 }
137157 }
138158
139- //store register flag
159+ // store register flag
140160 registerMap .Store (typeName , nil )
141161 return nil
142162}
@@ -194,14 +214,14 @@ func MapperMap(fromMap map[string]interface{}, toObj interface{}) error {
194214 if toElem == ZeroValue {
195215 return errors .New ("to obj is not legal value" )
196216 }
197- //check register flag
198- //if not register, register it
217+ // check register flag
218+ // if not register, register it
199219 if ! checkIsRegister (toElem ) {
200220 Register (toObj )
201221 }
202222 for k , v := range fromMap {
203223 fieldName := k
204- //check field is exists
224+ // check field is exists
205225 realFieldName , exists := CheckExistsField (toElem , fieldName )
206226 if ! exists {
207227 continue
@@ -274,7 +294,7 @@ func MapperMapSlice(fromMaps map[string]map[string]interface{}, toSlice interfac
274294 toElemType := reflect .TypeOf (toSlice ).Elem ().Elem ()
275295 realType := toElemType .Kind ()
276296 direct := reflect .Indirect (toValue )
277- //3 elem parse: 1.[]*type 2.*type 3.type
297+ // 3 elem parse: 1.[]*type 2.*type 3.type
278298 if realType == reflect .Ptr {
279299 toElemType = toElemType .Elem ()
280300 }
@@ -307,7 +327,7 @@ func MapperSlice(fromSlice, toSlice interface{}) error {
307327 elemType := reflect .TypeOf (toSlice ).Elem ().Elem ()
308328 realType := elemType .Kind ()
309329 direct := reflect .Indirect (toValue )
310- //3 elem parse: 1.[]*type 2.*type 3.type
330+ // 3 elem parse: 1.[]*type 2.*type 3.type
311331 if realType == reflect .Ptr {
312332 elemType = elemType .Elem ()
313333 }
0 commit comments