github.com/cloudwan/edgelq-sdk@v1.15.4/limits/resources/v1alpha2/accepted_plan/accepted_plan.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/limits/proto/v1alpha2/accepted_plan.proto 3 // DO NOT EDIT!!! 4 5 package accepted_plan 6 7 import ( 8 "encoding/json" 9 "strings" 10 11 "google.golang.org/grpc/codes" 12 "google.golang.org/grpc/status" 13 "google.golang.org/protobuf/proto" 14 preflect "google.golang.org/protobuf/reflect/protoreflect" 15 googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 16 17 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 18 ) 19 20 // proto imports 21 import ( 22 iam_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization" 23 iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/project" 24 common "github.com/cloudwan/edgelq-sdk/limits/resources/v1alpha2/common" 25 plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1alpha2/plan" 26 meta_service "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/service" 27 meta "github.com/cloudwan/goten-sdk/types/meta" 28 ) 29 30 // ensure the imports are used 31 var ( 32 _ = new(json.Marshaler) 33 _ = strings.Builder{} 34 35 _ = codes.NotFound 36 _ = status.Status{} 37 _ = new(proto.Message) 38 _ = new(preflect.Message) 39 _ = googlefieldmaskpb.FieldMask{} 40 41 _ = new(gotenobject.FieldMask) 42 ) 43 44 // make sure we're using proto imports 45 var ( 46 _ = &iam_organization.Organization{} 47 _ = &iam_project.Project{} 48 _ = &common.Allowance{} 49 _ = &plan.Plan{} 50 _ = &meta_service.Service{} 51 _ = &meta.Meta{} 52 ) 53 54 type AcceptedPlan_FieldMask struct { 55 Paths []AcceptedPlan_FieldPath 56 } 57 58 func FullAcceptedPlan_FieldMask() *AcceptedPlan_FieldMask { 59 res := &AcceptedPlan_FieldMask{} 60 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorName}) 61 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorPlan}) 62 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorService}) 63 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorExtensions}) 64 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorRegionalDistributions}) 65 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorAssignee}) 66 res.Paths = append(res.Paths, &AcceptedPlan_FieldTerminalPath{selector: AcceptedPlan_FieldPathSelectorMetadata}) 67 return res 68 } 69 70 func (fieldMask *AcceptedPlan_FieldMask) String() string { 71 if fieldMask == nil { 72 return "<nil>" 73 } 74 pathsStr := make([]string, 0, len(fieldMask.Paths)) 75 for _, path := range fieldMask.Paths { 76 pathsStr = append(pathsStr, path.String()) 77 } 78 return strings.Join(pathsStr, ", ") 79 } 80 81 func (fieldMask *AcceptedPlan_FieldMask) IsFull() bool { 82 if fieldMask == nil { 83 return false 84 } 85 presentSelectors := make([]bool, 7) 86 for _, path := range fieldMask.Paths { 87 if asFinal, ok := path.(*AcceptedPlan_FieldTerminalPath); ok { 88 presentSelectors[int(asFinal.selector)] = true 89 } 90 } 91 for _, flag := range presentSelectors { 92 if !flag { 93 return false 94 } 95 } 96 return true 97 } 98 99 func (fieldMask *AcceptedPlan_FieldMask) ProtoReflect() preflect.Message { 100 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 101 return ParseAcceptedPlan_FieldPath(raw) 102 }) 103 } 104 105 func (fieldMask *AcceptedPlan_FieldMask) ProtoMessage() {} 106 107 func (fieldMask *AcceptedPlan_FieldMask) Reset() { 108 if fieldMask != nil { 109 fieldMask.Paths = nil 110 } 111 } 112 113 func (fieldMask *AcceptedPlan_FieldMask) Subtract(other *AcceptedPlan_FieldMask) *AcceptedPlan_FieldMask { 114 result := &AcceptedPlan_FieldMask{} 115 removedSelectors := make([]bool, 7) 116 otherSubMasks := map[AcceptedPlan_FieldPathSelector]gotenobject.FieldMask{ 117 AcceptedPlan_FieldPathSelectorExtensions: &common.Allowance_FieldMask{}, 118 AcceptedPlan_FieldPathSelectorRegionalDistributions: &common.RegionalDistribution_FieldMask{}, 119 AcceptedPlan_FieldPathSelectorAssignee: &AcceptedPlan_Assignee_FieldMask{}, 120 AcceptedPlan_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 121 } 122 mySubMasks := map[AcceptedPlan_FieldPathSelector]gotenobject.FieldMask{ 123 AcceptedPlan_FieldPathSelectorExtensions: &common.Allowance_FieldMask{}, 124 AcceptedPlan_FieldPathSelectorRegionalDistributions: &common.RegionalDistribution_FieldMask{}, 125 AcceptedPlan_FieldPathSelectorAssignee: &AcceptedPlan_Assignee_FieldMask{}, 126 AcceptedPlan_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 127 } 128 129 for _, path := range other.GetPaths() { 130 switch tp := path.(type) { 131 case *AcceptedPlan_FieldTerminalPath: 132 removedSelectors[int(tp.selector)] = true 133 case *AcceptedPlan_FieldSubPath: 134 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 135 } 136 } 137 for _, path := range fieldMask.GetPaths() { 138 if !removedSelectors[int(path.Selector())] { 139 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 140 if tp, ok := path.(*AcceptedPlan_FieldTerminalPath); ok { 141 switch tp.selector { 142 case AcceptedPlan_FieldPathSelectorExtensions: 143 mySubMasks[AcceptedPlan_FieldPathSelectorExtensions] = common.FullAllowance_FieldMask() 144 case AcceptedPlan_FieldPathSelectorRegionalDistributions: 145 mySubMasks[AcceptedPlan_FieldPathSelectorRegionalDistributions] = common.FullRegionalDistribution_FieldMask() 146 case AcceptedPlan_FieldPathSelectorAssignee: 147 mySubMasks[AcceptedPlan_FieldPathSelectorAssignee] = FullAcceptedPlan_Assignee_FieldMask() 148 case AcceptedPlan_FieldPathSelectorMetadata: 149 mySubMasks[AcceptedPlan_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 150 } 151 } else if tp, ok := path.(*AcceptedPlan_FieldSubPath); ok { 152 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 153 } 154 } else { 155 result.Paths = append(result.Paths, path) 156 } 157 } 158 } 159 for selector, mySubMask := range mySubMasks { 160 if mySubMask.PathsCount() > 0 { 161 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 162 result.Paths = append(result.Paths, &AcceptedPlan_FieldSubPath{selector: selector, subPath: allowedPath}) 163 } 164 } 165 } 166 167 if len(result.Paths) == 0 { 168 return nil 169 } 170 return result 171 } 172 173 func (fieldMask *AcceptedPlan_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 174 return fieldMask.Subtract(other.(*AcceptedPlan_FieldMask)) 175 } 176 177 // FilterInputFields generates copy of field paths with output_only field paths removed 178 func (fieldMask *AcceptedPlan_FieldMask) FilterInputFields() *AcceptedPlan_FieldMask { 179 result := &AcceptedPlan_FieldMask{} 180 for _, path := range fieldMask.Paths { 181 switch path.Selector() { 182 case AcceptedPlan_FieldPathSelectorService: 183 case AcceptedPlan_FieldPathSelectorMetadata: 184 if _, ok := path.(*AcceptedPlan_FieldTerminalPath); ok { 185 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 186 result.Paths = append(result.Paths, &AcceptedPlan_FieldSubPath{selector: path.Selector(), subPath: subpath}) 187 } 188 } else if sub, ok := path.(*AcceptedPlan_FieldSubPath); ok { 189 selectedMask := &meta.Meta_FieldMask{ 190 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 191 } 192 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 193 result.Paths = append(result.Paths, &AcceptedPlan_FieldSubPath{selector: AcceptedPlan_FieldPathSelectorMetadata, subPath: allowedPath}) 194 } 195 } 196 default: 197 result.Paths = append(result.Paths, path) 198 } 199 } 200 return result 201 } 202 203 // ToFieldMask is used for proto conversions 204 func (fieldMask *AcceptedPlan_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 205 protoFieldMask := &googlefieldmaskpb.FieldMask{} 206 for _, path := range fieldMask.Paths { 207 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 208 } 209 return protoFieldMask 210 } 211 212 func (fieldMask *AcceptedPlan_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 213 if fieldMask == nil { 214 return status.Error(codes.Internal, "target field mask is nil") 215 } 216 fieldMask.Paths = make([]AcceptedPlan_FieldPath, 0, len(protoFieldMask.Paths)) 217 for _, strPath := range protoFieldMask.Paths { 218 path, err := ParseAcceptedPlan_FieldPath(strPath) 219 if err != nil { 220 return err 221 } 222 fieldMask.Paths = append(fieldMask.Paths, path) 223 } 224 return nil 225 } 226 227 // implement methods required by customType 228 func (fieldMask AcceptedPlan_FieldMask) Marshal() ([]byte, error) { 229 protoFieldMask := fieldMask.ToProtoFieldMask() 230 return proto.Marshal(protoFieldMask) 231 } 232 233 func (fieldMask *AcceptedPlan_FieldMask) Unmarshal(data []byte) error { 234 protoFieldMask := &googlefieldmaskpb.FieldMask{} 235 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 236 return err 237 } 238 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 239 return err 240 } 241 return nil 242 } 243 244 func (fieldMask *AcceptedPlan_FieldMask) Size() int { 245 return proto.Size(fieldMask.ToProtoFieldMask()) 246 } 247 248 func (fieldMask AcceptedPlan_FieldMask) MarshalJSON() ([]byte, error) { 249 return json.Marshal(fieldMask.ToProtoFieldMask()) 250 } 251 252 func (fieldMask *AcceptedPlan_FieldMask) UnmarshalJSON(data []byte) error { 253 protoFieldMask := &googlefieldmaskpb.FieldMask{} 254 if err := json.Unmarshal(data, protoFieldMask); err != nil { 255 return err 256 } 257 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 258 return err 259 } 260 return nil 261 } 262 263 func (fieldMask *AcceptedPlan_FieldMask) AppendPath(path AcceptedPlan_FieldPath) { 264 fieldMask.Paths = append(fieldMask.Paths, path) 265 } 266 267 func (fieldMask *AcceptedPlan_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 268 fieldMask.Paths = append(fieldMask.Paths, path.(AcceptedPlan_FieldPath)) 269 } 270 271 func (fieldMask *AcceptedPlan_FieldMask) GetPaths() []AcceptedPlan_FieldPath { 272 if fieldMask == nil { 273 return nil 274 } 275 return fieldMask.Paths 276 } 277 278 func (fieldMask *AcceptedPlan_FieldMask) GetRawPaths() []gotenobject.FieldPath { 279 if fieldMask == nil { 280 return nil 281 } 282 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 283 for _, path := range fieldMask.Paths { 284 rawPaths = append(rawPaths, path) 285 } 286 return rawPaths 287 } 288 289 func (fieldMask *AcceptedPlan_FieldMask) SetFromCliFlag(raw string) error { 290 path, err := ParseAcceptedPlan_FieldPath(raw) 291 if err != nil { 292 return err 293 } 294 fieldMask.Paths = append(fieldMask.Paths, path) 295 return nil 296 } 297 298 func (fieldMask *AcceptedPlan_FieldMask) Set(target, source *AcceptedPlan) { 299 for _, path := range fieldMask.Paths { 300 val, _ := path.GetSingle(source) 301 // if val is nil, then field does not exist in source, skip 302 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 303 if val != nil { 304 path.WithIValue(val).SetTo(&target) 305 } 306 } 307 } 308 309 func (fieldMask *AcceptedPlan_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 310 fieldMask.Set(target.(*AcceptedPlan), source.(*AcceptedPlan)) 311 } 312 313 func (fieldMask *AcceptedPlan_FieldMask) Project(source *AcceptedPlan) *AcceptedPlan { 314 if source == nil { 315 return nil 316 } 317 if fieldMask == nil { 318 return source 319 } 320 result := &AcceptedPlan{} 321 extensionsMask := &common.Allowance_FieldMask{} 322 wholeExtensionsAccepted := false 323 regionalDistributionsMask := &common.RegionalDistribution_FieldMask{} 324 wholeRegionalDistributionsAccepted := false 325 assigneeMask := &AcceptedPlan_Assignee_FieldMask{} 326 wholeAssigneeAccepted := false 327 metadataMask := &meta.Meta_FieldMask{} 328 wholeMetadataAccepted := false 329 330 for _, p := range fieldMask.Paths { 331 switch tp := p.(type) { 332 case *AcceptedPlan_FieldTerminalPath: 333 switch tp.selector { 334 case AcceptedPlan_FieldPathSelectorName: 335 result.Name = source.Name 336 case AcceptedPlan_FieldPathSelectorPlan: 337 result.Plan = source.Plan 338 case AcceptedPlan_FieldPathSelectorService: 339 result.Service = source.Service 340 case AcceptedPlan_FieldPathSelectorExtensions: 341 result.Extensions = source.Extensions 342 wholeExtensionsAccepted = true 343 case AcceptedPlan_FieldPathSelectorRegionalDistributions: 344 result.RegionalDistributions = source.RegionalDistributions 345 wholeRegionalDistributionsAccepted = true 346 case AcceptedPlan_FieldPathSelectorAssignee: 347 result.Assignee = source.Assignee 348 wholeAssigneeAccepted = true 349 case AcceptedPlan_FieldPathSelectorMetadata: 350 result.Metadata = source.Metadata 351 wholeMetadataAccepted = true 352 } 353 case *AcceptedPlan_FieldSubPath: 354 switch tp.selector { 355 case AcceptedPlan_FieldPathSelectorExtensions: 356 extensionsMask.AppendPath(tp.subPath.(common.Allowance_FieldPath)) 357 case AcceptedPlan_FieldPathSelectorRegionalDistributions: 358 regionalDistributionsMask.AppendPath(tp.subPath.(common.RegionalDistribution_FieldPath)) 359 case AcceptedPlan_FieldPathSelectorAssignee: 360 assigneeMask.AppendPath(tp.subPath.(AcceptedPlanAssignee_FieldPath)) 361 case AcceptedPlan_FieldPathSelectorMetadata: 362 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 363 } 364 } 365 } 366 if wholeExtensionsAccepted == false && len(extensionsMask.Paths) > 0 { 367 for _, sourceItem := range source.GetExtensions() { 368 result.Extensions = append(result.Extensions, extensionsMask.Project(sourceItem)) 369 } 370 } 371 if wholeRegionalDistributionsAccepted == false && len(regionalDistributionsMask.Paths) > 0 { 372 for _, sourceItem := range source.GetRegionalDistributions() { 373 result.RegionalDistributions = append(result.RegionalDistributions, regionalDistributionsMask.Project(sourceItem)) 374 } 375 } 376 if wholeAssigneeAccepted == false && len(assigneeMask.Paths) > 0 { 377 result.Assignee = assigneeMask.Project(source.GetAssignee()) 378 } 379 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 380 result.Metadata = metadataMask.Project(source.GetMetadata()) 381 } 382 return result 383 } 384 385 func (fieldMask *AcceptedPlan_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 386 return fieldMask.Project(source.(*AcceptedPlan)) 387 } 388 389 func (fieldMask *AcceptedPlan_FieldMask) PathsCount() int { 390 if fieldMask == nil { 391 return 0 392 } 393 return len(fieldMask.Paths) 394 } 395 396 type AcceptedPlan_Assignee_FieldMask struct { 397 Paths []AcceptedPlanAssignee_FieldPath 398 } 399 400 func FullAcceptedPlan_Assignee_FieldMask() *AcceptedPlan_Assignee_FieldMask { 401 res := &AcceptedPlan_Assignee_FieldMask{} 402 res.Paths = append(res.Paths, &AcceptedPlanAssignee_FieldTerminalPath{selector: AcceptedPlanAssignee_FieldPathSelectorProjectAssignee}) 403 res.Paths = append(res.Paths, &AcceptedPlanAssignee_FieldTerminalPath{selector: AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee}) 404 res.Paths = append(res.Paths, &AcceptedPlanAssignee_FieldTerminalPath{selector: AcceptedPlanAssignee_FieldPathSelectorSystemAssignee}) 405 return res 406 } 407 408 func (fieldMask *AcceptedPlan_Assignee_FieldMask) String() string { 409 if fieldMask == nil { 410 return "<nil>" 411 } 412 pathsStr := make([]string, 0, len(fieldMask.Paths)) 413 for _, path := range fieldMask.Paths { 414 pathsStr = append(pathsStr, path.String()) 415 } 416 return strings.Join(pathsStr, ", ") 417 } 418 419 func (fieldMask *AcceptedPlan_Assignee_FieldMask) IsFull() bool { 420 if fieldMask == nil { 421 return false 422 } 423 presentSelectors := make([]bool, 3) 424 for _, path := range fieldMask.Paths { 425 if asFinal, ok := path.(*AcceptedPlanAssignee_FieldTerminalPath); ok { 426 presentSelectors[int(asFinal.selector)] = true 427 } 428 } 429 for _, flag := range presentSelectors { 430 if !flag { 431 return false 432 } 433 } 434 return true 435 } 436 437 func (fieldMask *AcceptedPlan_Assignee_FieldMask) ProtoReflect() preflect.Message { 438 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 439 return ParseAcceptedPlanAssignee_FieldPath(raw) 440 }) 441 } 442 443 func (fieldMask *AcceptedPlan_Assignee_FieldMask) ProtoMessage() {} 444 445 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Reset() { 446 if fieldMask != nil { 447 fieldMask.Paths = nil 448 } 449 } 450 451 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Subtract(other *AcceptedPlan_Assignee_FieldMask) *AcceptedPlan_Assignee_FieldMask { 452 result := &AcceptedPlan_Assignee_FieldMask{} 453 removedSelectors := make([]bool, 3) 454 455 for _, path := range other.GetPaths() { 456 switch tp := path.(type) { 457 case *AcceptedPlanAssignee_FieldTerminalPath: 458 removedSelectors[int(tp.selector)] = true 459 } 460 } 461 for _, path := range fieldMask.GetPaths() { 462 if !removedSelectors[int(path.Selector())] { 463 result.Paths = append(result.Paths, path) 464 } 465 } 466 467 if len(result.Paths) == 0 { 468 return nil 469 } 470 return result 471 } 472 473 func (fieldMask *AcceptedPlan_Assignee_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 474 return fieldMask.Subtract(other.(*AcceptedPlan_Assignee_FieldMask)) 475 } 476 477 // FilterInputFields generates copy of field paths with output_only field paths removed 478 func (fieldMask *AcceptedPlan_Assignee_FieldMask) FilterInputFields() *AcceptedPlan_Assignee_FieldMask { 479 result := &AcceptedPlan_Assignee_FieldMask{} 480 result.Paths = append(result.Paths, fieldMask.Paths...) 481 return result 482 } 483 484 // ToFieldMask is used for proto conversions 485 func (fieldMask *AcceptedPlan_Assignee_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 486 protoFieldMask := &googlefieldmaskpb.FieldMask{} 487 for _, path := range fieldMask.Paths { 488 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 489 } 490 return protoFieldMask 491 } 492 493 func (fieldMask *AcceptedPlan_Assignee_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 494 if fieldMask == nil { 495 return status.Error(codes.Internal, "target field mask is nil") 496 } 497 fieldMask.Paths = make([]AcceptedPlanAssignee_FieldPath, 0, len(protoFieldMask.Paths)) 498 for _, strPath := range protoFieldMask.Paths { 499 path, err := ParseAcceptedPlanAssignee_FieldPath(strPath) 500 if err != nil { 501 return err 502 } 503 fieldMask.Paths = append(fieldMask.Paths, path) 504 } 505 return nil 506 } 507 508 // implement methods required by customType 509 func (fieldMask AcceptedPlan_Assignee_FieldMask) Marshal() ([]byte, error) { 510 protoFieldMask := fieldMask.ToProtoFieldMask() 511 return proto.Marshal(protoFieldMask) 512 } 513 514 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Unmarshal(data []byte) error { 515 protoFieldMask := &googlefieldmaskpb.FieldMask{} 516 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 517 return err 518 } 519 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 520 return err 521 } 522 return nil 523 } 524 525 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Size() int { 526 return proto.Size(fieldMask.ToProtoFieldMask()) 527 } 528 529 func (fieldMask AcceptedPlan_Assignee_FieldMask) MarshalJSON() ([]byte, error) { 530 return json.Marshal(fieldMask.ToProtoFieldMask()) 531 } 532 533 func (fieldMask *AcceptedPlan_Assignee_FieldMask) UnmarshalJSON(data []byte) error { 534 protoFieldMask := &googlefieldmaskpb.FieldMask{} 535 if err := json.Unmarshal(data, protoFieldMask); err != nil { 536 return err 537 } 538 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 539 return err 540 } 541 return nil 542 } 543 544 func (fieldMask *AcceptedPlan_Assignee_FieldMask) AppendPath(path AcceptedPlanAssignee_FieldPath) { 545 fieldMask.Paths = append(fieldMask.Paths, path) 546 } 547 548 func (fieldMask *AcceptedPlan_Assignee_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 549 fieldMask.Paths = append(fieldMask.Paths, path.(AcceptedPlanAssignee_FieldPath)) 550 } 551 552 func (fieldMask *AcceptedPlan_Assignee_FieldMask) GetPaths() []AcceptedPlanAssignee_FieldPath { 553 if fieldMask == nil { 554 return nil 555 } 556 return fieldMask.Paths 557 } 558 559 func (fieldMask *AcceptedPlan_Assignee_FieldMask) GetRawPaths() []gotenobject.FieldPath { 560 if fieldMask == nil { 561 return nil 562 } 563 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 564 for _, path := range fieldMask.Paths { 565 rawPaths = append(rawPaths, path) 566 } 567 return rawPaths 568 } 569 570 func (fieldMask *AcceptedPlan_Assignee_FieldMask) SetFromCliFlag(raw string) error { 571 path, err := ParseAcceptedPlanAssignee_FieldPath(raw) 572 if err != nil { 573 return err 574 } 575 fieldMask.Paths = append(fieldMask.Paths, path) 576 return nil 577 } 578 579 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Set(target, source *AcceptedPlan_Assignee) { 580 for _, path := range fieldMask.Paths { 581 val, _ := path.GetSingle(source) 582 // if val is nil, then field does not exist in source, skip 583 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 584 if val != nil { 585 path.WithIValue(val).SetTo(&target) 586 } 587 } 588 } 589 590 func (fieldMask *AcceptedPlan_Assignee_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 591 fieldMask.Set(target.(*AcceptedPlan_Assignee), source.(*AcceptedPlan_Assignee)) 592 } 593 594 func (fieldMask *AcceptedPlan_Assignee_FieldMask) Project(source *AcceptedPlan_Assignee) *AcceptedPlan_Assignee { 595 if source == nil { 596 return nil 597 } 598 if fieldMask == nil { 599 return source 600 } 601 result := &AcceptedPlan_Assignee{} 602 603 for _, p := range fieldMask.Paths { 604 switch tp := p.(type) { 605 case *AcceptedPlanAssignee_FieldTerminalPath: 606 switch tp.selector { 607 case AcceptedPlanAssignee_FieldPathSelectorProjectAssignee: 608 if source, ok := source.Assignee.(*AcceptedPlan_Assignee_ProjectAssignee); ok { 609 result.Assignee = &AcceptedPlan_Assignee_ProjectAssignee{ 610 ProjectAssignee: source.ProjectAssignee, 611 } 612 } 613 case AcceptedPlanAssignee_FieldPathSelectorOrganizationAssignee: 614 if source, ok := source.Assignee.(*AcceptedPlan_Assignee_OrganizationAssignee); ok { 615 result.Assignee = &AcceptedPlan_Assignee_OrganizationAssignee{ 616 OrganizationAssignee: source.OrganizationAssignee, 617 } 618 } 619 case AcceptedPlanAssignee_FieldPathSelectorSystemAssignee: 620 if source, ok := source.Assignee.(*AcceptedPlan_Assignee_SystemAssignee); ok { 621 result.Assignee = &AcceptedPlan_Assignee_SystemAssignee{ 622 SystemAssignee: source.SystemAssignee, 623 } 624 } 625 } 626 } 627 } 628 return result 629 } 630 631 func (fieldMask *AcceptedPlan_Assignee_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 632 return fieldMask.Project(source.(*AcceptedPlan_Assignee)) 633 } 634 635 func (fieldMask *AcceptedPlan_Assignee_FieldMask) PathsCount() int { 636 if fieldMask == nil { 637 return 0 638 } 639 return len(fieldMask.Paths) 640 }