github.com/cloudwan/edgelq-sdk@v1.15.4/limits/resources/v1alpha2/plan_assignment/plan_assignment.pb.object_ext.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/limits/proto/v1alpha2/plan_assignment.proto
     3  // DO NOT EDIT!!!
     4  
     5  package plan_assignment
     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_organization "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/organization"
    20  	iam_project "github.com/cloudwan/edgelq-sdk/iam/resources/v1alpha2/project"
    21  	accepted_plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1alpha2/accepted_plan"
    22  	common "github.com/cloudwan/edgelq-sdk/limits/resources/v1alpha2/common"
    23  	plan "github.com/cloudwan/edgelq-sdk/limits/resources/v1alpha2/plan"
    24  	meta_service "github.com/cloudwan/edgelq-sdk/meta/resources/v1alpha2/service"
    25  	meta "github.com/cloudwan/goten-sdk/types/meta"
    26  )
    27  
    28  // ensure the imports are used
    29  var (
    30  	_ = new(fmt.Stringer)
    31  	_ = new(sort.Interface)
    32  
    33  	_ = new(proto.Message)
    34  	_ = googlefieldmaskpb.FieldMask{}
    35  
    36  	_ = new(gotenobject.FieldPath)
    37  )
    38  
    39  // make sure we're using proto imports
    40  var (
    41  	_ = &iam_organization.Organization{}
    42  	_ = &iam_project.Project{}
    43  	_ = &accepted_plan.AcceptedPlan{}
    44  	_ = &common.Allowance{}
    45  	_ = &plan.Plan{}
    46  	_ = &meta_service.Service{}
    47  	_ = &meta.Meta{}
    48  )
    49  
    50  func (o *PlanAssignment) GotenObjectExt() {}
    51  
    52  func (o *PlanAssignment) MakeFullFieldMask() *PlanAssignment_FieldMask {
    53  	return FullPlanAssignment_FieldMask()
    54  }
    55  
    56  func (o *PlanAssignment) MakeRawFullFieldMask() gotenobject.FieldMask {
    57  	return FullPlanAssignment_FieldMask()
    58  }
    59  
    60  func (o *PlanAssignment) MakeDiffFieldMask(other *PlanAssignment) *PlanAssignment_FieldMask {
    61  	if o == nil && other == nil {
    62  		return &PlanAssignment_FieldMask{}
    63  	}
    64  	if o == nil || other == nil {
    65  		return FullPlanAssignment_FieldMask()
    66  	}
    67  
    68  	res := &PlanAssignment_FieldMask{}
    69  	if o.GetName().String() != other.GetName().String() {
    70  		res.Paths = append(res.Paths, &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorName})
    71  	}
    72  	if o.GetPlan().String() != other.GetPlan().String() {
    73  		res.Paths = append(res.Paths, &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorPlan})
    74  	}
    75  	if o.GetService().String() != other.GetService().String() {
    76  		res.Paths = append(res.Paths, &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorService})
    77  	}
    78  
    79  	if len(o.GetExtensions()) == len(other.GetExtensions()) {
    80  		for i, lValue := range o.GetExtensions() {
    81  			rValue := other.GetExtensions()[i]
    82  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
    83  				res.Paths = append(res.Paths, &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorExtensions})
    84  				break
    85  			}
    86  		}
    87  	} else {
    88  		res.Paths = append(res.Paths, &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorExtensions})
    89  	}
    90  
    91  	if len(o.GetRegionalDistributions()) == len(other.GetRegionalDistributions()) {
    92  		for i, lValue := range o.GetRegionalDistributions() {
    93  			rValue := other.GetRegionalDistributions()[i]
    94  			if len(lValue.MakeDiffFieldMask(rValue).Paths) > 0 {
    95  				res.Paths = append(res.Paths, &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorRegionalDistributions})
    96  				break
    97  			}
    98  		}
    99  	} else {
   100  		res.Paths = append(res.Paths, &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorRegionalDistributions})
   101  	}
   102  	if o.GetSource().String() != other.GetSource().String() {
   103  		res.Paths = append(res.Paths, &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorSource})
   104  	}
   105  	{
   106  		subMask := o.GetMetadata().MakeDiffFieldMask(other.GetMetadata())
   107  		if subMask.IsFull() {
   108  			res.Paths = append(res.Paths, &PlanAssignment_FieldTerminalPath{selector: PlanAssignment_FieldPathSelectorMetadata})
   109  		} else {
   110  			for _, subpath := range subMask.Paths {
   111  				res.Paths = append(res.Paths, &PlanAssignment_FieldSubPath{selector: PlanAssignment_FieldPathSelectorMetadata, subPath: subpath})
   112  			}
   113  		}
   114  	}
   115  	return res
   116  }
   117  
   118  func (o *PlanAssignment) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
   119  	return o.MakeDiffFieldMask(other.(*PlanAssignment))
   120  }
   121  
   122  func (o *PlanAssignment) Clone() *PlanAssignment {
   123  	if o == nil {
   124  		return nil
   125  	}
   126  	result := &PlanAssignment{}
   127  	if o.Name == nil {
   128  		result.Name = nil
   129  	} else if data, err := o.Name.ProtoString(); err != nil {
   130  		panic(err)
   131  	} else {
   132  		result.Name = &Name{}
   133  		if err := result.Name.ParseProtoString(data); err != nil {
   134  			panic(err)
   135  		}
   136  	}
   137  	if o.Plan == nil {
   138  		result.Plan = nil
   139  	} else if data, err := o.Plan.ProtoString(); err != nil {
   140  		panic(err)
   141  	} else {
   142  		result.Plan = &plan.Reference{}
   143  		if err := result.Plan.ParseProtoString(data); err != nil {
   144  			panic(err)
   145  		}
   146  	}
   147  	if o.Service == nil {
   148  		result.Service = nil
   149  	} else if data, err := o.Service.ProtoString(); err != nil {
   150  		panic(err)
   151  	} else {
   152  		result.Service = &meta_service.Reference{}
   153  		if err := result.Service.ParseProtoString(data); err != nil {
   154  			panic(err)
   155  		}
   156  	}
   157  	result.Extensions = make([]*common.Allowance, len(o.Extensions))
   158  	for i, sourceValue := range o.Extensions {
   159  		result.Extensions[i] = sourceValue.Clone()
   160  	}
   161  	result.RegionalDistributions = make([]*common.RegionalDistribution, len(o.RegionalDistributions))
   162  	for i, sourceValue := range o.RegionalDistributions {
   163  		result.RegionalDistributions[i] = sourceValue.Clone()
   164  	}
   165  	if o.Source == nil {
   166  		result.Source = nil
   167  	} else if data, err := o.Source.ProtoString(); err != nil {
   168  		panic(err)
   169  	} else {
   170  		result.Source = &accepted_plan.Reference{}
   171  		if err := result.Source.ParseProtoString(data); err != nil {
   172  			panic(err)
   173  		}
   174  	}
   175  	result.Metadata = o.Metadata.Clone()
   176  	return result
   177  }
   178  
   179  func (o *PlanAssignment) CloneRaw() gotenobject.GotenObjectExt {
   180  	return o.Clone()
   181  }
   182  
   183  func (o *PlanAssignment) Merge(source *PlanAssignment) {
   184  	if source.GetName() != nil {
   185  		if data, err := source.GetName().ProtoString(); err != nil {
   186  			panic(err)
   187  		} else {
   188  			o.Name = &Name{}
   189  			if err := o.Name.ParseProtoString(data); err != nil {
   190  				panic(err)
   191  			}
   192  		}
   193  	} else {
   194  		o.Name = nil
   195  	}
   196  	if source.GetPlan() != nil {
   197  		if data, err := source.GetPlan().ProtoString(); err != nil {
   198  			panic(err)
   199  		} else {
   200  			o.Plan = &plan.Reference{}
   201  			if err := o.Plan.ParseProtoString(data); err != nil {
   202  				panic(err)
   203  			}
   204  		}
   205  	} else {
   206  		o.Plan = nil
   207  	}
   208  	if source.GetService() != nil {
   209  		if data, err := source.GetService().ProtoString(); err != nil {
   210  			panic(err)
   211  		} else {
   212  			o.Service = &meta_service.Reference{}
   213  			if err := o.Service.ParseProtoString(data); err != nil {
   214  				panic(err)
   215  			}
   216  		}
   217  	} else {
   218  		o.Service = nil
   219  	}
   220  	for _, sourceValue := range source.GetExtensions() {
   221  		exists := false
   222  		for _, currentValue := range o.Extensions {
   223  			if proto.Equal(sourceValue, currentValue) {
   224  				exists = true
   225  				break
   226  			}
   227  		}
   228  		if !exists {
   229  			var newDstElement *common.Allowance
   230  			if sourceValue != nil {
   231  				newDstElement = new(common.Allowance)
   232  				newDstElement.Merge(sourceValue)
   233  			}
   234  			o.Extensions = append(o.Extensions, newDstElement)
   235  		}
   236  	}
   237  
   238  	for _, sourceValue := range source.GetRegionalDistributions() {
   239  		exists := false
   240  		for _, currentValue := range o.RegionalDistributions {
   241  			if proto.Equal(sourceValue, currentValue) {
   242  				exists = true
   243  				break
   244  			}
   245  		}
   246  		if !exists {
   247  			var newDstElement *common.RegionalDistribution
   248  			if sourceValue != nil {
   249  				newDstElement = new(common.RegionalDistribution)
   250  				newDstElement.Merge(sourceValue)
   251  			}
   252  			o.RegionalDistributions = append(o.RegionalDistributions, newDstElement)
   253  		}
   254  	}
   255  
   256  	if source.GetSource() != nil {
   257  		if data, err := source.GetSource().ProtoString(); err != nil {
   258  			panic(err)
   259  		} else {
   260  			o.Source = &accepted_plan.Reference{}
   261  			if err := o.Source.ParseProtoString(data); err != nil {
   262  				panic(err)
   263  			}
   264  		}
   265  	} else {
   266  		o.Source = nil
   267  	}
   268  	if source.GetMetadata() != nil {
   269  		if o.Metadata == nil {
   270  			o.Metadata = new(meta.Meta)
   271  		}
   272  		o.Metadata.Merge(source.GetMetadata())
   273  	}
   274  }
   275  
   276  func (o *PlanAssignment) MergeRaw(source gotenobject.GotenObjectExt) {
   277  	o.Merge(source.(*PlanAssignment))
   278  }