github.com/cloudwan/edgelq-sdk@v1.15.4/devices/resources/v1alpha2/project/project.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/devices/proto/v1alpha2/project.proto 3 // DO NOT EDIT!!! 4 5 package project 6 7 import ( 8 "encoding/json" 9 "fmt" 10 "reflect" 11 "strings" 12 "time" 13 14 "google.golang.org/grpc/codes" 15 "google.golang.org/grpc/status" 16 "google.golang.org/protobuf/encoding/protojson" 17 "google.golang.org/protobuf/proto" 18 "google.golang.org/protobuf/reflect/protoregistry" 19 20 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 21 "github.com/cloudwan/goten-sdk/runtime/strcase" 22 ) 23 24 // proto imports 25 import ( 26 meta "github.com/cloudwan/goten-sdk/types/meta" 27 multi_region_policy "github.com/cloudwan/goten-sdk/types/multi_region_policy" 28 ) 29 30 // ensure the imports are used 31 var ( 32 _ = new(json.Marshaler) 33 _ = new(fmt.Stringer) 34 _ = reflect.DeepEqual 35 _ = strings.Builder{} 36 _ = time.Second 37 38 _ = strcase.ToLowerCamel 39 _ = codes.NotFound 40 _ = status.Status{} 41 _ = protojson.UnmarshalOptions{} 42 _ = new(proto.Message) 43 _ = protoregistry.GlobalTypes 44 45 _ = new(gotenobject.FieldPath) 46 ) 47 48 // make sure we're using proto imports 49 var ( 50 _ = &meta.Meta{} 51 _ = &multi_region_policy.MultiRegionPolicy{} 52 ) 53 54 // FieldPath provides implementation to handle 55 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 56 type Project_FieldPath interface { 57 gotenobject.FieldPath 58 Selector() Project_FieldPathSelector 59 Get(source *Project) []interface{} 60 GetSingle(source *Project) (interface{}, bool) 61 ClearValue(item *Project) 62 63 // Those methods build corresponding Project_FieldPathValue 64 // (or array of values) and holds passed value. Panics if injected type is incorrect. 65 WithIValue(value interface{}) Project_FieldPathValue 66 WithIArrayOfValues(values interface{}) Project_FieldPathArrayOfValues 67 WithIArrayItemValue(value interface{}) Project_FieldPathArrayItemValue 68 } 69 70 type Project_FieldPathSelector int32 71 72 const ( 73 Project_FieldPathSelectorName Project_FieldPathSelector = 0 74 Project_FieldPathSelectorMetadata Project_FieldPathSelector = 1 75 Project_FieldPathSelectorMultiRegionPolicy Project_FieldPathSelector = 2 76 ) 77 78 func (s Project_FieldPathSelector) String() string { 79 switch s { 80 case Project_FieldPathSelectorName: 81 return "name" 82 case Project_FieldPathSelectorMetadata: 83 return "metadata" 84 case Project_FieldPathSelectorMultiRegionPolicy: 85 return "multi_region_policy" 86 default: 87 panic(fmt.Sprintf("Invalid selector for Project: %d", s)) 88 } 89 } 90 91 func BuildProject_FieldPath(fp gotenobject.RawFieldPath) (Project_FieldPath, error) { 92 if len(fp) == 0 { 93 return nil, status.Error(codes.InvalidArgument, "empty field path for object Project") 94 } 95 if len(fp) == 1 { 96 switch fp[0] { 97 case "name": 98 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorName}, nil 99 case "metadata": 100 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorMetadata}, nil 101 case "multi_region_policy", "multiRegionPolicy", "multi-region-policy": 102 return &Project_FieldTerminalPath{selector: Project_FieldPathSelectorMultiRegionPolicy}, nil 103 } 104 } else { 105 switch fp[0] { 106 case "metadata": 107 if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil { 108 return nil, err 109 } else { 110 return &Project_FieldSubPath{selector: Project_FieldPathSelectorMetadata, subPath: subpath}, nil 111 } 112 case "multi_region_policy", "multiRegionPolicy", "multi-region-policy": 113 if subpath, err := multi_region_policy.BuildMultiRegionPolicy_FieldPath(fp[1:]); err != nil { 114 return nil, err 115 } else { 116 return &Project_FieldSubPath{selector: Project_FieldPathSelectorMultiRegionPolicy, subPath: subpath}, nil 117 } 118 } 119 } 120 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Project", fp) 121 } 122 123 func ParseProject_FieldPath(rawField string) (Project_FieldPath, error) { 124 fp, err := gotenobject.ParseRawFieldPath(rawField) 125 if err != nil { 126 return nil, err 127 } 128 return BuildProject_FieldPath(fp) 129 } 130 131 func MustParseProject_FieldPath(rawField string) Project_FieldPath { 132 fp, err := ParseProject_FieldPath(rawField) 133 if err != nil { 134 panic(err) 135 } 136 return fp 137 } 138 139 type Project_FieldTerminalPath struct { 140 selector Project_FieldPathSelector 141 } 142 143 var _ Project_FieldPath = (*Project_FieldTerminalPath)(nil) 144 145 func (fp *Project_FieldTerminalPath) Selector() Project_FieldPathSelector { 146 return fp.selector 147 } 148 149 // String returns path representation in proto convention 150 func (fp *Project_FieldTerminalPath) String() string { 151 return fp.selector.String() 152 } 153 154 // JSONString returns path representation is JSON convention 155 func (fp *Project_FieldTerminalPath) JSONString() string { 156 return strcase.ToLowerCamel(fp.String()) 157 } 158 159 // Get returns all values pointed by specific field from source Project 160 func (fp *Project_FieldTerminalPath) Get(source *Project) (values []interface{}) { 161 if source != nil { 162 switch fp.selector { 163 case Project_FieldPathSelectorName: 164 if source.Name != nil { 165 values = append(values, source.Name) 166 } 167 case Project_FieldPathSelectorMetadata: 168 if source.Metadata != nil { 169 values = append(values, source.Metadata) 170 } 171 case Project_FieldPathSelectorMultiRegionPolicy: 172 if source.MultiRegionPolicy != nil { 173 values = append(values, source.MultiRegionPolicy) 174 } 175 default: 176 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 177 } 178 } 179 return 180 } 181 182 func (fp *Project_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 183 return fp.Get(source.(*Project)) 184 } 185 186 // GetSingle returns value pointed by specific field of from source Project 187 func (fp *Project_FieldTerminalPath) GetSingle(source *Project) (interface{}, bool) { 188 switch fp.selector { 189 case Project_FieldPathSelectorName: 190 res := source.GetName() 191 return res, res != nil 192 case Project_FieldPathSelectorMetadata: 193 res := source.GetMetadata() 194 return res, res != nil 195 case Project_FieldPathSelectorMultiRegionPolicy: 196 res := source.GetMultiRegionPolicy() 197 return res, res != nil 198 default: 199 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 200 } 201 } 202 203 func (fp *Project_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 204 return fp.GetSingle(source.(*Project)) 205 } 206 207 // GetDefault returns a default value of the field type 208 func (fp *Project_FieldTerminalPath) GetDefault() interface{} { 209 switch fp.selector { 210 case Project_FieldPathSelectorName: 211 return (*Name)(nil) 212 case Project_FieldPathSelectorMetadata: 213 return (*meta.Meta)(nil) 214 case Project_FieldPathSelectorMultiRegionPolicy: 215 return (*multi_region_policy.MultiRegionPolicy)(nil) 216 default: 217 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 218 } 219 } 220 221 func (fp *Project_FieldTerminalPath) ClearValue(item *Project) { 222 if item != nil { 223 switch fp.selector { 224 case Project_FieldPathSelectorName: 225 item.Name = nil 226 case Project_FieldPathSelectorMetadata: 227 item.Metadata = nil 228 case Project_FieldPathSelectorMultiRegionPolicy: 229 item.MultiRegionPolicy = nil 230 default: 231 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 232 } 233 } 234 } 235 236 func (fp *Project_FieldTerminalPath) ClearValueRaw(item proto.Message) { 237 fp.ClearValue(item.(*Project)) 238 } 239 240 // IsLeaf - whether field path is holds simple value 241 func (fp *Project_FieldTerminalPath) IsLeaf() bool { 242 return fp.selector == Project_FieldPathSelectorName 243 } 244 245 func (fp *Project_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 246 return []gotenobject.FieldPath{fp} 247 } 248 249 func (fp *Project_FieldTerminalPath) WithIValue(value interface{}) Project_FieldPathValue { 250 switch fp.selector { 251 case Project_FieldPathSelectorName: 252 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(*Name)} 253 case Project_FieldPathSelectorMetadata: 254 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(*meta.Meta)} 255 case Project_FieldPathSelectorMultiRegionPolicy: 256 return &Project_FieldTerminalPathValue{Project_FieldTerminalPath: *fp, value: value.(*multi_region_policy.MultiRegionPolicy)} 257 default: 258 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 259 } 260 } 261 262 func (fp *Project_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 263 return fp.WithIValue(value) 264 } 265 266 func (fp *Project_FieldTerminalPath) WithIArrayOfValues(values interface{}) Project_FieldPathArrayOfValues { 267 fpaov := &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp} 268 switch fp.selector { 269 case Project_FieldPathSelectorName: 270 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]*Name)} 271 case Project_FieldPathSelectorMetadata: 272 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]*meta.Meta)} 273 case Project_FieldPathSelectorMultiRegionPolicy: 274 return &Project_FieldTerminalPathArrayOfValues{Project_FieldTerminalPath: *fp, values: values.([]*multi_region_policy.MultiRegionPolicy)} 275 default: 276 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 277 } 278 return fpaov 279 } 280 281 func (fp *Project_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 282 return fp.WithIArrayOfValues(values) 283 } 284 285 func (fp *Project_FieldTerminalPath) WithIArrayItemValue(value interface{}) Project_FieldPathArrayItemValue { 286 switch fp.selector { 287 default: 288 panic(fmt.Sprintf("Invalid selector for Project: %d", fp.selector)) 289 } 290 } 291 292 func (fp *Project_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 293 return fp.WithIArrayItemValue(value) 294 } 295 296 type Project_FieldSubPath struct { 297 selector Project_FieldPathSelector 298 subPath gotenobject.FieldPath 299 } 300 301 var _ Project_FieldPath = (*Project_FieldSubPath)(nil) 302 303 func (fps *Project_FieldSubPath) Selector() Project_FieldPathSelector { 304 return fps.selector 305 } 306 func (fps *Project_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) { 307 res, ok := fps.subPath.(meta.Meta_FieldPath) 308 return res, ok 309 } 310 func (fps *Project_FieldSubPath) AsMultiRegionPolicySubPath() (multi_region_policy.MultiRegionPolicy_FieldPath, bool) { 311 res, ok := fps.subPath.(multi_region_policy.MultiRegionPolicy_FieldPath) 312 return res, ok 313 } 314 315 // String returns path representation in proto convention 316 func (fps *Project_FieldSubPath) String() string { 317 return fps.selector.String() + "." + fps.subPath.String() 318 } 319 320 // JSONString returns path representation is JSON convention 321 func (fps *Project_FieldSubPath) JSONString() string { 322 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 323 } 324 325 // Get returns all values pointed by selected field from source Project 326 func (fps *Project_FieldSubPath) Get(source *Project) (values []interface{}) { 327 switch fps.selector { 328 case Project_FieldPathSelectorMetadata: 329 values = append(values, fps.subPath.GetRaw(source.GetMetadata())...) 330 case Project_FieldPathSelectorMultiRegionPolicy: 331 values = append(values, fps.subPath.GetRaw(source.GetMultiRegionPolicy())...) 332 default: 333 panic(fmt.Sprintf("Invalid selector for Project: %d", fps.selector)) 334 } 335 return 336 } 337 338 func (fps *Project_FieldSubPath) GetRaw(source proto.Message) []interface{} { 339 return fps.Get(source.(*Project)) 340 } 341 342 // GetSingle returns value of selected field from source Project 343 func (fps *Project_FieldSubPath) GetSingle(source *Project) (interface{}, bool) { 344 switch fps.selector { 345 case Project_FieldPathSelectorMetadata: 346 if source.GetMetadata() == nil { 347 return nil, false 348 } 349 return fps.subPath.GetSingleRaw(source.GetMetadata()) 350 case Project_FieldPathSelectorMultiRegionPolicy: 351 if source.GetMultiRegionPolicy() == nil { 352 return nil, false 353 } 354 return fps.subPath.GetSingleRaw(source.GetMultiRegionPolicy()) 355 default: 356 panic(fmt.Sprintf("Invalid selector for Project: %d", fps.selector)) 357 } 358 } 359 360 func (fps *Project_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 361 return fps.GetSingle(source.(*Project)) 362 } 363 364 // GetDefault returns a default value of the field type 365 func (fps *Project_FieldSubPath) GetDefault() interface{} { 366 return fps.subPath.GetDefault() 367 } 368 369 func (fps *Project_FieldSubPath) ClearValue(item *Project) { 370 if item != nil { 371 switch fps.selector { 372 case Project_FieldPathSelectorMetadata: 373 fps.subPath.ClearValueRaw(item.Metadata) 374 case Project_FieldPathSelectorMultiRegionPolicy: 375 fps.subPath.ClearValueRaw(item.MultiRegionPolicy) 376 default: 377 panic(fmt.Sprintf("Invalid selector for Project: %d", fps.selector)) 378 } 379 } 380 } 381 382 func (fps *Project_FieldSubPath) ClearValueRaw(item proto.Message) { 383 fps.ClearValue(item.(*Project)) 384 } 385 386 // IsLeaf - whether field path is holds simple value 387 func (fps *Project_FieldSubPath) IsLeaf() bool { 388 return fps.subPath.IsLeaf() 389 } 390 391 func (fps *Project_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 392 iPaths := []gotenobject.FieldPath{&Project_FieldTerminalPath{selector: fps.selector}} 393 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 394 return iPaths 395 } 396 397 func (fps *Project_FieldSubPath) WithIValue(value interface{}) Project_FieldPathValue { 398 return &Project_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 399 } 400 401 func (fps *Project_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 402 return fps.WithIValue(value) 403 } 404 405 func (fps *Project_FieldSubPath) WithIArrayOfValues(values interface{}) Project_FieldPathArrayOfValues { 406 return &Project_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 407 } 408 409 func (fps *Project_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 410 return fps.WithIArrayOfValues(values) 411 } 412 413 func (fps *Project_FieldSubPath) WithIArrayItemValue(value interface{}) Project_FieldPathArrayItemValue { 414 return &Project_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 415 } 416 417 func (fps *Project_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 418 return fps.WithIArrayItemValue(value) 419 } 420 421 // Project_FieldPathValue allows storing values for Project fields according to their type 422 type Project_FieldPathValue interface { 423 Project_FieldPath 424 gotenobject.FieldPathValue 425 SetTo(target **Project) 426 CompareWith(*Project) (cmp int, comparable bool) 427 } 428 429 func ParseProject_FieldPathValue(pathStr, valueStr string) (Project_FieldPathValue, error) { 430 fp, err := ParseProject_FieldPath(pathStr) 431 if err != nil { 432 return nil, err 433 } 434 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 435 if err != nil { 436 return nil, status.Errorf(codes.InvalidArgument, "error parsing Project field path value from %s: %v", valueStr, err) 437 } 438 return fpv.(Project_FieldPathValue), nil 439 } 440 441 func MustParseProject_FieldPathValue(pathStr, valueStr string) Project_FieldPathValue { 442 fpv, err := ParseProject_FieldPathValue(pathStr, valueStr) 443 if err != nil { 444 panic(err) 445 } 446 return fpv 447 } 448 449 type Project_FieldTerminalPathValue struct { 450 Project_FieldTerminalPath 451 value interface{} 452 } 453 454 var _ Project_FieldPathValue = (*Project_FieldTerminalPathValue)(nil) 455 456 // GetRawValue returns raw value stored under selected path for 'Project' as interface{} 457 func (fpv *Project_FieldTerminalPathValue) GetRawValue() interface{} { 458 return fpv.value 459 } 460 func (fpv *Project_FieldTerminalPathValue) AsNameValue() (*Name, bool) { 461 res, ok := fpv.value.(*Name) 462 return res, ok 463 } 464 func (fpv *Project_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) { 465 res, ok := fpv.value.(*meta.Meta) 466 return res, ok 467 } 468 func (fpv *Project_FieldTerminalPathValue) AsMultiRegionPolicyValue() (*multi_region_policy.MultiRegionPolicy, bool) { 469 res, ok := fpv.value.(*multi_region_policy.MultiRegionPolicy) 470 return res, ok 471 } 472 473 // SetTo stores value for selected field for object Project 474 func (fpv *Project_FieldTerminalPathValue) SetTo(target **Project) { 475 if *target == nil { 476 *target = new(Project) 477 } 478 switch fpv.selector { 479 case Project_FieldPathSelectorName: 480 (*target).Name = fpv.value.(*Name) 481 case Project_FieldPathSelectorMetadata: 482 (*target).Metadata = fpv.value.(*meta.Meta) 483 case Project_FieldPathSelectorMultiRegionPolicy: 484 (*target).MultiRegionPolicy = fpv.value.(*multi_region_policy.MultiRegionPolicy) 485 default: 486 panic(fmt.Sprintf("Invalid selector for Project: %d", fpv.selector)) 487 } 488 } 489 490 func (fpv *Project_FieldTerminalPathValue) SetToRaw(target proto.Message) { 491 typedObject := target.(*Project) 492 fpv.SetTo(&typedObject) 493 } 494 495 // CompareWith compares value in the 'Project_FieldTerminalPathValue' with the value under path in 'Project'. 496 func (fpv *Project_FieldTerminalPathValue) CompareWith(source *Project) (int, bool) { 497 switch fpv.selector { 498 case Project_FieldPathSelectorName: 499 leftValue := fpv.value.(*Name) 500 rightValue := source.GetName() 501 if leftValue == nil { 502 if rightValue != nil { 503 return -1, true 504 } 505 return 0, true 506 } 507 if rightValue == nil { 508 return 1, true 509 } 510 if leftValue.String() == rightValue.String() { 511 return 0, true 512 } else if leftValue.String() < rightValue.String() { 513 return -1, true 514 } else { 515 return 1, true 516 } 517 case Project_FieldPathSelectorMetadata: 518 return 0, false 519 case Project_FieldPathSelectorMultiRegionPolicy: 520 return 0, false 521 default: 522 panic(fmt.Sprintf("Invalid selector for Project: %d", fpv.selector)) 523 } 524 } 525 526 func (fpv *Project_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 527 return fpv.CompareWith(source.(*Project)) 528 } 529 530 type Project_FieldSubPathValue struct { 531 Project_FieldPath 532 subPathValue gotenobject.FieldPathValue 533 } 534 535 var _ Project_FieldPathValue = (*Project_FieldSubPathValue)(nil) 536 537 func (fpvs *Project_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) { 538 res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue) 539 return res, ok 540 } 541 func (fpvs *Project_FieldSubPathValue) AsMultiRegionPolicyPathValue() (multi_region_policy.MultiRegionPolicy_FieldPathValue, bool) { 542 res, ok := fpvs.subPathValue.(multi_region_policy.MultiRegionPolicy_FieldPathValue) 543 return res, ok 544 } 545 546 func (fpvs *Project_FieldSubPathValue) SetTo(target **Project) { 547 if *target == nil { 548 *target = new(Project) 549 } 550 switch fpvs.Selector() { 551 case Project_FieldPathSelectorMetadata: 552 fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata) 553 case Project_FieldPathSelectorMultiRegionPolicy: 554 fpvs.subPathValue.(multi_region_policy.MultiRegionPolicy_FieldPathValue).SetTo(&(*target).MultiRegionPolicy) 555 default: 556 panic(fmt.Sprintf("Invalid selector for Project: %d", fpvs.Selector())) 557 } 558 } 559 560 func (fpvs *Project_FieldSubPathValue) SetToRaw(target proto.Message) { 561 typedObject := target.(*Project) 562 fpvs.SetTo(&typedObject) 563 } 564 565 func (fpvs *Project_FieldSubPathValue) GetRawValue() interface{} { 566 return fpvs.subPathValue.GetRawValue() 567 } 568 569 func (fpvs *Project_FieldSubPathValue) CompareWith(source *Project) (int, bool) { 570 switch fpvs.Selector() { 571 case Project_FieldPathSelectorMetadata: 572 return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata()) 573 case Project_FieldPathSelectorMultiRegionPolicy: 574 return fpvs.subPathValue.(multi_region_policy.MultiRegionPolicy_FieldPathValue).CompareWith(source.GetMultiRegionPolicy()) 575 default: 576 panic(fmt.Sprintf("Invalid selector for Project: %d", fpvs.Selector())) 577 } 578 } 579 580 func (fpvs *Project_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 581 return fpvs.CompareWith(source.(*Project)) 582 } 583 584 // Project_FieldPathArrayItemValue allows storing single item in Path-specific values for Project according to their type 585 // Present only for array (repeated) types. 586 type Project_FieldPathArrayItemValue interface { 587 gotenobject.FieldPathArrayItemValue 588 Project_FieldPath 589 ContainsValue(*Project) bool 590 } 591 592 // ParseProject_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 593 func ParseProject_FieldPathArrayItemValue(pathStr, valueStr string) (Project_FieldPathArrayItemValue, error) { 594 fp, err := ParseProject_FieldPath(pathStr) 595 if err != nil { 596 return nil, err 597 } 598 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 599 if err != nil { 600 return nil, status.Errorf(codes.InvalidArgument, "error parsing Project field path array item value from %s: %v", valueStr, err) 601 } 602 return fpaiv.(Project_FieldPathArrayItemValue), nil 603 } 604 605 func MustParseProject_FieldPathArrayItemValue(pathStr, valueStr string) Project_FieldPathArrayItemValue { 606 fpaiv, err := ParseProject_FieldPathArrayItemValue(pathStr, valueStr) 607 if err != nil { 608 panic(err) 609 } 610 return fpaiv 611 } 612 613 type Project_FieldTerminalPathArrayItemValue struct { 614 Project_FieldTerminalPath 615 value interface{} 616 } 617 618 var _ Project_FieldPathArrayItemValue = (*Project_FieldTerminalPathArrayItemValue)(nil) 619 620 // GetRawValue returns stored element value for array in object Project as interface{} 621 func (fpaiv *Project_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 622 return fpaiv.value 623 } 624 625 func (fpaiv *Project_FieldTerminalPathArrayItemValue) GetSingle(source *Project) (interface{}, bool) { 626 return nil, false 627 } 628 629 func (fpaiv *Project_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 630 return fpaiv.GetSingle(source.(*Project)) 631 } 632 633 // Contains returns a boolean indicating if value that is being held is present in given 'Project' 634 func (fpaiv *Project_FieldTerminalPathArrayItemValue) ContainsValue(source *Project) bool { 635 slice := fpaiv.Project_FieldTerminalPath.Get(source) 636 for _, v := range slice { 637 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 638 if proto.Equal(asProtoMsg, v.(proto.Message)) { 639 return true 640 } 641 } else if reflect.DeepEqual(v, fpaiv.value) { 642 return true 643 } 644 } 645 return false 646 } 647 648 type Project_FieldSubPathArrayItemValue struct { 649 Project_FieldPath 650 subPathItemValue gotenobject.FieldPathArrayItemValue 651 } 652 653 // GetRawValue returns stored array item value 654 func (fpaivs *Project_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 655 return fpaivs.subPathItemValue.GetRawItemValue() 656 } 657 func (fpaivs *Project_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) { 658 res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue) 659 return res, ok 660 } 661 func (fpaivs *Project_FieldSubPathArrayItemValue) AsMultiRegionPolicyPathItemValue() (multi_region_policy.MultiRegionPolicy_FieldPathArrayItemValue, bool) { 662 res, ok := fpaivs.subPathItemValue.(multi_region_policy.MultiRegionPolicy_FieldPathArrayItemValue) 663 return res, ok 664 } 665 666 // Contains returns a boolean indicating if value that is being held is present in given 'Project' 667 func (fpaivs *Project_FieldSubPathArrayItemValue) ContainsValue(source *Project) bool { 668 switch fpaivs.Selector() { 669 case Project_FieldPathSelectorMetadata: 670 return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata()) 671 case Project_FieldPathSelectorMultiRegionPolicy: 672 return fpaivs.subPathItemValue.(multi_region_policy.MultiRegionPolicy_FieldPathArrayItemValue).ContainsValue(source.GetMultiRegionPolicy()) 673 default: 674 panic(fmt.Sprintf("Invalid selector for Project: %d", fpaivs.Selector())) 675 } 676 } 677 678 // Project_FieldPathArrayOfValues allows storing slice of values for Project fields according to their type 679 type Project_FieldPathArrayOfValues interface { 680 gotenobject.FieldPathArrayOfValues 681 Project_FieldPath 682 } 683 684 func ParseProject_FieldPathArrayOfValues(pathStr, valuesStr string) (Project_FieldPathArrayOfValues, error) { 685 fp, err := ParseProject_FieldPath(pathStr) 686 if err != nil { 687 return nil, err 688 } 689 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 690 if err != nil { 691 return nil, status.Errorf(codes.InvalidArgument, "error parsing Project field path array of values from %s: %v", valuesStr, err) 692 } 693 return fpaov.(Project_FieldPathArrayOfValues), nil 694 } 695 696 func MustParseProject_FieldPathArrayOfValues(pathStr, valuesStr string) Project_FieldPathArrayOfValues { 697 fpaov, err := ParseProject_FieldPathArrayOfValues(pathStr, valuesStr) 698 if err != nil { 699 panic(err) 700 } 701 return fpaov 702 } 703 704 type Project_FieldTerminalPathArrayOfValues struct { 705 Project_FieldTerminalPath 706 values interface{} 707 } 708 709 var _ Project_FieldPathArrayOfValues = (*Project_FieldTerminalPathArrayOfValues)(nil) 710 711 func (fpaov *Project_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 712 switch fpaov.selector { 713 case Project_FieldPathSelectorName: 714 for _, v := range fpaov.values.([]*Name) { 715 values = append(values, v) 716 } 717 case Project_FieldPathSelectorMetadata: 718 for _, v := range fpaov.values.([]*meta.Meta) { 719 values = append(values, v) 720 } 721 case Project_FieldPathSelectorMultiRegionPolicy: 722 for _, v := range fpaov.values.([]*multi_region_policy.MultiRegionPolicy) { 723 values = append(values, v) 724 } 725 } 726 return 727 } 728 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) { 729 res, ok := fpaov.values.([]*Name) 730 return res, ok 731 } 732 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) { 733 res, ok := fpaov.values.([]*meta.Meta) 734 return res, ok 735 } 736 func (fpaov *Project_FieldTerminalPathArrayOfValues) AsMultiRegionPolicyArrayOfValues() ([]*multi_region_policy.MultiRegionPolicy, bool) { 737 res, ok := fpaov.values.([]*multi_region_policy.MultiRegionPolicy) 738 return res, ok 739 } 740 741 type Project_FieldSubPathArrayOfValues struct { 742 Project_FieldPath 743 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 744 } 745 746 var _ Project_FieldPathArrayOfValues = (*Project_FieldSubPathArrayOfValues)(nil) 747 748 func (fpsaov *Project_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 749 return fpsaov.subPathArrayOfValues.GetRawValues() 750 } 751 func (fpsaov *Project_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) { 752 res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues) 753 return res, ok 754 } 755 func (fpsaov *Project_FieldSubPathArrayOfValues) AsMultiRegionPolicyPathArrayOfValues() (multi_region_policy.MultiRegionPolicy_FieldPathArrayOfValues, bool) { 756 res, ok := fpsaov.subPathArrayOfValues.(multi_region_policy.MultiRegionPolicy_FieldPathArrayOfValues) 757 return res, ok 758 }