github.com/cloudwan/edgelq-sdk@v1.15.4/limits/resources/v1alpha2/plan/plan.pb.object_ext.go (about) 1 // Code generated by protoc-gen-goten-object 2 // File: edgelq/limits/proto/v1alpha2/plan.proto 3 // DO NOT EDIT!!! 4 5 package plan 6 7 import ( 8 "fmt" 9 "sort" 10 11 "google.golang.org/protobuf/proto" 12 googlefieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 13 14 gotenobject "github.com/cloudwan/goten-sdk/runtime/object" 15 ) 16 17 // proto imports 18 import ( 19 iam_iam_common "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/common" 20 common "github.com/cloudwan/edgelq-sdk/limits/resources/v1alpha2/common" 21 meta_service "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/service" 22 meta "github.com/cloudwan/goten-sdk/types/meta" 23 ) 24 25 // ensure the imports are used 26 var ( 27 _ = new(fmt.Stringer) 28 _ = new(sort.Interface) 29 30 _ = new(proto.Message) 31 _ = googlefieldmaskpb.FieldMask{} 32 33 _ = new(gotenobject.FieldPath) 34 ) 35 36 // make sure we're using proto imports 37 var ( 38 _ = &iam_iam_common.PCR{} 39 _ = &common.Allowance{} 40 _ = &meta_service.Service{} 41 _ = &meta.Meta{} 42 ) 43 44 func (o *Plan) GotenObjectExt() {} 45 46 func (o *Plan) MakeFullFieldMask() *Plan_FieldMask { 47 return FullPlan_FieldMask() 48 } 49 50 func (o *Plan) MakeRawFullFieldMask() gotenobject.FieldMask { 51 return FullPlan_FieldMask() 52 } 53 54 func (o *Plan) MakeDiffFieldMask(other *Plan) *Plan_FieldMask { 55 if o == nil && other == nil { 56 return &Plan_FieldMask{} 57 } 58 if o == nil || other == nil { 59 return FullPlan_FieldMask() 60 } 61 62 res := &Plan_FieldMask{} 63 if o.GetName().String() != other.GetName().String() { 64 res.Paths = append(res.Paths, &Plan_FieldTerminalPath{selector: Plan_FieldPathSelectorName}) 65 } 66 if o.GetDisplayName() != other.GetDisplayName() { 67 res.Paths = append(res.Paths, &Plan_FieldTerminalPath{selector: Plan_FieldPathSelectorDisplayName}) 68 } 69 if o.GetService().String() != other.GetService().String() { 70 res.Paths = append(res.Paths, &Plan_FieldTerminalPath{selector: Plan_FieldPathSelectorService}) 71 } 72 73 if len(o.GetResourceLimits()) == len(other.GetResourceLimits()) { 74 for i, lValue := range o.GetResourceLimits() { 75 rValue := other.GetResourceLimits()[i] 76 if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 { 77 res.Paths = append(res.Paths, &Plan_FieldTerminalPath{selector: Plan_FieldPathSelectorResourceLimits}) 78 break 79 } 80 } 81 } else { 82 res.Paths = append(res.Paths, &Plan_FieldTerminalPath{selector: Plan_FieldPathSelectorResourceLimits}) 83 } 84 if o.GetPlanLevel() != other.GetPlanLevel() { 85 res.Paths = append(res.Paths, &Plan_FieldTerminalPath{selector: Plan_FieldPathSelectorPlanLevel}) 86 } 87 if o.GetBusinessTier() != other.GetBusinessTier() { 88 res.Paths = append(res.Paths, &Plan_FieldTerminalPath{selector: Plan_FieldPathSelectorBusinessTier}) 89 } 90 { 91 subMask := o.GetMetadata().MakeDiffFieldMask(other.GetMetadata()) 92 if subMask.IsFull() { 93 res.Paths = append(res.Paths, &Plan_FieldTerminalPath{selector: Plan_FieldPathSelectorMetadata}) 94 } else { 95 for _, subpath := range subMask.Paths { 96 res.Paths = append(res.Paths, &Plan_FieldSubPath{selector: Plan_FieldPathSelectorMetadata, subPath: subpath}) 97 } 98 } 99 } 100 return res 101 } 102 103 func (o *Plan) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask { 104 return o.MakeDiffFieldMask(other.(*Plan)) 105 } 106 107 func (o *Plan) Clone() *Plan { 108 if o == nil { 109 return nil 110 } 111 result := &Plan{} 112 if o.Name == nil { 113 result.Name = nil 114 } else if data, err := o.Name.ProtoString(); err != nil { 115 panic(err) 116 } else { 117 result.Name = &Name{} 118 if err := result.Name.ParseProtoString(data); err != nil { 119 panic(err) 120 } 121 } 122 result.DisplayName = o.DisplayName 123 if o.Service == nil { 124 result.Service = nil 125 } else if data, err := o.Service.ProtoString(); err != nil { 126 panic(err) 127 } else { 128 result.Service = &meta_service.Reference{} 129 if err := result.Service.ParseProtoString(data); err != nil { 130 panic(err) 131 } 132 } 133 result.ResourceLimits = make([]*common.Allowance, len(o.ResourceLimits)) 134 for i, sourceValue := range o.ResourceLimits { 135 result.ResourceLimits[i] = sourceValue.Clone() 136 } 137 result.PlanLevel = o.PlanLevel 138 result.BusinessTier = o.BusinessTier 139 result.Metadata = o.Metadata.Clone() 140 return result 141 } 142 143 func (o *Plan) CloneRaw() gotenobject.GotenObjectExt { 144 return o.Clone() 145 } 146 147 func (o *Plan) Merge(source *Plan) { 148 if source.GetName() != nil { 149 if data, err := source.GetName().ProtoString(); err != nil { 150 panic(err) 151 } else { 152 o.Name = &Name{} 153 if err := o.Name.ParseProtoString(data); err != nil { 154 panic(err) 155 } 156 } 157 } else { 158 o.Name = nil 159 } 160 o.DisplayName = source.GetDisplayName() 161 if source.GetService() != nil { 162 if data, err := source.GetService().ProtoString(); err != nil { 163 panic(err) 164 } else { 165 o.Service = &meta_service.Reference{} 166 if err := o.Service.ParseProtoString(data); err != nil { 167 panic(err) 168 } 169 } 170 } else { 171 o.Service = nil 172 } 173 for _, sourceValue := range source.GetResourceLimits() { 174 exists := false 175 for _, currentValue := range o.ResourceLimits { 176 if proto.Equal(sourceValue, currentValue) { 177 exists = true 178 break 179 } 180 } 181 if !exists { 182 var newDstElement *common.Allowance 183 if sourceValue != nil { 184 newDstElement = new(common.Allowance) 185 newDstElement.Merge(sourceValue) 186 } 187 o.ResourceLimits = append(o.ResourceLimits, newDstElement) 188 } 189 } 190 191 o.PlanLevel = source.GetPlanLevel() 192 o.BusinessTier = source.GetBusinessTier() 193 if source.GetMetadata() != nil { 194 if o.Metadata == nil { 195 o.Metadata = new(meta.Meta) 196 } 197 o.Metadata.Merge(source.GetMetadata()) 198 } 199 } 200 201 func (o *Plan) MergeRaw(source gotenobject.GotenObjectExt) { 202 o.Merge(source.(*Plan)) 203 }