github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1alpha2/condition/condition.pb.fieldpath.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/iam/proto/v1alpha2/condition.proto 3 // DO NOT EDIT!!! 4 5 package condition 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 structpb "google.golang.org/protobuf/types/known/structpb" 30 ) 31 32 // ensure the imports are used 33 var ( 34 _ = new(json.Marshaler) 35 _ = new(fmt.Stringer) 36 _ = reflect.DeepEqual 37 _ = strings.Builder{} 38 _ = time.Second 39 40 _ = strcase.ToLowerCamel 41 _ = codes.NotFound 42 _ = status.Status{} 43 _ = protojson.UnmarshalOptions{} 44 _ = new(proto.Message) 45 _ = protoregistry.GlobalTypes 46 47 _ = new(gotenobject.FieldPath) 48 ) 49 50 // make sure we're using proto imports 51 var ( 52 _ = &organization.Organization{} 53 _ = &project.Project{} 54 _ = &structpb.Struct{} 55 _ = &meta.Meta{} 56 ) 57 58 // FieldPath provides implementation to handle 59 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 60 type Condition_FieldPath interface { 61 gotenobject.FieldPath 62 Selector() Condition_FieldPathSelector 63 Get(source *Condition) []interface{} 64 GetSingle(source *Condition) (interface{}, bool) 65 ClearValue(item *Condition) 66 67 // Those methods build corresponding Condition_FieldPathValue 68 // (or array of values) and holds passed value. Panics if injected type is incorrect. 69 WithIValue(value interface{}) Condition_FieldPathValue 70 WithIArrayOfValues(values interface{}) Condition_FieldPathArrayOfValues 71 WithIArrayItemValue(value interface{}) Condition_FieldPathArrayItemValue 72 } 73 74 type Condition_FieldPathSelector int32 75 76 const ( 77 Condition_FieldPathSelectorName Condition_FieldPathSelector = 0 78 Condition_FieldPathSelectorDisplayName Condition_FieldPathSelector = 1 79 Condition_FieldPathSelectorDescription Condition_FieldPathSelector = 2 80 Condition_FieldPathSelectorExpression Condition_FieldPathSelector = 3 81 Condition_FieldPathSelectorParameterDeclarations Condition_FieldPathSelector = 4 82 Condition_FieldPathSelectorMetadata Condition_FieldPathSelector = 5 83 ) 84 85 func (s Condition_FieldPathSelector) String() string { 86 switch s { 87 case Condition_FieldPathSelectorName: 88 return "name" 89 case Condition_FieldPathSelectorDisplayName: 90 return "display_name" 91 case Condition_FieldPathSelectorDescription: 92 return "description" 93 case Condition_FieldPathSelectorExpression: 94 return "expression" 95 case Condition_FieldPathSelectorParameterDeclarations: 96 return "parameter_declarations" 97 case Condition_FieldPathSelectorMetadata: 98 return "metadata" 99 default: 100 panic(fmt.Sprintf("Invalid selector for Condition: %d", s)) 101 } 102 } 103 104 func BuildCondition_FieldPath(fp gotenobject.RawFieldPath) (Condition_FieldPath, error) { 105 if len(fp) == 0 { 106 return nil, status.Error(codes.InvalidArgument, "empty field path for object Condition") 107 } 108 if len(fp) == 1 { 109 switch fp[0] { 110 case "name": 111 return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorName}, nil 112 case "display_name", "displayName", "display-name": 113 return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorDisplayName}, nil 114 case "description": 115 return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorDescription}, nil 116 case "expression": 117 return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorExpression}, nil 118 case "parameter_declarations", "parameterDeclarations", "parameter-declarations": 119 return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorParameterDeclarations}, nil 120 case "metadata": 121 return &Condition_FieldTerminalPath{selector: Condition_FieldPathSelectorMetadata}, nil 122 } 123 } else { 124 switch fp[0] { 125 case "parameter_declarations", "parameterDeclarations", "parameter-declarations": 126 if subpath, err := BuildConditionParameterDeclaration_FieldPath(fp[1:]); err != nil { 127 return nil, err 128 } else { 129 return &Condition_FieldSubPath{selector: Condition_FieldPathSelectorParameterDeclarations, subPath: subpath}, nil 130 } 131 case "metadata": 132 if subpath, err := meta.BuildMeta_FieldPath(fp[1:]); err != nil { 133 return nil, err 134 } else { 135 return &Condition_FieldSubPath{selector: Condition_FieldPathSelectorMetadata, subPath: subpath}, nil 136 } 137 } 138 } 139 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Condition", fp) 140 } 141 142 func ParseCondition_FieldPath(rawField string) (Condition_FieldPath, error) { 143 fp, err := gotenobject.ParseRawFieldPath(rawField) 144 if err != nil { 145 return nil, err 146 } 147 return BuildCondition_FieldPath(fp) 148 } 149 150 func MustParseCondition_FieldPath(rawField string) Condition_FieldPath { 151 fp, err := ParseCondition_FieldPath(rawField) 152 if err != nil { 153 panic(err) 154 } 155 return fp 156 } 157 158 type Condition_FieldTerminalPath struct { 159 selector Condition_FieldPathSelector 160 } 161 162 var _ Condition_FieldPath = (*Condition_FieldTerminalPath)(nil) 163 164 func (fp *Condition_FieldTerminalPath) Selector() Condition_FieldPathSelector { 165 return fp.selector 166 } 167 168 // String returns path representation in proto convention 169 func (fp *Condition_FieldTerminalPath) String() string { 170 return fp.selector.String() 171 } 172 173 // JSONString returns path representation is JSON convention 174 func (fp *Condition_FieldTerminalPath) JSONString() string { 175 return strcase.ToLowerCamel(fp.String()) 176 } 177 178 // Get returns all values pointed by specific field from source Condition 179 func (fp *Condition_FieldTerminalPath) Get(source *Condition) (values []interface{}) { 180 if source != nil { 181 switch fp.selector { 182 case Condition_FieldPathSelectorName: 183 if source.Name != nil { 184 values = append(values, source.Name) 185 } 186 case Condition_FieldPathSelectorDisplayName: 187 values = append(values, source.DisplayName) 188 case Condition_FieldPathSelectorDescription: 189 values = append(values, source.Description) 190 case Condition_FieldPathSelectorExpression: 191 values = append(values, source.Expression) 192 case Condition_FieldPathSelectorParameterDeclarations: 193 for _, value := range source.GetParameterDeclarations() { 194 values = append(values, value) 195 } 196 case Condition_FieldPathSelectorMetadata: 197 if source.Metadata != nil { 198 values = append(values, source.Metadata) 199 } 200 default: 201 panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector)) 202 } 203 } 204 return 205 } 206 207 func (fp *Condition_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 208 return fp.Get(source.(*Condition)) 209 } 210 211 // GetSingle returns value pointed by specific field of from source Condition 212 func (fp *Condition_FieldTerminalPath) GetSingle(source *Condition) (interface{}, bool) { 213 switch fp.selector { 214 case Condition_FieldPathSelectorName: 215 res := source.GetName() 216 return res, res != nil 217 case Condition_FieldPathSelectorDisplayName: 218 return source.GetDisplayName(), source != nil 219 case Condition_FieldPathSelectorDescription: 220 return source.GetDescription(), source != nil 221 case Condition_FieldPathSelectorExpression: 222 return source.GetExpression(), source != nil 223 case Condition_FieldPathSelectorParameterDeclarations: 224 res := source.GetParameterDeclarations() 225 return res, res != nil 226 case Condition_FieldPathSelectorMetadata: 227 res := source.GetMetadata() 228 return res, res != nil 229 default: 230 panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector)) 231 } 232 } 233 234 func (fp *Condition_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 235 return fp.GetSingle(source.(*Condition)) 236 } 237 238 // GetDefault returns a default value of the field type 239 func (fp *Condition_FieldTerminalPath) GetDefault() interface{} { 240 switch fp.selector { 241 case Condition_FieldPathSelectorName: 242 return (*Name)(nil) 243 case Condition_FieldPathSelectorDisplayName: 244 return "" 245 case Condition_FieldPathSelectorDescription: 246 return "" 247 case Condition_FieldPathSelectorExpression: 248 return "" 249 case Condition_FieldPathSelectorParameterDeclarations: 250 return ([]*Condition_ParameterDeclaration)(nil) 251 case Condition_FieldPathSelectorMetadata: 252 return (*meta.Meta)(nil) 253 default: 254 panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector)) 255 } 256 } 257 258 func (fp *Condition_FieldTerminalPath) ClearValue(item *Condition) { 259 if item != nil { 260 switch fp.selector { 261 case Condition_FieldPathSelectorName: 262 item.Name = nil 263 case Condition_FieldPathSelectorDisplayName: 264 item.DisplayName = "" 265 case Condition_FieldPathSelectorDescription: 266 item.Description = "" 267 case Condition_FieldPathSelectorExpression: 268 item.Expression = "" 269 case Condition_FieldPathSelectorParameterDeclarations: 270 item.ParameterDeclarations = nil 271 case Condition_FieldPathSelectorMetadata: 272 item.Metadata = nil 273 default: 274 panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector)) 275 } 276 } 277 } 278 279 func (fp *Condition_FieldTerminalPath) ClearValueRaw(item proto.Message) { 280 fp.ClearValue(item.(*Condition)) 281 } 282 283 // IsLeaf - whether field path is holds simple value 284 func (fp *Condition_FieldTerminalPath) IsLeaf() bool { 285 return fp.selector == Condition_FieldPathSelectorName || 286 fp.selector == Condition_FieldPathSelectorDisplayName || 287 fp.selector == Condition_FieldPathSelectorDescription || 288 fp.selector == Condition_FieldPathSelectorExpression 289 } 290 291 func (fp *Condition_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 292 return []gotenobject.FieldPath{fp} 293 } 294 295 func (fp *Condition_FieldTerminalPath) WithIValue(value interface{}) Condition_FieldPathValue { 296 switch fp.selector { 297 case Condition_FieldPathSelectorName: 298 return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(*Name)} 299 case Condition_FieldPathSelectorDisplayName: 300 return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(string)} 301 case Condition_FieldPathSelectorDescription: 302 return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(string)} 303 case Condition_FieldPathSelectorExpression: 304 return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(string)} 305 case Condition_FieldPathSelectorParameterDeclarations: 306 return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.([]*Condition_ParameterDeclaration)} 307 case Condition_FieldPathSelectorMetadata: 308 return &Condition_FieldTerminalPathValue{Condition_FieldTerminalPath: *fp, value: value.(*meta.Meta)} 309 default: 310 panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector)) 311 } 312 } 313 314 func (fp *Condition_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 315 return fp.WithIValue(value) 316 } 317 318 func (fp *Condition_FieldTerminalPath) WithIArrayOfValues(values interface{}) Condition_FieldPathArrayOfValues { 319 fpaov := &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp} 320 switch fp.selector { 321 case Condition_FieldPathSelectorName: 322 return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]*Name)} 323 case Condition_FieldPathSelectorDisplayName: 324 return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]string)} 325 case Condition_FieldPathSelectorDescription: 326 return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]string)} 327 case Condition_FieldPathSelectorExpression: 328 return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]string)} 329 case Condition_FieldPathSelectorParameterDeclarations: 330 return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([][]*Condition_ParameterDeclaration)} 331 case Condition_FieldPathSelectorMetadata: 332 return &Condition_FieldTerminalPathArrayOfValues{Condition_FieldTerminalPath: *fp, values: values.([]*meta.Meta)} 333 default: 334 panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector)) 335 } 336 return fpaov 337 } 338 339 func (fp *Condition_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 340 return fp.WithIArrayOfValues(values) 341 } 342 343 func (fp *Condition_FieldTerminalPath) WithIArrayItemValue(value interface{}) Condition_FieldPathArrayItemValue { 344 switch fp.selector { 345 case Condition_FieldPathSelectorParameterDeclarations: 346 return &Condition_FieldTerminalPathArrayItemValue{Condition_FieldTerminalPath: *fp, value: value.(*Condition_ParameterDeclaration)} 347 default: 348 panic(fmt.Sprintf("Invalid selector for Condition: %d", fp.selector)) 349 } 350 } 351 352 func (fp *Condition_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 353 return fp.WithIArrayItemValue(value) 354 } 355 356 type Condition_FieldSubPath struct { 357 selector Condition_FieldPathSelector 358 subPath gotenobject.FieldPath 359 } 360 361 var _ Condition_FieldPath = (*Condition_FieldSubPath)(nil) 362 363 func (fps *Condition_FieldSubPath) Selector() Condition_FieldPathSelector { 364 return fps.selector 365 } 366 func (fps *Condition_FieldSubPath) AsParameterDeclarationsSubPath() (ConditionParameterDeclaration_FieldPath, bool) { 367 res, ok := fps.subPath.(ConditionParameterDeclaration_FieldPath) 368 return res, ok 369 } 370 func (fps *Condition_FieldSubPath) AsMetadataSubPath() (meta.Meta_FieldPath, bool) { 371 res, ok := fps.subPath.(meta.Meta_FieldPath) 372 return res, ok 373 } 374 375 // String returns path representation in proto convention 376 func (fps *Condition_FieldSubPath) String() string { 377 return fps.selector.String() + "." + fps.subPath.String() 378 } 379 380 // JSONString returns path representation is JSON convention 381 func (fps *Condition_FieldSubPath) JSONString() string { 382 return strcase.ToLowerCamel(fps.selector.String()) + "." + fps.subPath.JSONString() 383 } 384 385 // Get returns all values pointed by selected field from source Condition 386 func (fps *Condition_FieldSubPath) Get(source *Condition) (values []interface{}) { 387 switch fps.selector { 388 case Condition_FieldPathSelectorParameterDeclarations: 389 for _, item := range source.GetParameterDeclarations() { 390 values = append(values, fps.subPath.GetRaw(item)...) 391 } 392 case Condition_FieldPathSelectorMetadata: 393 values = append(values, fps.subPath.GetRaw(source.GetMetadata())...) 394 default: 395 panic(fmt.Sprintf("Invalid selector for Condition: %d", fps.selector)) 396 } 397 return 398 } 399 400 func (fps *Condition_FieldSubPath) GetRaw(source proto.Message) []interface{} { 401 return fps.Get(source.(*Condition)) 402 } 403 404 // GetSingle returns value of selected field from source Condition 405 func (fps *Condition_FieldSubPath) GetSingle(source *Condition) (interface{}, bool) { 406 switch fps.selector { 407 case Condition_FieldPathSelectorParameterDeclarations: 408 if len(source.GetParameterDeclarations()) == 0 { 409 return nil, false 410 } 411 return fps.subPath.GetSingleRaw(source.GetParameterDeclarations()[0]) 412 case Condition_FieldPathSelectorMetadata: 413 if source.GetMetadata() == nil { 414 return nil, false 415 } 416 return fps.subPath.GetSingleRaw(source.GetMetadata()) 417 default: 418 panic(fmt.Sprintf("Invalid selector for Condition: %d", fps.selector)) 419 } 420 } 421 422 func (fps *Condition_FieldSubPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 423 return fps.GetSingle(source.(*Condition)) 424 } 425 426 // GetDefault returns a default value of the field type 427 func (fps *Condition_FieldSubPath) GetDefault() interface{} { 428 return fps.subPath.GetDefault() 429 } 430 431 func (fps *Condition_FieldSubPath) ClearValue(item *Condition) { 432 if item != nil { 433 switch fps.selector { 434 case Condition_FieldPathSelectorParameterDeclarations: 435 for _, subItem := range item.ParameterDeclarations { 436 fps.subPath.ClearValueRaw(subItem) 437 } 438 case Condition_FieldPathSelectorMetadata: 439 fps.subPath.ClearValueRaw(item.Metadata) 440 default: 441 panic(fmt.Sprintf("Invalid selector for Condition: %d", fps.selector)) 442 } 443 } 444 } 445 446 func (fps *Condition_FieldSubPath) ClearValueRaw(item proto.Message) { 447 fps.ClearValue(item.(*Condition)) 448 } 449 450 // IsLeaf - whether field path is holds simple value 451 func (fps *Condition_FieldSubPath) IsLeaf() bool { 452 return fps.subPath.IsLeaf() 453 } 454 455 func (fps *Condition_FieldSubPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 456 iPaths := []gotenobject.FieldPath{&Condition_FieldTerminalPath{selector: fps.selector}} 457 iPaths = append(iPaths, fps.subPath.SplitIntoTerminalIPaths()...) 458 return iPaths 459 } 460 461 func (fps *Condition_FieldSubPath) WithIValue(value interface{}) Condition_FieldPathValue { 462 return &Condition_FieldSubPathValue{fps, fps.subPath.WithRawIValue(value)} 463 } 464 465 func (fps *Condition_FieldSubPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 466 return fps.WithIValue(value) 467 } 468 469 func (fps *Condition_FieldSubPath) WithIArrayOfValues(values interface{}) Condition_FieldPathArrayOfValues { 470 return &Condition_FieldSubPathArrayOfValues{fps, fps.subPath.WithRawIArrayOfValues(values)} 471 } 472 473 func (fps *Condition_FieldSubPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 474 return fps.WithIArrayOfValues(values) 475 } 476 477 func (fps *Condition_FieldSubPath) WithIArrayItemValue(value interface{}) Condition_FieldPathArrayItemValue { 478 return &Condition_FieldSubPathArrayItemValue{fps, fps.subPath.WithRawIArrayItemValue(value)} 479 } 480 481 func (fps *Condition_FieldSubPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 482 return fps.WithIArrayItemValue(value) 483 } 484 485 // Condition_FieldPathValue allows storing values for Condition fields according to their type 486 type Condition_FieldPathValue interface { 487 Condition_FieldPath 488 gotenobject.FieldPathValue 489 SetTo(target **Condition) 490 CompareWith(*Condition) (cmp int, comparable bool) 491 } 492 493 func ParseCondition_FieldPathValue(pathStr, valueStr string) (Condition_FieldPathValue, error) { 494 fp, err := ParseCondition_FieldPath(pathStr) 495 if err != nil { 496 return nil, err 497 } 498 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 499 if err != nil { 500 return nil, status.Errorf(codes.InvalidArgument, "error parsing Condition field path value from %s: %v", valueStr, err) 501 } 502 return fpv.(Condition_FieldPathValue), nil 503 } 504 505 func MustParseCondition_FieldPathValue(pathStr, valueStr string) Condition_FieldPathValue { 506 fpv, err := ParseCondition_FieldPathValue(pathStr, valueStr) 507 if err != nil { 508 panic(err) 509 } 510 return fpv 511 } 512 513 type Condition_FieldTerminalPathValue struct { 514 Condition_FieldTerminalPath 515 value interface{} 516 } 517 518 var _ Condition_FieldPathValue = (*Condition_FieldTerminalPathValue)(nil) 519 520 // GetRawValue returns raw value stored under selected path for 'Condition' as interface{} 521 func (fpv *Condition_FieldTerminalPathValue) GetRawValue() interface{} { 522 return fpv.value 523 } 524 func (fpv *Condition_FieldTerminalPathValue) AsNameValue() (*Name, bool) { 525 res, ok := fpv.value.(*Name) 526 return res, ok 527 } 528 func (fpv *Condition_FieldTerminalPathValue) AsDisplayNameValue() (string, bool) { 529 res, ok := fpv.value.(string) 530 return res, ok 531 } 532 func (fpv *Condition_FieldTerminalPathValue) AsDescriptionValue() (string, bool) { 533 res, ok := fpv.value.(string) 534 return res, ok 535 } 536 func (fpv *Condition_FieldTerminalPathValue) AsExpressionValue() (string, bool) { 537 res, ok := fpv.value.(string) 538 return res, ok 539 } 540 func (fpv *Condition_FieldTerminalPathValue) AsParameterDeclarationsValue() ([]*Condition_ParameterDeclaration, bool) { 541 res, ok := fpv.value.([]*Condition_ParameterDeclaration) 542 return res, ok 543 } 544 func (fpv *Condition_FieldTerminalPathValue) AsMetadataValue() (*meta.Meta, bool) { 545 res, ok := fpv.value.(*meta.Meta) 546 return res, ok 547 } 548 549 // SetTo stores value for selected field for object Condition 550 func (fpv *Condition_FieldTerminalPathValue) SetTo(target **Condition) { 551 if *target == nil { 552 *target = new(Condition) 553 } 554 switch fpv.selector { 555 case Condition_FieldPathSelectorName: 556 (*target).Name = fpv.value.(*Name) 557 case Condition_FieldPathSelectorDisplayName: 558 (*target).DisplayName = fpv.value.(string) 559 case Condition_FieldPathSelectorDescription: 560 (*target).Description = fpv.value.(string) 561 case Condition_FieldPathSelectorExpression: 562 (*target).Expression = fpv.value.(string) 563 case Condition_FieldPathSelectorParameterDeclarations: 564 (*target).ParameterDeclarations = fpv.value.([]*Condition_ParameterDeclaration) 565 case Condition_FieldPathSelectorMetadata: 566 (*target).Metadata = fpv.value.(*meta.Meta) 567 default: 568 panic(fmt.Sprintf("Invalid selector for Condition: %d", fpv.selector)) 569 } 570 } 571 572 func (fpv *Condition_FieldTerminalPathValue) SetToRaw(target proto.Message) { 573 typedObject := target.(*Condition) 574 fpv.SetTo(&typedObject) 575 } 576 577 // CompareWith compares value in the 'Condition_FieldTerminalPathValue' with the value under path in 'Condition'. 578 func (fpv *Condition_FieldTerminalPathValue) CompareWith(source *Condition) (int, bool) { 579 switch fpv.selector { 580 case Condition_FieldPathSelectorName: 581 leftValue := fpv.value.(*Name) 582 rightValue := source.GetName() 583 if leftValue == nil { 584 if rightValue != nil { 585 return -1, true 586 } 587 return 0, true 588 } 589 if rightValue == nil { 590 return 1, true 591 } 592 if leftValue.String() == rightValue.String() { 593 return 0, true 594 } else if leftValue.String() < rightValue.String() { 595 return -1, true 596 } else { 597 return 1, true 598 } 599 case Condition_FieldPathSelectorDisplayName: 600 leftValue := fpv.value.(string) 601 rightValue := source.GetDisplayName() 602 if (leftValue) == (rightValue) { 603 return 0, true 604 } else if (leftValue) < (rightValue) { 605 return -1, true 606 } else { 607 return 1, true 608 } 609 case Condition_FieldPathSelectorDescription: 610 leftValue := fpv.value.(string) 611 rightValue := source.GetDescription() 612 if (leftValue) == (rightValue) { 613 return 0, true 614 } else if (leftValue) < (rightValue) { 615 return -1, true 616 } else { 617 return 1, true 618 } 619 case Condition_FieldPathSelectorExpression: 620 leftValue := fpv.value.(string) 621 rightValue := source.GetExpression() 622 if (leftValue) == (rightValue) { 623 return 0, true 624 } else if (leftValue) < (rightValue) { 625 return -1, true 626 } else { 627 return 1, true 628 } 629 case Condition_FieldPathSelectorParameterDeclarations: 630 return 0, false 631 case Condition_FieldPathSelectorMetadata: 632 return 0, false 633 default: 634 panic(fmt.Sprintf("Invalid selector for Condition: %d", fpv.selector)) 635 } 636 } 637 638 func (fpv *Condition_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 639 return fpv.CompareWith(source.(*Condition)) 640 } 641 642 type Condition_FieldSubPathValue struct { 643 Condition_FieldPath 644 subPathValue gotenobject.FieldPathValue 645 } 646 647 var _ Condition_FieldPathValue = (*Condition_FieldSubPathValue)(nil) 648 649 func (fpvs *Condition_FieldSubPathValue) AsParameterDeclarationsPathValue() (ConditionParameterDeclaration_FieldPathValue, bool) { 650 res, ok := fpvs.subPathValue.(ConditionParameterDeclaration_FieldPathValue) 651 return res, ok 652 } 653 func (fpvs *Condition_FieldSubPathValue) AsMetadataPathValue() (meta.Meta_FieldPathValue, bool) { 654 res, ok := fpvs.subPathValue.(meta.Meta_FieldPathValue) 655 return res, ok 656 } 657 658 func (fpvs *Condition_FieldSubPathValue) SetTo(target **Condition) { 659 if *target == nil { 660 *target = new(Condition) 661 } 662 switch fpvs.Selector() { 663 case Condition_FieldPathSelectorParameterDeclarations: 664 panic("FieldPath setter is unsupported for array subpaths") 665 case Condition_FieldPathSelectorMetadata: 666 fpvs.subPathValue.(meta.Meta_FieldPathValue).SetTo(&(*target).Metadata) 667 default: 668 panic(fmt.Sprintf("Invalid selector for Condition: %d", fpvs.Selector())) 669 } 670 } 671 672 func (fpvs *Condition_FieldSubPathValue) SetToRaw(target proto.Message) { 673 typedObject := target.(*Condition) 674 fpvs.SetTo(&typedObject) 675 } 676 677 func (fpvs *Condition_FieldSubPathValue) GetRawValue() interface{} { 678 return fpvs.subPathValue.GetRawValue() 679 } 680 681 func (fpvs *Condition_FieldSubPathValue) CompareWith(source *Condition) (int, bool) { 682 switch fpvs.Selector() { 683 case Condition_FieldPathSelectorParameterDeclarations: 684 return 0, false // repeated field 685 case Condition_FieldPathSelectorMetadata: 686 return fpvs.subPathValue.(meta.Meta_FieldPathValue).CompareWith(source.GetMetadata()) 687 default: 688 panic(fmt.Sprintf("Invalid selector for Condition: %d", fpvs.Selector())) 689 } 690 } 691 692 func (fpvs *Condition_FieldSubPathValue) CompareWithRaw(source proto.Message) (int, bool) { 693 return fpvs.CompareWith(source.(*Condition)) 694 } 695 696 // Condition_FieldPathArrayItemValue allows storing single item in Path-specific values for Condition according to their type 697 // Present only for array (repeated) types. 698 type Condition_FieldPathArrayItemValue interface { 699 gotenobject.FieldPathArrayItemValue 700 Condition_FieldPath 701 ContainsValue(*Condition) bool 702 } 703 704 // ParseCondition_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 705 func ParseCondition_FieldPathArrayItemValue(pathStr, valueStr string) (Condition_FieldPathArrayItemValue, error) { 706 fp, err := ParseCondition_FieldPath(pathStr) 707 if err != nil { 708 return nil, err 709 } 710 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 711 if err != nil { 712 return nil, status.Errorf(codes.InvalidArgument, "error parsing Condition field path array item value from %s: %v", valueStr, err) 713 } 714 return fpaiv.(Condition_FieldPathArrayItemValue), nil 715 } 716 717 func MustParseCondition_FieldPathArrayItemValue(pathStr, valueStr string) Condition_FieldPathArrayItemValue { 718 fpaiv, err := ParseCondition_FieldPathArrayItemValue(pathStr, valueStr) 719 if err != nil { 720 panic(err) 721 } 722 return fpaiv 723 } 724 725 type Condition_FieldTerminalPathArrayItemValue struct { 726 Condition_FieldTerminalPath 727 value interface{} 728 } 729 730 var _ Condition_FieldPathArrayItemValue = (*Condition_FieldTerminalPathArrayItemValue)(nil) 731 732 // GetRawValue returns stored element value for array in object Condition as interface{} 733 func (fpaiv *Condition_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 734 return fpaiv.value 735 } 736 func (fpaiv *Condition_FieldTerminalPathArrayItemValue) AsParameterDeclarationsItemValue() (*Condition_ParameterDeclaration, bool) { 737 res, ok := fpaiv.value.(*Condition_ParameterDeclaration) 738 return res, ok 739 } 740 741 func (fpaiv *Condition_FieldTerminalPathArrayItemValue) GetSingle(source *Condition) (interface{}, bool) { 742 return nil, false 743 } 744 745 func (fpaiv *Condition_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 746 return fpaiv.GetSingle(source.(*Condition)) 747 } 748 749 // Contains returns a boolean indicating if value that is being held is present in given 'Condition' 750 func (fpaiv *Condition_FieldTerminalPathArrayItemValue) ContainsValue(source *Condition) bool { 751 slice := fpaiv.Condition_FieldTerminalPath.Get(source) 752 for _, v := range slice { 753 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 754 if proto.Equal(asProtoMsg, v.(proto.Message)) { 755 return true 756 } 757 } else if reflect.DeepEqual(v, fpaiv.value) { 758 return true 759 } 760 } 761 return false 762 } 763 764 type Condition_FieldSubPathArrayItemValue struct { 765 Condition_FieldPath 766 subPathItemValue gotenobject.FieldPathArrayItemValue 767 } 768 769 // GetRawValue returns stored array item value 770 func (fpaivs *Condition_FieldSubPathArrayItemValue) GetRawItemValue() interface{} { 771 return fpaivs.subPathItemValue.GetRawItemValue() 772 } 773 func (fpaivs *Condition_FieldSubPathArrayItemValue) AsParameterDeclarationsPathItemValue() (ConditionParameterDeclaration_FieldPathArrayItemValue, bool) { 774 res, ok := fpaivs.subPathItemValue.(ConditionParameterDeclaration_FieldPathArrayItemValue) 775 return res, ok 776 } 777 func (fpaivs *Condition_FieldSubPathArrayItemValue) AsMetadataPathItemValue() (meta.Meta_FieldPathArrayItemValue, bool) { 778 res, ok := fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue) 779 return res, ok 780 } 781 782 // Contains returns a boolean indicating if value that is being held is present in given 'Condition' 783 func (fpaivs *Condition_FieldSubPathArrayItemValue) ContainsValue(source *Condition) bool { 784 switch fpaivs.Selector() { 785 case Condition_FieldPathSelectorParameterDeclarations: 786 return false // repeated/map field 787 case Condition_FieldPathSelectorMetadata: 788 return fpaivs.subPathItemValue.(meta.Meta_FieldPathArrayItemValue).ContainsValue(source.GetMetadata()) 789 default: 790 panic(fmt.Sprintf("Invalid selector for Condition: %d", fpaivs.Selector())) 791 } 792 } 793 794 // Condition_FieldPathArrayOfValues allows storing slice of values for Condition fields according to their type 795 type Condition_FieldPathArrayOfValues interface { 796 gotenobject.FieldPathArrayOfValues 797 Condition_FieldPath 798 } 799 800 func ParseCondition_FieldPathArrayOfValues(pathStr, valuesStr string) (Condition_FieldPathArrayOfValues, error) { 801 fp, err := ParseCondition_FieldPath(pathStr) 802 if err != nil { 803 return nil, err 804 } 805 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 806 if err != nil { 807 return nil, status.Errorf(codes.InvalidArgument, "error parsing Condition field path array of values from %s: %v", valuesStr, err) 808 } 809 return fpaov.(Condition_FieldPathArrayOfValues), nil 810 } 811 812 func MustParseCondition_FieldPathArrayOfValues(pathStr, valuesStr string) Condition_FieldPathArrayOfValues { 813 fpaov, err := ParseCondition_FieldPathArrayOfValues(pathStr, valuesStr) 814 if err != nil { 815 panic(err) 816 } 817 return fpaov 818 } 819 820 type Condition_FieldTerminalPathArrayOfValues struct { 821 Condition_FieldTerminalPath 822 values interface{} 823 } 824 825 var _ Condition_FieldPathArrayOfValues = (*Condition_FieldTerminalPathArrayOfValues)(nil) 826 827 func (fpaov *Condition_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 828 switch fpaov.selector { 829 case Condition_FieldPathSelectorName: 830 for _, v := range fpaov.values.([]*Name) { 831 values = append(values, v) 832 } 833 case Condition_FieldPathSelectorDisplayName: 834 for _, v := range fpaov.values.([]string) { 835 values = append(values, v) 836 } 837 case Condition_FieldPathSelectorDescription: 838 for _, v := range fpaov.values.([]string) { 839 values = append(values, v) 840 } 841 case Condition_FieldPathSelectorExpression: 842 for _, v := range fpaov.values.([]string) { 843 values = append(values, v) 844 } 845 case Condition_FieldPathSelectorParameterDeclarations: 846 for _, v := range fpaov.values.([][]*Condition_ParameterDeclaration) { 847 values = append(values, v) 848 } 849 case Condition_FieldPathSelectorMetadata: 850 for _, v := range fpaov.values.([]*meta.Meta) { 851 values = append(values, v) 852 } 853 } 854 return 855 } 856 func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsNameArrayOfValues() ([]*Name, bool) { 857 res, ok := fpaov.values.([]*Name) 858 return res, ok 859 } 860 func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsDisplayNameArrayOfValues() ([]string, bool) { 861 res, ok := fpaov.values.([]string) 862 return res, ok 863 } 864 func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsDescriptionArrayOfValues() ([]string, bool) { 865 res, ok := fpaov.values.([]string) 866 return res, ok 867 } 868 func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsExpressionArrayOfValues() ([]string, bool) { 869 res, ok := fpaov.values.([]string) 870 return res, ok 871 } 872 func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsParameterDeclarationsArrayOfValues() ([][]*Condition_ParameterDeclaration, bool) { 873 res, ok := fpaov.values.([][]*Condition_ParameterDeclaration) 874 return res, ok 875 } 876 func (fpaov *Condition_FieldTerminalPathArrayOfValues) AsMetadataArrayOfValues() ([]*meta.Meta, bool) { 877 res, ok := fpaov.values.([]*meta.Meta) 878 return res, ok 879 } 880 881 type Condition_FieldSubPathArrayOfValues struct { 882 Condition_FieldPath 883 subPathArrayOfValues gotenobject.FieldPathArrayOfValues 884 } 885 886 var _ Condition_FieldPathArrayOfValues = (*Condition_FieldSubPathArrayOfValues)(nil) 887 888 func (fpsaov *Condition_FieldSubPathArrayOfValues) GetRawValues() []interface{} { 889 return fpsaov.subPathArrayOfValues.GetRawValues() 890 } 891 func (fpsaov *Condition_FieldSubPathArrayOfValues) AsParameterDeclarationsPathArrayOfValues() (ConditionParameterDeclaration_FieldPathArrayOfValues, bool) { 892 res, ok := fpsaov.subPathArrayOfValues.(ConditionParameterDeclaration_FieldPathArrayOfValues) 893 return res, ok 894 } 895 func (fpsaov *Condition_FieldSubPathArrayOfValues) AsMetadataPathArrayOfValues() (meta.Meta_FieldPathArrayOfValues, bool) { 896 res, ok := fpsaov.subPathArrayOfValues.(meta.Meta_FieldPathArrayOfValues) 897 return res, ok 898 } 899 900 // FieldPath provides implementation to handle 901 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 902 type ConditionParameterDeclaration_FieldPath interface { 903 gotenobject.FieldPath 904 Selector() ConditionParameterDeclaration_FieldPathSelector 905 Get(source *Condition_ParameterDeclaration) []interface{} 906 GetSingle(source *Condition_ParameterDeclaration) (interface{}, bool) 907 ClearValue(item *Condition_ParameterDeclaration) 908 909 // Those methods build corresponding ConditionParameterDeclaration_FieldPathValue 910 // (or array of values) and holds passed value. Panics if injected type is incorrect. 911 WithIValue(value interface{}) ConditionParameterDeclaration_FieldPathValue 912 WithIArrayOfValues(values interface{}) ConditionParameterDeclaration_FieldPathArrayOfValues 913 WithIArrayItemValue(value interface{}) ConditionParameterDeclaration_FieldPathArrayItemValue 914 } 915 916 type ConditionParameterDeclaration_FieldPathSelector int32 917 918 const ( 919 ConditionParameterDeclaration_FieldPathSelectorKey ConditionParameterDeclaration_FieldPathSelector = 0 920 ConditionParameterDeclaration_FieldPathSelectorType ConditionParameterDeclaration_FieldPathSelector = 1 921 ) 922 923 func (s ConditionParameterDeclaration_FieldPathSelector) String() string { 924 switch s { 925 case ConditionParameterDeclaration_FieldPathSelectorKey: 926 return "key" 927 case ConditionParameterDeclaration_FieldPathSelectorType: 928 return "type" 929 default: 930 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", s)) 931 } 932 } 933 934 func BuildConditionParameterDeclaration_FieldPath(fp gotenobject.RawFieldPath) (ConditionParameterDeclaration_FieldPath, error) { 935 if len(fp) == 0 { 936 return nil, status.Error(codes.InvalidArgument, "empty field path for object Condition_ParameterDeclaration") 937 } 938 if len(fp) == 1 { 939 switch fp[0] { 940 case "key": 941 return &ConditionParameterDeclaration_FieldTerminalPath{selector: ConditionParameterDeclaration_FieldPathSelectorKey}, nil 942 case "type": 943 return &ConditionParameterDeclaration_FieldTerminalPath{selector: ConditionParameterDeclaration_FieldPathSelectorType}, nil 944 } 945 } 946 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object Condition_ParameterDeclaration", fp) 947 } 948 949 func ParseConditionParameterDeclaration_FieldPath(rawField string) (ConditionParameterDeclaration_FieldPath, error) { 950 fp, err := gotenobject.ParseRawFieldPath(rawField) 951 if err != nil { 952 return nil, err 953 } 954 return BuildConditionParameterDeclaration_FieldPath(fp) 955 } 956 957 func MustParseConditionParameterDeclaration_FieldPath(rawField string) ConditionParameterDeclaration_FieldPath { 958 fp, err := ParseConditionParameterDeclaration_FieldPath(rawField) 959 if err != nil { 960 panic(err) 961 } 962 return fp 963 } 964 965 type ConditionParameterDeclaration_FieldTerminalPath struct { 966 selector ConditionParameterDeclaration_FieldPathSelector 967 } 968 969 var _ ConditionParameterDeclaration_FieldPath = (*ConditionParameterDeclaration_FieldTerminalPath)(nil) 970 971 func (fp *ConditionParameterDeclaration_FieldTerminalPath) Selector() ConditionParameterDeclaration_FieldPathSelector { 972 return fp.selector 973 } 974 975 // String returns path representation in proto convention 976 func (fp *ConditionParameterDeclaration_FieldTerminalPath) String() string { 977 return fp.selector.String() 978 } 979 980 // JSONString returns path representation is JSON convention 981 func (fp *ConditionParameterDeclaration_FieldTerminalPath) JSONString() string { 982 return strcase.ToLowerCamel(fp.String()) 983 } 984 985 // Get returns all values pointed by specific field from source Condition_ParameterDeclaration 986 func (fp *ConditionParameterDeclaration_FieldTerminalPath) Get(source *Condition_ParameterDeclaration) (values []interface{}) { 987 if source != nil { 988 switch fp.selector { 989 case ConditionParameterDeclaration_FieldPathSelectorKey: 990 values = append(values, source.Key) 991 case ConditionParameterDeclaration_FieldPathSelectorType: 992 values = append(values, source.Type) 993 default: 994 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector)) 995 } 996 } 997 return 998 } 999 1000 func (fp *ConditionParameterDeclaration_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 1001 return fp.Get(source.(*Condition_ParameterDeclaration)) 1002 } 1003 1004 // GetSingle returns value pointed by specific field of from source Condition_ParameterDeclaration 1005 func (fp *ConditionParameterDeclaration_FieldTerminalPath) GetSingle(source *Condition_ParameterDeclaration) (interface{}, bool) { 1006 switch fp.selector { 1007 case ConditionParameterDeclaration_FieldPathSelectorKey: 1008 return source.GetKey(), source != nil 1009 case ConditionParameterDeclaration_FieldPathSelectorType: 1010 return source.GetType(), source != nil 1011 default: 1012 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector)) 1013 } 1014 } 1015 1016 func (fp *ConditionParameterDeclaration_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1017 return fp.GetSingle(source.(*Condition_ParameterDeclaration)) 1018 } 1019 1020 // GetDefault returns a default value of the field type 1021 func (fp *ConditionParameterDeclaration_FieldTerminalPath) GetDefault() interface{} { 1022 switch fp.selector { 1023 case ConditionParameterDeclaration_FieldPathSelectorKey: 1024 return "" 1025 case ConditionParameterDeclaration_FieldPathSelectorType: 1026 return Condition_TYPE_UNSPECIFIED 1027 default: 1028 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector)) 1029 } 1030 } 1031 1032 func (fp *ConditionParameterDeclaration_FieldTerminalPath) ClearValue(item *Condition_ParameterDeclaration) { 1033 if item != nil { 1034 switch fp.selector { 1035 case ConditionParameterDeclaration_FieldPathSelectorKey: 1036 item.Key = "" 1037 case ConditionParameterDeclaration_FieldPathSelectorType: 1038 item.Type = Condition_TYPE_UNSPECIFIED 1039 default: 1040 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector)) 1041 } 1042 } 1043 } 1044 1045 func (fp *ConditionParameterDeclaration_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1046 fp.ClearValue(item.(*Condition_ParameterDeclaration)) 1047 } 1048 1049 // IsLeaf - whether field path is holds simple value 1050 func (fp *ConditionParameterDeclaration_FieldTerminalPath) IsLeaf() bool { 1051 return fp.selector == ConditionParameterDeclaration_FieldPathSelectorKey || 1052 fp.selector == ConditionParameterDeclaration_FieldPathSelectorType 1053 } 1054 1055 func (fp *ConditionParameterDeclaration_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1056 return []gotenobject.FieldPath{fp} 1057 } 1058 1059 func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithIValue(value interface{}) ConditionParameterDeclaration_FieldPathValue { 1060 switch fp.selector { 1061 case ConditionParameterDeclaration_FieldPathSelectorKey: 1062 return &ConditionParameterDeclaration_FieldTerminalPathValue{ConditionParameterDeclaration_FieldTerminalPath: *fp, value: value.(string)} 1063 case ConditionParameterDeclaration_FieldPathSelectorType: 1064 return &ConditionParameterDeclaration_FieldTerminalPathValue{ConditionParameterDeclaration_FieldTerminalPath: *fp, value: value.(Condition_ParameterType)} 1065 default: 1066 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector)) 1067 } 1068 } 1069 1070 func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1071 return fp.WithIValue(value) 1072 } 1073 1074 func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithIArrayOfValues(values interface{}) ConditionParameterDeclaration_FieldPathArrayOfValues { 1075 fpaov := &ConditionParameterDeclaration_FieldTerminalPathArrayOfValues{ConditionParameterDeclaration_FieldTerminalPath: *fp} 1076 switch fp.selector { 1077 case ConditionParameterDeclaration_FieldPathSelectorKey: 1078 return &ConditionParameterDeclaration_FieldTerminalPathArrayOfValues{ConditionParameterDeclaration_FieldTerminalPath: *fp, values: values.([]string)} 1079 case ConditionParameterDeclaration_FieldPathSelectorType: 1080 return &ConditionParameterDeclaration_FieldTerminalPathArrayOfValues{ConditionParameterDeclaration_FieldTerminalPath: *fp, values: values.([]Condition_ParameterType)} 1081 default: 1082 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector)) 1083 } 1084 return fpaov 1085 } 1086 1087 func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1088 return fp.WithIArrayOfValues(values) 1089 } 1090 1091 func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithIArrayItemValue(value interface{}) ConditionParameterDeclaration_FieldPathArrayItemValue { 1092 switch fp.selector { 1093 default: 1094 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fp.selector)) 1095 } 1096 } 1097 1098 func (fp *ConditionParameterDeclaration_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1099 return fp.WithIArrayItemValue(value) 1100 } 1101 1102 // ConditionParameterDeclaration_FieldPathValue allows storing values for ParameterDeclaration fields according to their type 1103 type ConditionParameterDeclaration_FieldPathValue interface { 1104 ConditionParameterDeclaration_FieldPath 1105 gotenobject.FieldPathValue 1106 SetTo(target **Condition_ParameterDeclaration) 1107 CompareWith(*Condition_ParameterDeclaration) (cmp int, comparable bool) 1108 } 1109 1110 func ParseConditionParameterDeclaration_FieldPathValue(pathStr, valueStr string) (ConditionParameterDeclaration_FieldPathValue, error) { 1111 fp, err := ParseConditionParameterDeclaration_FieldPath(pathStr) 1112 if err != nil { 1113 return nil, err 1114 } 1115 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1116 if err != nil { 1117 return nil, status.Errorf(codes.InvalidArgument, "error parsing ParameterDeclaration field path value from %s: %v", valueStr, err) 1118 } 1119 return fpv.(ConditionParameterDeclaration_FieldPathValue), nil 1120 } 1121 1122 func MustParseConditionParameterDeclaration_FieldPathValue(pathStr, valueStr string) ConditionParameterDeclaration_FieldPathValue { 1123 fpv, err := ParseConditionParameterDeclaration_FieldPathValue(pathStr, valueStr) 1124 if err != nil { 1125 panic(err) 1126 } 1127 return fpv 1128 } 1129 1130 type ConditionParameterDeclaration_FieldTerminalPathValue struct { 1131 ConditionParameterDeclaration_FieldTerminalPath 1132 value interface{} 1133 } 1134 1135 var _ ConditionParameterDeclaration_FieldPathValue = (*ConditionParameterDeclaration_FieldTerminalPathValue)(nil) 1136 1137 // GetRawValue returns raw value stored under selected path for 'ParameterDeclaration' as interface{} 1138 func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) GetRawValue() interface{} { 1139 return fpv.value 1140 } 1141 func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) AsKeyValue() (string, bool) { 1142 res, ok := fpv.value.(string) 1143 return res, ok 1144 } 1145 func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) AsTypeValue() (Condition_ParameterType, bool) { 1146 res, ok := fpv.value.(Condition_ParameterType) 1147 return res, ok 1148 } 1149 1150 // SetTo stores value for selected field for object ParameterDeclaration 1151 func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) SetTo(target **Condition_ParameterDeclaration) { 1152 if *target == nil { 1153 *target = new(Condition_ParameterDeclaration) 1154 } 1155 switch fpv.selector { 1156 case ConditionParameterDeclaration_FieldPathSelectorKey: 1157 (*target).Key = fpv.value.(string) 1158 case ConditionParameterDeclaration_FieldPathSelectorType: 1159 (*target).Type = fpv.value.(Condition_ParameterType) 1160 default: 1161 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fpv.selector)) 1162 } 1163 } 1164 1165 func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) SetToRaw(target proto.Message) { 1166 typedObject := target.(*Condition_ParameterDeclaration) 1167 fpv.SetTo(&typedObject) 1168 } 1169 1170 // CompareWith compares value in the 'ConditionParameterDeclaration_FieldTerminalPathValue' with the value under path in 'Condition_ParameterDeclaration'. 1171 func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) CompareWith(source *Condition_ParameterDeclaration) (int, bool) { 1172 switch fpv.selector { 1173 case ConditionParameterDeclaration_FieldPathSelectorKey: 1174 leftValue := fpv.value.(string) 1175 rightValue := source.GetKey() 1176 if (leftValue) == (rightValue) { 1177 return 0, true 1178 } else if (leftValue) < (rightValue) { 1179 return -1, true 1180 } else { 1181 return 1, true 1182 } 1183 case ConditionParameterDeclaration_FieldPathSelectorType: 1184 leftValue := fpv.value.(Condition_ParameterType) 1185 rightValue := source.GetType() 1186 if (leftValue) == (rightValue) { 1187 return 0, true 1188 } else if (leftValue) < (rightValue) { 1189 return -1, true 1190 } else { 1191 return 1, true 1192 } 1193 default: 1194 panic(fmt.Sprintf("Invalid selector for Condition_ParameterDeclaration: %d", fpv.selector)) 1195 } 1196 } 1197 1198 func (fpv *ConditionParameterDeclaration_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1199 return fpv.CompareWith(source.(*Condition_ParameterDeclaration)) 1200 } 1201 1202 // ConditionParameterDeclaration_FieldPathArrayItemValue allows storing single item in Path-specific values for ParameterDeclaration according to their type 1203 // Present only for array (repeated) types. 1204 type ConditionParameterDeclaration_FieldPathArrayItemValue interface { 1205 gotenobject.FieldPathArrayItemValue 1206 ConditionParameterDeclaration_FieldPath 1207 ContainsValue(*Condition_ParameterDeclaration) bool 1208 } 1209 1210 // ParseConditionParameterDeclaration_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1211 func ParseConditionParameterDeclaration_FieldPathArrayItemValue(pathStr, valueStr string) (ConditionParameterDeclaration_FieldPathArrayItemValue, error) { 1212 fp, err := ParseConditionParameterDeclaration_FieldPath(pathStr) 1213 if err != nil { 1214 return nil, err 1215 } 1216 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1217 if err != nil { 1218 return nil, status.Errorf(codes.InvalidArgument, "error parsing ParameterDeclaration field path array item value from %s: %v", valueStr, err) 1219 } 1220 return fpaiv.(ConditionParameterDeclaration_FieldPathArrayItemValue), nil 1221 } 1222 1223 func MustParseConditionParameterDeclaration_FieldPathArrayItemValue(pathStr, valueStr string) ConditionParameterDeclaration_FieldPathArrayItemValue { 1224 fpaiv, err := ParseConditionParameterDeclaration_FieldPathArrayItemValue(pathStr, valueStr) 1225 if err != nil { 1226 panic(err) 1227 } 1228 return fpaiv 1229 } 1230 1231 type ConditionParameterDeclaration_FieldTerminalPathArrayItemValue struct { 1232 ConditionParameterDeclaration_FieldTerminalPath 1233 value interface{} 1234 } 1235 1236 var _ ConditionParameterDeclaration_FieldPathArrayItemValue = (*ConditionParameterDeclaration_FieldTerminalPathArrayItemValue)(nil) 1237 1238 // GetRawValue returns stored element value for array in object Condition_ParameterDeclaration as interface{} 1239 func (fpaiv *ConditionParameterDeclaration_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1240 return fpaiv.value 1241 } 1242 1243 func (fpaiv *ConditionParameterDeclaration_FieldTerminalPathArrayItemValue) GetSingle(source *Condition_ParameterDeclaration) (interface{}, bool) { 1244 return nil, false 1245 } 1246 1247 func (fpaiv *ConditionParameterDeclaration_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1248 return fpaiv.GetSingle(source.(*Condition_ParameterDeclaration)) 1249 } 1250 1251 // Contains returns a boolean indicating if value that is being held is present in given 'ParameterDeclaration' 1252 func (fpaiv *ConditionParameterDeclaration_FieldTerminalPathArrayItemValue) ContainsValue(source *Condition_ParameterDeclaration) bool { 1253 slice := fpaiv.ConditionParameterDeclaration_FieldTerminalPath.Get(source) 1254 for _, v := range slice { 1255 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1256 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1257 return true 1258 } 1259 } else if reflect.DeepEqual(v, fpaiv.value) { 1260 return true 1261 } 1262 } 1263 return false 1264 } 1265 1266 // ConditionParameterDeclaration_FieldPathArrayOfValues allows storing slice of values for ParameterDeclaration fields according to their type 1267 type ConditionParameterDeclaration_FieldPathArrayOfValues interface { 1268 gotenobject.FieldPathArrayOfValues 1269 ConditionParameterDeclaration_FieldPath 1270 } 1271 1272 func ParseConditionParameterDeclaration_FieldPathArrayOfValues(pathStr, valuesStr string) (ConditionParameterDeclaration_FieldPathArrayOfValues, error) { 1273 fp, err := ParseConditionParameterDeclaration_FieldPath(pathStr) 1274 if err != nil { 1275 return nil, err 1276 } 1277 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1278 if err != nil { 1279 return nil, status.Errorf(codes.InvalidArgument, "error parsing ParameterDeclaration field path array of values from %s: %v", valuesStr, err) 1280 } 1281 return fpaov.(ConditionParameterDeclaration_FieldPathArrayOfValues), nil 1282 } 1283 1284 func MustParseConditionParameterDeclaration_FieldPathArrayOfValues(pathStr, valuesStr string) ConditionParameterDeclaration_FieldPathArrayOfValues { 1285 fpaov, err := ParseConditionParameterDeclaration_FieldPathArrayOfValues(pathStr, valuesStr) 1286 if err != nil { 1287 panic(err) 1288 } 1289 return fpaov 1290 } 1291 1292 type ConditionParameterDeclaration_FieldTerminalPathArrayOfValues struct { 1293 ConditionParameterDeclaration_FieldTerminalPath 1294 values interface{} 1295 } 1296 1297 var _ ConditionParameterDeclaration_FieldPathArrayOfValues = (*ConditionParameterDeclaration_FieldTerminalPathArrayOfValues)(nil) 1298 1299 func (fpaov *ConditionParameterDeclaration_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1300 switch fpaov.selector { 1301 case ConditionParameterDeclaration_FieldPathSelectorKey: 1302 for _, v := range fpaov.values.([]string) { 1303 values = append(values, v) 1304 } 1305 case ConditionParameterDeclaration_FieldPathSelectorType: 1306 for _, v := range fpaov.values.([]Condition_ParameterType) { 1307 values = append(values, v) 1308 } 1309 } 1310 return 1311 } 1312 func (fpaov *ConditionParameterDeclaration_FieldTerminalPathArrayOfValues) AsKeyArrayOfValues() ([]string, bool) { 1313 res, ok := fpaov.values.([]string) 1314 return res, ok 1315 } 1316 func (fpaov *ConditionParameterDeclaration_FieldTerminalPathArrayOfValues) AsTypeArrayOfValues() ([]Condition_ParameterType, bool) { 1317 res, ok := fpaov.values.([]Condition_ParameterType) 1318 return res, ok 1319 } 1320 1321 // FieldPath provides implementation to handle 1322 // https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto 1323 type ConditionBinding_FieldPath interface { 1324 gotenobject.FieldPath 1325 Selector() ConditionBinding_FieldPathSelector 1326 Get(source *ConditionBinding) []interface{} 1327 GetSingle(source *ConditionBinding) (interface{}, bool) 1328 ClearValue(item *ConditionBinding) 1329 1330 // Those methods build corresponding ConditionBinding_FieldPathValue 1331 // (or array of values) and holds passed value. Panics if injected type is incorrect. 1332 WithIValue(value interface{}) ConditionBinding_FieldPathValue 1333 WithIArrayOfValues(values interface{}) ConditionBinding_FieldPathArrayOfValues 1334 WithIArrayItemValue(value interface{}) ConditionBinding_FieldPathArrayItemValue 1335 } 1336 1337 type ConditionBinding_FieldPathSelector int32 1338 1339 const ( 1340 ConditionBinding_FieldPathSelectorCondition ConditionBinding_FieldPathSelector = 0 1341 ConditionBinding_FieldPathSelectorParameters ConditionBinding_FieldPathSelector = 1 1342 ConditionBinding_FieldPathSelectorParams ConditionBinding_FieldPathSelector = 2 1343 ) 1344 1345 func (s ConditionBinding_FieldPathSelector) String() string { 1346 switch s { 1347 case ConditionBinding_FieldPathSelectorCondition: 1348 return "condition" 1349 case ConditionBinding_FieldPathSelectorParameters: 1350 return "parameters" 1351 case ConditionBinding_FieldPathSelectorParams: 1352 return "params" 1353 default: 1354 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", s)) 1355 } 1356 } 1357 1358 func BuildConditionBinding_FieldPath(fp gotenobject.RawFieldPath) (ConditionBinding_FieldPath, error) { 1359 if len(fp) == 0 { 1360 return nil, status.Error(codes.InvalidArgument, "empty field path for object ConditionBinding") 1361 } 1362 if len(fp) == 1 { 1363 switch fp[0] { 1364 case "condition": 1365 return &ConditionBinding_FieldTerminalPath{selector: ConditionBinding_FieldPathSelectorCondition}, nil 1366 case "parameters": 1367 return &ConditionBinding_FieldTerminalPath{selector: ConditionBinding_FieldPathSelectorParameters}, nil 1368 case "params": 1369 return &ConditionBinding_FieldTerminalPath{selector: ConditionBinding_FieldPathSelectorParams}, nil 1370 } 1371 } else { 1372 switch fp[0] { 1373 case "parameters": 1374 if len(fp) > 2 { 1375 return nil, status.Errorf(codes.InvalidArgument, "sub path for maps ('%s') are not supported (object ConditionBinding)", fp) 1376 } 1377 return &ConditionBinding_FieldPathMap{selector: ConditionBinding_FieldPathSelectorParameters, key: fp[1]}, nil 1378 } 1379 } 1380 return nil, status.Errorf(codes.InvalidArgument, "unknown field path '%s' for object ConditionBinding", fp) 1381 } 1382 1383 func ParseConditionBinding_FieldPath(rawField string) (ConditionBinding_FieldPath, error) { 1384 fp, err := gotenobject.ParseRawFieldPath(rawField) 1385 if err != nil { 1386 return nil, err 1387 } 1388 return BuildConditionBinding_FieldPath(fp) 1389 } 1390 1391 func MustParseConditionBinding_FieldPath(rawField string) ConditionBinding_FieldPath { 1392 fp, err := ParseConditionBinding_FieldPath(rawField) 1393 if err != nil { 1394 panic(err) 1395 } 1396 return fp 1397 } 1398 1399 type ConditionBinding_FieldTerminalPath struct { 1400 selector ConditionBinding_FieldPathSelector 1401 } 1402 1403 var _ ConditionBinding_FieldPath = (*ConditionBinding_FieldTerminalPath)(nil) 1404 1405 func (fp *ConditionBinding_FieldTerminalPath) Selector() ConditionBinding_FieldPathSelector { 1406 return fp.selector 1407 } 1408 1409 // String returns path representation in proto convention 1410 func (fp *ConditionBinding_FieldTerminalPath) String() string { 1411 return fp.selector.String() 1412 } 1413 1414 // JSONString returns path representation is JSON convention 1415 func (fp *ConditionBinding_FieldTerminalPath) JSONString() string { 1416 return strcase.ToLowerCamel(fp.String()) 1417 } 1418 1419 // Get returns all values pointed by specific field from source ConditionBinding 1420 func (fp *ConditionBinding_FieldTerminalPath) Get(source *ConditionBinding) (values []interface{}) { 1421 if source != nil { 1422 switch fp.selector { 1423 case ConditionBinding_FieldPathSelectorCondition: 1424 if source.Condition != nil { 1425 values = append(values, source.Condition) 1426 } 1427 case ConditionBinding_FieldPathSelectorParameters: 1428 values = append(values, source.Parameters) 1429 case ConditionBinding_FieldPathSelectorParams: 1430 if source.Params != nil { 1431 values = append(values, source.Params) 1432 } 1433 default: 1434 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector)) 1435 } 1436 } 1437 return 1438 } 1439 1440 func (fp *ConditionBinding_FieldTerminalPath) GetRaw(source proto.Message) []interface{} { 1441 return fp.Get(source.(*ConditionBinding)) 1442 } 1443 1444 // GetSingle returns value pointed by specific field of from source ConditionBinding 1445 func (fp *ConditionBinding_FieldTerminalPath) GetSingle(source *ConditionBinding) (interface{}, bool) { 1446 switch fp.selector { 1447 case ConditionBinding_FieldPathSelectorCondition: 1448 res := source.GetCondition() 1449 return res, res != nil 1450 case ConditionBinding_FieldPathSelectorParameters: 1451 res := source.GetParameters() 1452 return res, res != nil 1453 case ConditionBinding_FieldPathSelectorParams: 1454 res := source.GetParams() 1455 return res, res != nil 1456 default: 1457 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector)) 1458 } 1459 } 1460 1461 func (fp *ConditionBinding_FieldTerminalPath) GetSingleRaw(source proto.Message) (interface{}, bool) { 1462 return fp.GetSingle(source.(*ConditionBinding)) 1463 } 1464 1465 // GetDefault returns a default value of the field type 1466 func (fp *ConditionBinding_FieldTerminalPath) GetDefault() interface{} { 1467 switch fp.selector { 1468 case ConditionBinding_FieldPathSelectorCondition: 1469 return (*Reference)(nil) 1470 case ConditionBinding_FieldPathSelectorParameters: 1471 return (map[string]string)(nil) 1472 case ConditionBinding_FieldPathSelectorParams: 1473 return (*structpb.Struct)(nil) 1474 default: 1475 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector)) 1476 } 1477 } 1478 1479 func (fp *ConditionBinding_FieldTerminalPath) ClearValue(item *ConditionBinding) { 1480 if item != nil { 1481 switch fp.selector { 1482 case ConditionBinding_FieldPathSelectorCondition: 1483 item.Condition = nil 1484 case ConditionBinding_FieldPathSelectorParameters: 1485 item.Parameters = nil 1486 case ConditionBinding_FieldPathSelectorParams: 1487 item.Params = nil 1488 default: 1489 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector)) 1490 } 1491 } 1492 } 1493 1494 func (fp *ConditionBinding_FieldTerminalPath) ClearValueRaw(item proto.Message) { 1495 fp.ClearValue(item.(*ConditionBinding)) 1496 } 1497 1498 // IsLeaf - whether field path is holds simple value 1499 func (fp *ConditionBinding_FieldTerminalPath) IsLeaf() bool { 1500 return fp.selector == ConditionBinding_FieldPathSelectorCondition || 1501 fp.selector == ConditionBinding_FieldPathSelectorParameters || 1502 fp.selector == ConditionBinding_FieldPathSelectorParams 1503 } 1504 1505 func (fp *ConditionBinding_FieldTerminalPath) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1506 return []gotenobject.FieldPath{fp} 1507 } 1508 1509 func (fp *ConditionBinding_FieldTerminalPath) WithIValue(value interface{}) ConditionBinding_FieldPathValue { 1510 switch fp.selector { 1511 case ConditionBinding_FieldPathSelectorCondition: 1512 return &ConditionBinding_FieldTerminalPathValue{ConditionBinding_FieldTerminalPath: *fp, value: value.(*Reference)} 1513 case ConditionBinding_FieldPathSelectorParameters: 1514 return &ConditionBinding_FieldTerminalPathValue{ConditionBinding_FieldTerminalPath: *fp, value: value.(map[string]string)} 1515 case ConditionBinding_FieldPathSelectorParams: 1516 return &ConditionBinding_FieldTerminalPathValue{ConditionBinding_FieldTerminalPath: *fp, value: value.(*structpb.Struct)} 1517 default: 1518 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector)) 1519 } 1520 } 1521 1522 func (fp *ConditionBinding_FieldTerminalPath) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1523 return fp.WithIValue(value) 1524 } 1525 1526 func (fp *ConditionBinding_FieldTerminalPath) WithIArrayOfValues(values interface{}) ConditionBinding_FieldPathArrayOfValues { 1527 fpaov := &ConditionBinding_FieldTerminalPathArrayOfValues{ConditionBinding_FieldTerminalPath: *fp} 1528 switch fp.selector { 1529 case ConditionBinding_FieldPathSelectorCondition: 1530 return &ConditionBinding_FieldTerminalPathArrayOfValues{ConditionBinding_FieldTerminalPath: *fp, values: values.([]*Reference)} 1531 case ConditionBinding_FieldPathSelectorParameters: 1532 return &ConditionBinding_FieldTerminalPathArrayOfValues{ConditionBinding_FieldTerminalPath: *fp, values: values.([]map[string]string)} 1533 case ConditionBinding_FieldPathSelectorParams: 1534 return &ConditionBinding_FieldTerminalPathArrayOfValues{ConditionBinding_FieldTerminalPath: *fp, values: values.([]*structpb.Struct)} 1535 default: 1536 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector)) 1537 } 1538 return fpaov 1539 } 1540 1541 func (fp *ConditionBinding_FieldTerminalPath) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1542 return fp.WithIArrayOfValues(values) 1543 } 1544 1545 func (fp *ConditionBinding_FieldTerminalPath) WithIArrayItemValue(value interface{}) ConditionBinding_FieldPathArrayItemValue { 1546 switch fp.selector { 1547 default: 1548 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fp.selector)) 1549 } 1550 } 1551 1552 func (fp *ConditionBinding_FieldTerminalPath) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1553 return fp.WithIArrayItemValue(value) 1554 } 1555 1556 // FieldPath for map type with additional Key information 1557 type ConditionBinding_FieldPathMap struct { 1558 key string 1559 selector ConditionBinding_FieldPathSelector 1560 } 1561 1562 var _ ConditionBinding_FieldPath = (*ConditionBinding_FieldPathMap)(nil) 1563 1564 func (fpm *ConditionBinding_FieldPathMap) Selector() ConditionBinding_FieldPathSelector { 1565 return fpm.selector 1566 } 1567 1568 func (fpm *ConditionBinding_FieldPathMap) Key() string { 1569 return fpm.key 1570 } 1571 1572 // String returns path representation in proto convention 1573 func (fpm *ConditionBinding_FieldPathMap) String() string { 1574 return fpm.selector.String() + "." + fpm.key 1575 } 1576 1577 // JSONString returns path representation is JSON convention. Note that map keys are not transformed 1578 func (fpm *ConditionBinding_FieldPathMap) JSONString() string { 1579 return strcase.ToLowerCamel(fpm.selector.String()) + "." + fpm.key 1580 } 1581 1582 // Get returns all values pointed by selected field map key from source ConditionBinding 1583 func (fpm *ConditionBinding_FieldPathMap) Get(source *ConditionBinding) (values []interface{}) { 1584 switch fpm.selector { 1585 case ConditionBinding_FieldPathSelectorParameters: 1586 if value, ok := source.GetParameters()[fpm.key]; ok { 1587 values = append(values, value) 1588 } 1589 default: 1590 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector)) 1591 } 1592 return 1593 } 1594 1595 func (fpm *ConditionBinding_FieldPathMap) GetRaw(source proto.Message) []interface{} { 1596 return fpm.Get(source.(*ConditionBinding)) 1597 } 1598 1599 // GetSingle returns value by selected field map key from source ConditionBinding 1600 func (fpm *ConditionBinding_FieldPathMap) GetSingle(source *ConditionBinding) (interface{}, bool) { 1601 switch fpm.selector { 1602 case ConditionBinding_FieldPathSelectorParameters: 1603 res, ok := source.GetParameters()[fpm.key] 1604 return res, ok 1605 default: 1606 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector)) 1607 } 1608 } 1609 1610 func (fpm *ConditionBinding_FieldPathMap) GetSingleRaw(source proto.Message) (interface{}, bool) { 1611 return fpm.GetSingle(source.(*ConditionBinding)) 1612 } 1613 1614 // GetDefault returns a default value of the field type 1615 func (fpm *ConditionBinding_FieldPathMap) GetDefault() interface{} { 1616 switch fpm.selector { 1617 case ConditionBinding_FieldPathSelectorParameters: 1618 var v string 1619 return v 1620 default: 1621 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector)) 1622 } 1623 } 1624 1625 func (fpm *ConditionBinding_FieldPathMap) ClearValue(item *ConditionBinding) { 1626 if item != nil { 1627 switch fpm.selector { 1628 case ConditionBinding_FieldPathSelectorParameters: 1629 delete(item.Parameters, fpm.key) 1630 default: 1631 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector)) 1632 } 1633 } 1634 } 1635 1636 func (fpm *ConditionBinding_FieldPathMap) ClearValueRaw(item proto.Message) { 1637 fpm.ClearValue(item.(*ConditionBinding)) 1638 } 1639 1640 // IsLeaf - whether field path is holds simple value 1641 func (fpm *ConditionBinding_FieldPathMap) IsLeaf() bool { 1642 switch fpm.selector { 1643 case ConditionBinding_FieldPathSelectorParameters: 1644 return true 1645 default: 1646 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector)) 1647 } 1648 } 1649 1650 func (fpm *ConditionBinding_FieldPathMap) SplitIntoTerminalIPaths() []gotenobject.FieldPath { 1651 return []gotenobject.FieldPath{fpm} 1652 } 1653 1654 func (fpm *ConditionBinding_FieldPathMap) WithIValue(value interface{}) ConditionBinding_FieldPathValue { 1655 switch fpm.selector { 1656 case ConditionBinding_FieldPathSelectorParameters: 1657 return &ConditionBinding_FieldPathMapValue{ConditionBinding_FieldPathMap: *fpm, value: value.(string)} 1658 default: 1659 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector)) 1660 } 1661 } 1662 1663 func (fpm *ConditionBinding_FieldPathMap) WithRawIValue(value interface{}) gotenobject.FieldPathValue { 1664 return fpm.WithIValue(value) 1665 } 1666 1667 func (fpm *ConditionBinding_FieldPathMap) WithIArrayOfValues(values interface{}) ConditionBinding_FieldPathArrayOfValues { 1668 switch fpm.selector { 1669 case ConditionBinding_FieldPathSelectorParameters: 1670 return &ConditionBinding_FieldPathMapArrayOfValues{ConditionBinding_FieldPathMap: *fpm, values: values.([]string)} 1671 default: 1672 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpm.selector)) 1673 } 1674 } 1675 1676 func (fpm *ConditionBinding_FieldPathMap) WithRawIArrayOfValues(values interface{}) gotenobject.FieldPathArrayOfValues { 1677 return fpm.WithIArrayOfValues(values) 1678 } 1679 1680 func (fpm *ConditionBinding_FieldPathMap) WithIArrayItemValue(value interface{}) ConditionBinding_FieldPathArrayItemValue { 1681 panic("Cannot create array item value from map fieldpath") 1682 } 1683 1684 func (fpm *ConditionBinding_FieldPathMap) WithRawIArrayItemValue(value interface{}) gotenobject.FieldPathArrayItemValue { 1685 return fpm.WithIArrayItemValue(value) 1686 } 1687 1688 // ConditionBinding_FieldPathValue allows storing values for ConditionBinding fields according to their type 1689 type ConditionBinding_FieldPathValue interface { 1690 ConditionBinding_FieldPath 1691 gotenobject.FieldPathValue 1692 SetTo(target **ConditionBinding) 1693 CompareWith(*ConditionBinding) (cmp int, comparable bool) 1694 } 1695 1696 func ParseConditionBinding_FieldPathValue(pathStr, valueStr string) (ConditionBinding_FieldPathValue, error) { 1697 fp, err := ParseConditionBinding_FieldPath(pathStr) 1698 if err != nil { 1699 return nil, err 1700 } 1701 fpv, err := gotenobject.ParseFieldPathValue(fp, valueStr) 1702 if err != nil { 1703 return nil, status.Errorf(codes.InvalidArgument, "error parsing ConditionBinding field path value from %s: %v", valueStr, err) 1704 } 1705 return fpv.(ConditionBinding_FieldPathValue), nil 1706 } 1707 1708 func MustParseConditionBinding_FieldPathValue(pathStr, valueStr string) ConditionBinding_FieldPathValue { 1709 fpv, err := ParseConditionBinding_FieldPathValue(pathStr, valueStr) 1710 if err != nil { 1711 panic(err) 1712 } 1713 return fpv 1714 } 1715 1716 type ConditionBinding_FieldTerminalPathValue struct { 1717 ConditionBinding_FieldTerminalPath 1718 value interface{} 1719 } 1720 1721 var _ ConditionBinding_FieldPathValue = (*ConditionBinding_FieldTerminalPathValue)(nil) 1722 1723 // GetRawValue returns raw value stored under selected path for 'ConditionBinding' as interface{} 1724 func (fpv *ConditionBinding_FieldTerminalPathValue) GetRawValue() interface{} { 1725 return fpv.value 1726 } 1727 func (fpv *ConditionBinding_FieldTerminalPathValue) AsConditionValue() (*Reference, bool) { 1728 res, ok := fpv.value.(*Reference) 1729 return res, ok 1730 } 1731 func (fpv *ConditionBinding_FieldTerminalPathValue) AsParametersValue() (map[string]string, bool) { 1732 res, ok := fpv.value.(map[string]string) 1733 return res, ok 1734 } 1735 func (fpv *ConditionBinding_FieldTerminalPathValue) AsParamsValue() (*structpb.Struct, bool) { 1736 res, ok := fpv.value.(*structpb.Struct) 1737 return res, ok 1738 } 1739 1740 // SetTo stores value for selected field for object ConditionBinding 1741 func (fpv *ConditionBinding_FieldTerminalPathValue) SetTo(target **ConditionBinding) { 1742 if *target == nil { 1743 *target = new(ConditionBinding) 1744 } 1745 switch fpv.selector { 1746 case ConditionBinding_FieldPathSelectorCondition: 1747 (*target).Condition = fpv.value.(*Reference) 1748 case ConditionBinding_FieldPathSelectorParameters: 1749 (*target).Parameters = fpv.value.(map[string]string) 1750 case ConditionBinding_FieldPathSelectorParams: 1751 (*target).Params = fpv.value.(*structpb.Struct) 1752 default: 1753 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpv.selector)) 1754 } 1755 } 1756 1757 func (fpv *ConditionBinding_FieldTerminalPathValue) SetToRaw(target proto.Message) { 1758 typedObject := target.(*ConditionBinding) 1759 fpv.SetTo(&typedObject) 1760 } 1761 1762 // CompareWith compares value in the 'ConditionBinding_FieldTerminalPathValue' with the value under path in 'ConditionBinding'. 1763 func (fpv *ConditionBinding_FieldTerminalPathValue) CompareWith(source *ConditionBinding) (int, bool) { 1764 switch fpv.selector { 1765 case ConditionBinding_FieldPathSelectorCondition: 1766 leftValue := fpv.value.(*Reference) 1767 rightValue := source.GetCondition() 1768 if leftValue == nil { 1769 if rightValue != nil { 1770 return -1, true 1771 } 1772 return 0, true 1773 } 1774 if rightValue == nil { 1775 return 1, true 1776 } 1777 if leftValue.String() == rightValue.String() { 1778 return 0, true 1779 } else if leftValue.String() < rightValue.String() { 1780 return -1, true 1781 } else { 1782 return 1, true 1783 } 1784 case ConditionBinding_FieldPathSelectorParameters: 1785 return 0, false 1786 case ConditionBinding_FieldPathSelectorParams: 1787 return 0, false 1788 default: 1789 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpv.selector)) 1790 } 1791 } 1792 1793 func (fpv *ConditionBinding_FieldTerminalPathValue) CompareWithRaw(source proto.Message) (int, bool) { 1794 return fpv.CompareWith(source.(*ConditionBinding)) 1795 } 1796 1797 type ConditionBinding_FieldPathMapValue struct { 1798 ConditionBinding_FieldPathMap 1799 value interface{} 1800 } 1801 1802 var _ ConditionBinding_FieldPathValue = (*ConditionBinding_FieldPathMapValue)(nil) 1803 1804 // GetValue returns value stored under selected field in ConditionBinding as interface{} 1805 func (fpmv *ConditionBinding_FieldPathMapValue) GetRawValue() interface{} { 1806 return fpmv.value 1807 } 1808 func (fpmv *ConditionBinding_FieldPathMapValue) AsParametersElementValue() (string, bool) { 1809 res, ok := fpmv.value.(string) 1810 return res, ok 1811 } 1812 1813 // SetTo stores value for selected field in ConditionBinding 1814 func (fpmv *ConditionBinding_FieldPathMapValue) SetTo(target **ConditionBinding) { 1815 if *target == nil { 1816 *target = new(ConditionBinding) 1817 } 1818 switch fpmv.selector { 1819 case ConditionBinding_FieldPathSelectorParameters: 1820 if (*target).Parameters == nil { 1821 (*target).Parameters = make(map[string]string) 1822 } 1823 (*target).Parameters[fpmv.key] = fpmv.value.(string) 1824 default: 1825 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpmv.selector)) 1826 } 1827 } 1828 1829 func (fpmv *ConditionBinding_FieldPathMapValue) SetToRaw(target proto.Message) { 1830 typedObject := target.(*ConditionBinding) 1831 fpmv.SetTo(&typedObject) 1832 } 1833 1834 // CompareWith compares value in the 'ConditionBinding_FieldPathMapValue' with the value under path in 'ConditionBinding'. 1835 func (fpmv *ConditionBinding_FieldPathMapValue) CompareWith(source *ConditionBinding) (int, bool) { 1836 switch fpmv.selector { 1837 case ConditionBinding_FieldPathSelectorParameters: 1838 leftValue := fpmv.value.(string) 1839 rightValue := source.GetParameters()[fpmv.key] 1840 if (leftValue) == (rightValue) { 1841 return 0, true 1842 } else if (leftValue) < (rightValue) { 1843 return -1, true 1844 } else { 1845 return 1, true 1846 } 1847 default: 1848 panic(fmt.Sprintf("Invalid selector for ConditionBinding: %d", fpmv.selector)) 1849 } 1850 } 1851 1852 func (fpmv *ConditionBinding_FieldPathMapValue) CompareWithRaw(source proto.Message) (int, bool) { 1853 return fpmv.CompareWith(source.(*ConditionBinding)) 1854 } 1855 1856 // ConditionBinding_FieldPathArrayItemValue allows storing single item in Path-specific values for ConditionBinding according to their type 1857 // Present only for array (repeated) types. 1858 type ConditionBinding_FieldPathArrayItemValue interface { 1859 gotenobject.FieldPathArrayItemValue 1860 ConditionBinding_FieldPath 1861 ContainsValue(*ConditionBinding) bool 1862 } 1863 1864 // ParseConditionBinding_FieldPathArrayItemValue parses string and JSON-encoded value to its Value 1865 func ParseConditionBinding_FieldPathArrayItemValue(pathStr, valueStr string) (ConditionBinding_FieldPathArrayItemValue, error) { 1866 fp, err := ParseConditionBinding_FieldPath(pathStr) 1867 if err != nil { 1868 return nil, err 1869 } 1870 fpaiv, err := gotenobject.ParseFieldPathArrayItemValue(fp, valueStr) 1871 if err != nil { 1872 return nil, status.Errorf(codes.InvalidArgument, "error parsing ConditionBinding field path array item value from %s: %v", valueStr, err) 1873 } 1874 return fpaiv.(ConditionBinding_FieldPathArrayItemValue), nil 1875 } 1876 1877 func MustParseConditionBinding_FieldPathArrayItemValue(pathStr, valueStr string) ConditionBinding_FieldPathArrayItemValue { 1878 fpaiv, err := ParseConditionBinding_FieldPathArrayItemValue(pathStr, valueStr) 1879 if err != nil { 1880 panic(err) 1881 } 1882 return fpaiv 1883 } 1884 1885 type ConditionBinding_FieldTerminalPathArrayItemValue struct { 1886 ConditionBinding_FieldTerminalPath 1887 value interface{} 1888 } 1889 1890 var _ ConditionBinding_FieldPathArrayItemValue = (*ConditionBinding_FieldTerminalPathArrayItemValue)(nil) 1891 1892 // GetRawValue returns stored element value for array in object ConditionBinding as interface{} 1893 func (fpaiv *ConditionBinding_FieldTerminalPathArrayItemValue) GetRawItemValue() interface{} { 1894 return fpaiv.value 1895 } 1896 1897 func (fpaiv *ConditionBinding_FieldTerminalPathArrayItemValue) GetSingle(source *ConditionBinding) (interface{}, bool) { 1898 return nil, false 1899 } 1900 1901 func (fpaiv *ConditionBinding_FieldTerminalPathArrayItemValue) GetSingleRaw(source proto.Message) (interface{}, bool) { 1902 return fpaiv.GetSingle(source.(*ConditionBinding)) 1903 } 1904 1905 // Contains returns a boolean indicating if value that is being held is present in given 'ConditionBinding' 1906 func (fpaiv *ConditionBinding_FieldTerminalPathArrayItemValue) ContainsValue(source *ConditionBinding) bool { 1907 slice := fpaiv.ConditionBinding_FieldTerminalPath.Get(source) 1908 for _, v := range slice { 1909 if asProtoMsg, ok := fpaiv.value.(proto.Message); ok { 1910 if proto.Equal(asProtoMsg, v.(proto.Message)) { 1911 return true 1912 } 1913 } else if reflect.DeepEqual(v, fpaiv.value) { 1914 return true 1915 } 1916 } 1917 return false 1918 } 1919 1920 // ConditionBinding_FieldPathArrayOfValues allows storing slice of values for ConditionBinding fields according to their type 1921 type ConditionBinding_FieldPathArrayOfValues interface { 1922 gotenobject.FieldPathArrayOfValues 1923 ConditionBinding_FieldPath 1924 } 1925 1926 func ParseConditionBinding_FieldPathArrayOfValues(pathStr, valuesStr string) (ConditionBinding_FieldPathArrayOfValues, error) { 1927 fp, err := ParseConditionBinding_FieldPath(pathStr) 1928 if err != nil { 1929 return nil, err 1930 } 1931 fpaov, err := gotenobject.ParseFieldPathArrayOfValues(fp, valuesStr) 1932 if err != nil { 1933 return nil, status.Errorf(codes.InvalidArgument, "error parsing ConditionBinding field path array of values from %s: %v", valuesStr, err) 1934 } 1935 return fpaov.(ConditionBinding_FieldPathArrayOfValues), nil 1936 } 1937 1938 func MustParseConditionBinding_FieldPathArrayOfValues(pathStr, valuesStr string) ConditionBinding_FieldPathArrayOfValues { 1939 fpaov, err := ParseConditionBinding_FieldPathArrayOfValues(pathStr, valuesStr) 1940 if err != nil { 1941 panic(err) 1942 } 1943 return fpaov 1944 } 1945 1946 type ConditionBinding_FieldTerminalPathArrayOfValues struct { 1947 ConditionBinding_FieldTerminalPath 1948 values interface{} 1949 } 1950 1951 var _ ConditionBinding_FieldPathArrayOfValues = (*ConditionBinding_FieldTerminalPathArrayOfValues)(nil) 1952 1953 func (fpaov *ConditionBinding_FieldTerminalPathArrayOfValues) GetRawValues() (values []interface{}) { 1954 switch fpaov.selector { 1955 case ConditionBinding_FieldPathSelectorCondition: 1956 for _, v := range fpaov.values.([]*Reference) { 1957 values = append(values, v) 1958 } 1959 case ConditionBinding_FieldPathSelectorParameters: 1960 for _, v := range fpaov.values.([]map[string]string) { 1961 values = append(values, v) 1962 } 1963 case ConditionBinding_FieldPathSelectorParams: 1964 for _, v := range fpaov.values.([]*structpb.Struct) { 1965 values = append(values, v) 1966 } 1967 } 1968 return 1969 } 1970 func (fpaov *ConditionBinding_FieldTerminalPathArrayOfValues) AsConditionArrayOfValues() ([]*Reference, bool) { 1971 res, ok := fpaov.values.([]*Reference) 1972 return res, ok 1973 } 1974 func (fpaov *ConditionBinding_FieldTerminalPathArrayOfValues) AsParametersArrayOfValues() ([]map[string]string, bool) { 1975 res, ok := fpaov.values.([]map[string]string) 1976 return res, ok 1977 } 1978 func (fpaov *ConditionBinding_FieldTerminalPathArrayOfValues) AsParamsArrayOfValues() ([]*structpb.Struct, bool) { 1979 res, ok := fpaov.values.([]*structpb.Struct) 1980 return res, ok 1981 } 1982 1983 type ConditionBinding_FieldPathMapArrayOfValues struct { 1984 ConditionBinding_FieldPathMap 1985 values interface{} 1986 } 1987 1988 var _ ConditionBinding_FieldPathArrayOfValues = (*ConditionBinding_FieldPathMapArrayOfValues)(nil) 1989 1990 func (fpmaov *ConditionBinding_FieldPathMapArrayOfValues) GetRawValues() (values []interface{}) { 1991 switch fpmaov.selector { 1992 case ConditionBinding_FieldPathSelectorParameters: 1993 for _, v := range fpmaov.values.([]string) { 1994 values = append(values, v) 1995 } 1996 } 1997 return 1998 } 1999 func (fpmaov *ConditionBinding_FieldPathMapArrayOfValues) AsParametersArrayOfElementValues() ([]string, bool) { 2000 res, ok := fpmaov.values.([]string) 2001 return res, ok 2002 }