func fieldAssignmentModelToType(model *RelationalModelDefinition, ut *design.MediaTypeDefinition, mtype, utype string) string { //utPackage := "app" var fieldAssignments []string // type.Field = model.Field for fname, field := range model.RelationalFields { if field.Datatype == "" { continue } var mpointer, upointer bool mpointer = field.Nullable obj := ut.ToObject() definition := ut.Definition() for key := range obj { gfield := obj[key] if field.Underscore() == key || field.DatabaseFieldName == key { // this is our field if gfield.Type.IsObject() || definition.IsPrimitivePointer(key) { upointer = true } else { // set it explicity because we're reusing the same bool upointer = false } var prefix string if upointer && !mpointer { // ufield = &mfield prefix = "&" } else if mpointer && !upointer { // ufield = *mfield (rare if never?) prefix = "*" } fa := fmt.Sprintf("\t%s.%s = %s%s.%s", utype, codegen.Goify(key, true), prefix, mtype, fname) fieldAssignments = append(fieldAssignments, fa) } } } return strings.Join(fieldAssignments, "\n") }