func()

in generate/generate.go [1290:1360]


func (s *service) generateConvertCode(cmd, name, typ string) {
	pn := s.pn

	switch typ {
	case "string", "UUID":
		pn("u.Set(\"%s\", v.(string))", name)
	case "int":
		pn("vv := strconv.Itoa(v.(int))")
		pn("u.Set(\"%s\", vv)", name)
	case "int64":
		pn("vv := strconv.FormatInt(v.(int64), 10)")
		pn("u.Set(\"%s\", vv)", name)
	case "bool":
		pn("vv := strconv.FormatBool(v.(bool))")
		pn("u.Set(\"%s\", vv)", name)
	case "[]string":
		pn("vv := strings.Join(v.([]string), \",\")")
		pn("u.Set(\"%s\", vv)", name)
	case "[]map[string]string":
		pn("l := v.([]map[string]string)")
		pn("for i, m := range l {")
		pn("  for key, val := range m {")
		pn("	  u.Set(fmt.Sprintf(\"%s[%%d].%%s\", i, key), val)", name)
		pn("  }")
		pn("}")
	case "map[string]string":
		pn("m := v.(map[string]string)")
		zeroIndex := detailsRequireZeroIndex[cmd]
		if zeroIndex {
			pn("for _, k := range getSortedKeysFromMap(m) {")
		} else {
			pn("for i, k := range getSortedKeysFromMap(m) {")
		}
		switch name {
		case "details":
			if detailsRequireKeyValue[cmd] {
				pn("	u.Set(fmt.Sprintf(\"%s[%%d].key\", i), k)", name)
				pn("	u.Set(fmt.Sprintf(\"%s[%%d].value\", i), m[k])", name)
			} else {
				if zeroIndex {
					pn("	u.Set(fmt.Sprintf(\"%s[0].%%s\", k), m[k])", name)
				} else {
					pn("	u.Set(fmt.Sprintf(\"%s[%%d].%%s\", i, k), m[k])", name)
				}
			}
		case "serviceproviderlist":
			pn("	u.Set(fmt.Sprintf(\"%s[%%d].service\", i), k)", name)
			pn("	u.Set(fmt.Sprintf(\"%s[%%d].provider\", i), m[k])", name)
		case "usersecuritygrouplist":
			pn("	u.Set(fmt.Sprintf(\"%s[%%d].account\", i), k)", name)
			pn("	u.Set(fmt.Sprintf(\"%s[%%d].group\", i), m[k])", name)
		case "tags":
			pn("	u.Set(fmt.Sprintf(\"%s[%%d].key\", i), k)", name)
			if cmd == "deleteTags" {
				pn("	if m[k] != \"\" {")
				pn("		u.Set(fmt.Sprintf(\"%s[%%d].value\", i), m[k])", name)
				pn("	}")
			} else {
				pn("	u.Set(fmt.Sprintf(\"%s[%%d].value\", i), m[k])", name)
			}
		default:
			if zeroIndex && !detailsRequireKeyValue[cmd] {
				pn("	u.Set(fmt.Sprintf(\"%s[0].%%s\", k), m[k])", name)
			} else {
				pn("	u.Set(fmt.Sprintf(\"%s[%%d].key\", i), k)", name)
				pn("	u.Set(fmt.Sprintf(\"%s[%%d].value\", i), m[k])", name)
			}
		}
		pn("}")
	}
}