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