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