func()

in tpgtools/property.go [376:414]


func (p Property) flattenGetterWithParent(parent string) string {
	switch p.Type.String() {
	case SchemaTypeBool:
		fallthrough
	case SchemaTypeString:
		fallthrough
	case SchemaTypeInt:
		fallthrough
	case SchemaTypeFloat:
		fallthrough
	case SchemaTypeMap:
		if p.EnumBool {
			return fmt.Sprintf("tpgdclresource.FlattenEnumBool(%s.%s)", parent, p.PackageName)
		}
		return fmt.Sprintf("%s.%s", parent, p.PackageName)
	case SchemaTypeList, SchemaTypeSet:
		if p.Type.IsEnumArray() {
			return fmt.Sprintf("flatten%s%sArray(obj.%s)", p.resource.PathType(), p.PackagePath(), p.PackageName)
		}
		if p.Type.IsComplexMap() {
			return fmt.Sprintf("flatten%s%sMap(%s.%s)", p.resource.PathType(), p.PackagePath(), parent, p.PackageName)
		}
		if p.Type.typ.Items != nil && p.Type.typ.Items.Type == "integer" {
			return fmt.Sprintf("%s.%s", parent, p.PackageName)
		}
		if p.Type.typ.Items != nil && p.Type.typ.Items.Type == "string" {
			return fmt.Sprintf("%s.%s", parent, p.PackageName)
		}

		if p.Type.typ.Items != nil && len(p.Properties) > 0 {
			return fmt.Sprintf("flatten%s%sArray(%s.%s)", p.resource.PathType(), p.PackagePath(), parent, p.PackageName)
		}
	}
	if p.typ.Type == "object" {
		return fmt.Sprintf("flatten%s%s(%s.%s)", p.resource.PathType(), p.PackagePath(), parent, p.PackageName)
	}

	return "<unknown>"
}