github.com/cloudwan/edgelq-sdk@v1.15.4/iam/resources/v1/group_member/group_member.pb.object_ext.go (about)

     1  // Code generated by protoc-gen-goten-object
     2  // File: edgelq/iam/proto/v1/group_member.proto
     3  // DO NOT EDIT!!!
     4  
     5  package group_member
     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  	group "github.com/cloudwan/edgelq-sdk/iam/resources/v1/group"
    20  	meta "github.com/cloudwan/goten-sdk/types/meta"
    21  )
    22  
    23  // ensure the imports are used
    24  var (
    25  	_ = new(fmt.Stringer)
    26  	_ = new(sort.Interface)
    27  
    28  	_ = new(proto.Message)
    29  	_ = googlefieldmaskpb.FieldMask{}
    30  
    31  	_ = new(gotenobject.FieldPath)
    32  )
    33  
    34  // make sure we're using proto imports
    35  var (
    36  	_ = &group.Group{}
    37  	_ = &meta.Meta{}
    38  )
    39  
    40  func (o *GroupMember) GotenObjectExt() {}
    41  
    42  func (o *GroupMember) MakeFullFieldMask() *GroupMember_FieldMask {
    43  	return FullGroupMember_FieldMask()
    44  }
    45  
    46  func (o *GroupMember) MakeRawFullFieldMask() gotenobject.FieldMask {
    47  	return FullGroupMember_FieldMask()
    48  }
    49  
    50  func (o *GroupMember) MakeDiffFieldMask(other *GroupMember) *GroupMember_FieldMask {
    51  	if o == nil && other == nil {
    52  		return &GroupMember_FieldMask{}
    53  	}
    54  	if o == nil || other == nil {
    55  		return FullGroupMember_FieldMask()
    56  	}
    57  
    58  	res := &GroupMember_FieldMask{}
    59  	if o.GetName().String() != other.GetName().String() {
    60  		res.Paths = append(res.Paths, &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorName})
    61  	}
    62  	{
    63  		subMask := o.GetMetadata().MakeDiffFieldMask(other.GetMetadata())
    64  		if subMask.IsFull() {
    65  			res.Paths = append(res.Paths, &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorMetadata})
    66  		} else {
    67  			for _, subpath := range subMask.Paths {
    68  				res.Paths = append(res.Paths, &GroupMember_FieldSubPath{selector: GroupMember_FieldPathSelectorMetadata, subPath: subpath})
    69  			}
    70  		}
    71  	}
    72  	if o.GetMember() != other.GetMember() {
    73  		res.Paths = append(res.Paths, &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorMember})
    74  	}
    75  	if o.GetParentMember() != other.GetParentMember() {
    76  		res.Paths = append(res.Paths, &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorParentMember})
    77  	}
    78  
    79  	if len(o.GetMinAncestryMembers()) == len(other.GetMinAncestryMembers()) {
    80  		for i, lValue := range o.GetMinAncestryMembers() {
    81  			rValue := other.GetMinAncestryMembers()[i]
    82  			if lValue != rValue {
    83  				res.Paths = append(res.Paths, &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorMinAncestryMembers})
    84  				break
    85  			}
    86  		}
    87  	} else {
    88  		res.Paths = append(res.Paths, &GroupMember_FieldTerminalPath{selector: GroupMember_FieldPathSelectorMinAncestryMembers})
    89  	}
    90  	return res
    91  }
    92  
    93  func (o *GroupMember) MakeRawDiffFieldMask(other gotenobject.GotenObjectExt) gotenobject.FieldMask {
    94  	return o.MakeDiffFieldMask(other.(*GroupMember))
    95  }
    96  
    97  func (o *GroupMember) Clone() *GroupMember {
    98  	if o == nil {
    99  		return nil
   100  	}
   101  	result := &GroupMember{}
   102  	if o.Name == nil {
   103  		result.Name = nil
   104  	} else if data, err := o.Name.ProtoString(); err != nil {
   105  		panic(err)
   106  	} else {
   107  		result.Name = &Name{}
   108  		if err := result.Name.ParseProtoString(data); err != nil {
   109  			panic(err)
   110  		}
   111  	}
   112  	result.Metadata = o.Metadata.Clone()
   113  	result.Member = o.Member
   114  	result.ParentMember = o.ParentMember
   115  	result.MinAncestryMembers = make([]string, len(o.MinAncestryMembers))
   116  	for i, sourceValue := range o.MinAncestryMembers {
   117  		result.MinAncestryMembers[i] = sourceValue
   118  	}
   119  	return result
   120  }
   121  
   122  func (o *GroupMember) CloneRaw() gotenobject.GotenObjectExt {
   123  	return o.Clone()
   124  }
   125  
   126  func (o *GroupMember) Merge(source *GroupMember) {
   127  	if source.GetName() != nil {
   128  		if data, err := source.GetName().ProtoString(); err != nil {
   129  			panic(err)
   130  		} else {
   131  			o.Name = &Name{}
   132  			if err := o.Name.ParseProtoString(data); err != nil {
   133  				panic(err)
   134  			}
   135  		}
   136  	} else {
   137  		o.Name = nil
   138  	}
   139  	if source.GetMetadata() != nil {
   140  		if o.Metadata == nil {
   141  			o.Metadata = new(meta.Meta)
   142  		}
   143  		o.Metadata.Merge(source.GetMetadata())
   144  	}
   145  	o.Member = source.GetMember()
   146  	o.ParentMember = source.GetParentMember()
   147  	newMinAncestryMembers := make([]string, 0, len(o.MinAncestryMembers))
   148  	for _, currentValue := range o.MinAncestryMembers {
   149  		for _, sourceValue := range source.GetMinAncestryMembers() {
   150  			if currentValue == sourceValue {
   151  				newMinAncestryMembers = append(newMinAncestryMembers, currentValue)
   152  				break
   153  			}
   154  		}
   155  	}
   156  	o.MinAncestryMembers = newMinAncestryMembers
   157  
   158  }
   159  
   160  func (o *GroupMember) MergeRaw(source gotenobject.GotenObjectExt) {
   161  	o.Merge(source.(*GroupMember))
   162  }