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