github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1alpha2/organization_invitation/organization_invitation.pb.fieldmask.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/iam/proto/v1alpha2/organization_invitation.proto 3 // DO NOT EDIT!!! 4 5 package organization_invitation 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 iam_invitation "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/invitation" 23 organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization" 24 meta "github.com/cloudwan/goten-sdk/types/meta" 25 ) 26 27 // ensure the imports are used 28 var ( 29 _ = new(json.Marshaler) 30 _ = strings.Builder{} 31 32 _ = codes.NotFound 33 _ = status.Status{} 34 _ = new(proto.Message) 35 _ = new(preflect.Message) 36 _ = googlefieldmaskpb.FieldMask{} 37 38 _ = new(gotenobject.FieldMask) 39 ) 40 41 // make sure we're using proto imports 42 var ( 43 _ = &iam_invitation.Actor{} 44 _ = &organization.Organization{} 45 _ = &meta.Meta{} 46 ) 47 48 type OrganizationInvitation_FieldMask struct { 49 Paths []OrganizationInvitation_FieldPath 50 } 51 52 func FullOrganizationInvitation_FieldMask() *OrganizationInvitation_FieldMask { 53 res := &OrganizationInvitation_FieldMask{} 54 res.Paths = append(res.Paths, &OrganizationInvitation_FieldTerminalPath{selector: OrganizationInvitation_FieldPathSelectorName}) 55 res.Paths = append(res.Paths, &OrganizationInvitation_FieldTerminalPath{selector: OrganizationInvitation_FieldPathSelectorInvitation}) 56 res.Paths = append(res.Paths, &OrganizationInvitation_FieldTerminalPath{selector: OrganizationInvitation_FieldPathSelectorMetadata}) 57 return res 58 } 59 60 func (fieldMask *OrganizationInvitation_FieldMask) String() string { 61 if fieldMask == nil { 62 return "<nil>" 63 } 64 pathsStr := make([]string, 0, len(fieldMask.Paths)) 65 for _, path := range fieldMask.Paths { 66 pathsStr = append(pathsStr, path.String()) 67 } 68 return strings.Join(pathsStr, ", ") 69 } 70 71 func (fieldMask *OrganizationInvitation_FieldMask) IsFull() bool { 72 if fieldMask == nil { 73 return false 74 } 75 presentSelectors := make([]bool, 3) 76 for _, path := range fieldMask.Paths { 77 if asFinal, ok := path.(*OrganizationInvitation_FieldTerminalPath); ok { 78 presentSelectors[int(asFinal.selector)] = true 79 } 80 } 81 for _, flag := range presentSelectors { 82 if !flag { 83 return false 84 } 85 } 86 return true 87 } 88 89 func (fieldMask *OrganizationInvitation_FieldMask) ProtoReflect() preflect.Message { 90 return gotenobject.MakeFieldMaskReflection(fieldMask, func(raw string) (gotenobject.FieldPath, error) { 91 return ParseOrganizationInvitation_FieldPath(raw) 92 }) 93 } 94 95 func (fieldMask *OrganizationInvitation_FieldMask) ProtoMessage() {} 96 97 func (fieldMask *OrganizationInvitation_FieldMask) Reset() { 98 if fieldMask != nil { 99 fieldMask.Paths = nil 100 } 101 } 102 103 func (fieldMask *OrganizationInvitation_FieldMask) Subtract(other *OrganizationInvitation_FieldMask) *OrganizationInvitation_FieldMask { 104 result := &OrganizationInvitation_FieldMask{} 105 removedSelectors := make([]bool, 3) 106 otherSubMasks := map[OrganizationInvitation_FieldPathSelector]gotenobject.FieldMask{ 107 OrganizationInvitation_FieldPathSelectorInvitation: &iam_invitation.Invitation_FieldMask{}, 108 OrganizationInvitation_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 109 } 110 mySubMasks := map[OrganizationInvitation_FieldPathSelector]gotenobject.FieldMask{ 111 OrganizationInvitation_FieldPathSelectorInvitation: &iam_invitation.Invitation_FieldMask{}, 112 OrganizationInvitation_FieldPathSelectorMetadata: &meta.Meta_FieldMask{}, 113 } 114 115 for _, path := range other.GetPaths() { 116 switch tp := path.(type) { 117 case *OrganizationInvitation_FieldTerminalPath: 118 removedSelectors[int(tp.selector)] = true 119 case *OrganizationInvitation_FieldSubPath: 120 otherSubMasks[tp.selector].AppendRawPath(tp.subPath) 121 } 122 } 123 for _, path := range fieldMask.GetPaths() { 124 if !removedSelectors[int(path.Selector())] { 125 if otherSubMask := otherSubMasks[path.Selector()]; otherSubMask != nil && otherSubMask.PathsCount() > 0 { 126 if tp, ok := path.(*OrganizationInvitation_FieldTerminalPath); ok { 127 switch tp.selector { 128 case OrganizationInvitation_FieldPathSelectorInvitation: 129 mySubMasks[OrganizationInvitation_FieldPathSelectorInvitation] = iam_invitation.FullInvitation_FieldMask() 130 case OrganizationInvitation_FieldPathSelectorMetadata: 131 mySubMasks[OrganizationInvitation_FieldPathSelectorMetadata] = meta.FullMeta_FieldMask() 132 } 133 } else if tp, ok := path.(*OrganizationInvitation_FieldSubPath); ok { 134 mySubMasks[tp.selector].AppendRawPath(tp.subPath) 135 } 136 } else { 137 result.Paths = append(result.Paths, path) 138 } 139 } 140 } 141 for selector, mySubMask := range mySubMasks { 142 if mySubMask.PathsCount() > 0 { 143 for _, allowedPath := range mySubMask.SubtractRaw(otherSubMasks[selector]).GetRawPaths() { 144 result.Paths = append(result.Paths, &OrganizationInvitation_FieldSubPath{selector: selector, subPath: allowedPath}) 145 } 146 } 147 } 148 149 if len(result.Paths) == 0 { 150 return nil 151 } 152 return result 153 } 154 155 func (fieldMask *OrganizationInvitation_FieldMask) SubtractRaw(other gotenobject.FieldMask) gotenobject.FieldMask { 156 return fieldMask.Subtract(other.(*OrganizationInvitation_FieldMask)) 157 } 158 159 // FilterInputFields generates copy of field paths with output_only field paths removed 160 func (fieldMask *OrganizationInvitation_FieldMask) FilterInputFields() *OrganizationInvitation_FieldMask { 161 result := &OrganizationInvitation_FieldMask{} 162 for _, path := range fieldMask.Paths { 163 switch path.Selector() { 164 case OrganizationInvitation_FieldPathSelectorMetadata: 165 if _, ok := path.(*OrganizationInvitation_FieldTerminalPath); ok { 166 for _, subpath := range meta.FullMeta_FieldMask().FilterInputFields().Paths { 167 result.Paths = append(result.Paths, &OrganizationInvitation_FieldSubPath{selector: path.Selector(), subPath: subpath}) 168 } 169 } else if sub, ok := path.(*OrganizationInvitation_FieldSubPath); ok { 170 selectedMask := &meta.Meta_FieldMask{ 171 Paths: []meta.Meta_FieldPath{sub.subPath.(meta.Meta_FieldPath)}, 172 } 173 for _, allowedPath := range selectedMask.FilterInputFields().Paths { 174 result.Paths = append(result.Paths, &OrganizationInvitation_FieldSubPath{selector: OrganizationInvitation_FieldPathSelectorMetadata, subPath: allowedPath}) 175 } 176 } 177 default: 178 result.Paths = append(result.Paths, path) 179 } 180 } 181 return result 182 } 183 184 // ToFieldMask is used for proto conversions 185 func (fieldMask *OrganizationInvitation_FieldMask) ToProtoFieldMask() *googlefieldmaskpb.FieldMask { 186 protoFieldMask := &googlefieldmaskpb.FieldMask{} 187 for _, path := range fieldMask.Paths { 188 protoFieldMask.Paths = append(protoFieldMask.Paths, path.String()) 189 } 190 return protoFieldMask 191 } 192 193 func (fieldMask *OrganizationInvitation_FieldMask) FromProtoFieldMask(protoFieldMask *googlefieldmaskpb.FieldMask) error { 194 if fieldMask == nil { 195 return status.Error(codes.Internal, "target field mask is nil") 196 } 197 fieldMask.Paths = make([]OrganizationInvitation_FieldPath, 0, len(protoFieldMask.Paths)) 198 for _, strPath := range protoFieldMask.Paths { 199 path, err := ParseOrganizationInvitation_FieldPath(strPath) 200 if err != nil { 201 return err 202 } 203 fieldMask.Paths = append(fieldMask.Paths, path) 204 } 205 return nil 206 } 207 208 // implement methods required by customType 209 func (fieldMask OrganizationInvitation_FieldMask) Marshal() ([]byte, error) { 210 protoFieldMask := fieldMask.ToProtoFieldMask() 211 return proto.Marshal(protoFieldMask) 212 } 213 214 func (fieldMask *OrganizationInvitation_FieldMask) Unmarshal(data []byte) error { 215 protoFieldMask := &googlefieldmaskpb.FieldMask{} 216 if err := proto.Unmarshal(data, protoFieldMask); err != nil { 217 return err 218 } 219 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 220 return err 221 } 222 return nil 223 } 224 225 func (fieldMask *OrganizationInvitation_FieldMask) Size() int { 226 return proto.Size(fieldMask.ToProtoFieldMask()) 227 } 228 229 func (fieldMask OrganizationInvitation_FieldMask) MarshalJSON() ([]byte, error) { 230 return json.Marshal(fieldMask.ToProtoFieldMask()) 231 } 232 233 func (fieldMask *OrganizationInvitation_FieldMask) UnmarshalJSON(data []byte) error { 234 protoFieldMask := &googlefieldmaskpb.FieldMask{} 235 if err := json.Unmarshal(data, protoFieldMask); err != nil { 236 return err 237 } 238 if err := fieldMask.FromProtoFieldMask(protoFieldMask); err != nil { 239 return err 240 } 241 return nil 242 } 243 244 func (fieldMask *OrganizationInvitation_FieldMask) AppendPath(path OrganizationInvitation_FieldPath) { 245 fieldMask.Paths = append(fieldMask.Paths, path) 246 } 247 248 func (fieldMask *OrganizationInvitation_FieldMask) AppendRawPath(path gotenobject.FieldPath) { 249 fieldMask.Paths = append(fieldMask.Paths, path.(OrganizationInvitation_FieldPath)) 250 } 251 252 func (fieldMask *OrganizationInvitation_FieldMask) GetPaths() []OrganizationInvitation_FieldPath { 253 if fieldMask == nil { 254 return nil 255 } 256 return fieldMask.Paths 257 } 258 259 func (fieldMask *OrganizationInvitation_FieldMask) GetRawPaths() []gotenobject.FieldPath { 260 if fieldMask == nil { 261 return nil 262 } 263 rawPaths := make([]gotenobject.FieldPath, 0, len(fieldMask.Paths)) 264 for _, path := range fieldMask.Paths { 265 rawPaths = append(rawPaths, path) 266 } 267 return rawPaths 268 } 269 270 func (fieldMask *OrganizationInvitation_FieldMask) SetFromCliFlag(raw string) error { 271 path, err := ParseOrganizationInvitation_FieldPath(raw) 272 if err != nil { 273 return err 274 } 275 fieldMask.Paths = append(fieldMask.Paths, path) 276 return nil 277 } 278 279 func (fieldMask *OrganizationInvitation_FieldMask) Set(target, source *OrganizationInvitation) { 280 for _, path := range fieldMask.Paths { 281 val, _ := path.GetSingle(source) 282 // if val is nil, then field does not exist in source, skip 283 // otherwise, process (can still reflect.ValueOf(val).IsNil!) 284 if val != nil { 285 path.WithIValue(val).SetTo(&target) 286 } 287 } 288 } 289 290 func (fieldMask *OrganizationInvitation_FieldMask) SetRaw(target, source gotenobject.GotenObjectExt) { 291 fieldMask.Set(target.(*OrganizationInvitation), source.(*OrganizationInvitation)) 292 } 293 294 func (fieldMask *OrganizationInvitation_FieldMask) Project(source *OrganizationInvitation) *OrganizationInvitation { 295 if source == nil { 296 return nil 297 } 298 if fieldMask == nil { 299 return source 300 } 301 result := &OrganizationInvitation{} 302 invitationMask := &iam_invitation.Invitation_FieldMask{} 303 wholeInvitationAccepted := false 304 metadataMask := &meta.Meta_FieldMask{} 305 wholeMetadataAccepted := false 306 307 for _, p := range fieldMask.Paths { 308 switch tp := p.(type) { 309 case *OrganizationInvitation_FieldTerminalPath: 310 switch tp.selector { 311 case OrganizationInvitation_FieldPathSelectorName: 312 result.Name = source.Name 313 case OrganizationInvitation_FieldPathSelectorInvitation: 314 result.Invitation = source.Invitation 315 wholeInvitationAccepted = true 316 case OrganizationInvitation_FieldPathSelectorMetadata: 317 result.Metadata = source.Metadata 318 wholeMetadataAccepted = true 319 } 320 case *OrganizationInvitation_FieldSubPath: 321 switch tp.selector { 322 case OrganizationInvitation_FieldPathSelectorInvitation: 323 invitationMask.AppendPath(tp.subPath.(iam_invitation.Invitation_FieldPath)) 324 case OrganizationInvitation_FieldPathSelectorMetadata: 325 metadataMask.AppendPath(tp.subPath.(meta.Meta_FieldPath)) 326 } 327 } 328 } 329 if wholeInvitationAccepted == false && len(invitationMask.Paths) > 0 { 330 result.Invitation = invitationMask.Project(source.GetInvitation()) 331 } 332 if wholeMetadataAccepted == false && len(metadataMask.Paths) > 0 { 333 result.Metadata = metadataMask.Project(source.GetMetadata()) 334 } 335 return result 336 } 337 338 func (fieldMask *OrganizationInvitation_FieldMask) ProjectRaw(source gotenobject.GotenObjectExt) gotenobject.GotenObjectExt { 339 return fieldMask.Project(source.(*OrganizationInvitation)) 340 } 341 342 func (fieldMask *OrganizationInvitation_FieldMask) PathsCount() int { 343 if fieldMask == nil { 344 return 0 345 } 346 return len(fieldMask.Paths) 347 }