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