func mapCast(i interface{}) map[string]interface{} {
	if i == nil {
		return nil
	}
	return i.(map[string]interface{})
}
mapCast casts i to a map if it is non-nil, otherwise returns nil
package apply
type MapElement struct {
	FieldMetaImpl
	MapElementData
	Values map[string]Element
}
func (e MapElement) Merge(v Strategy) (Result, error) {
	return v.MergeMap(e)
}
func (e MapElement) GetValues() map[string]Element {
	return e.Values
}
var _ Element = &MapElement{}
type MapElementData struct {
	RawElementData
}
func (e MapElementData) GetRecordedMap() map[string]interface{} {
	return mapCast(e.recorded)
}
func (e MapElementData) GetLocalMap() map[string]interface{} {
	return mapCast(e.local)
}
func (e MapElementData) GetRemoteMap() map[string]interface{} {
	return mapCast(e.remote)
}