// Code generated by ent, DO NOT EDIT.
package ent
import (
"context"
"errors"
"fmt"
"entgo.io/ent/dialect/sql"
"entgo.io/ent/dialect/sql/sqlgraph"
"entgo.io/ent/schema/field"
"github.com/safedep/vet/ent/codesignaturematch"
"github.com/safedep/vet/ent/codesourcefile"
"github.com/safedep/vet/ent/depsusageevidence"
"github.com/safedep/vet/ent/predicate"
)
// CodeSourceFileUpdate is the builder for updating CodeSourceFile entities.
type CodeSourceFileUpdate struct {
config
hooks []Hook
mutation *CodeSourceFileMutation
}
// Where appends a list predicates to the CodeSourceFileUpdate builder.
func (csfu *CodeSourceFileUpdate) Where(ps ...predicate.CodeSourceFile) *CodeSourceFileUpdate {
csfu.mutation.Where(ps...)
return csfu
}
// SetPath sets the "path" field.
func (csfu *CodeSourceFileUpdate) SetPath(s string) *CodeSourceFileUpdate {
csfu.mutation.SetPath(s)
return csfu
}
// SetNillablePath sets the "path" field if the given value is not nil.
func (csfu *CodeSourceFileUpdate) SetNillablePath(s *string) *CodeSourceFileUpdate {
if s != nil {
csfu.SetPath(*s)
}
return csfu
}
// AddDepsUsageEvidenceIDs adds the "deps_usage_evidences" edge to the DepsUsageEvidence entity by IDs.
func (csfu *CodeSourceFileUpdate) AddDepsUsageEvidenceIDs(ids ...int) *CodeSourceFileUpdate {
csfu.mutation.AddDepsUsageEvidenceIDs(ids...)
return csfu
}
// AddDepsUsageEvidences adds the "deps_usage_evidences" edges to the DepsUsageEvidence entity.
func (csfu *CodeSourceFileUpdate) AddDepsUsageEvidences(d ...*DepsUsageEvidence) *CodeSourceFileUpdate {
ids := make([]int, len(d))
for i := range d {
ids[i] = d[i].ID
}
return csfu.AddDepsUsageEvidenceIDs(ids...)
}
// AddSignatureMatchIDs adds the "signature_matches" edge to the CodeSignatureMatch entity by IDs.
func (csfu *CodeSourceFileUpdate) AddSignatureMatchIDs(ids ...int) *CodeSourceFileUpdate {
csfu.mutation.AddSignatureMatchIDs(ids...)
return csfu
}
// AddSignatureMatches adds the "signature_matches" edges to the CodeSignatureMatch entity.
func (csfu *CodeSourceFileUpdate) AddSignatureMatches(c ...*CodeSignatureMatch) *CodeSourceFileUpdate {
ids := make([]int, len(c))
for i := range c {
ids[i] = c[i].ID
}
return csfu.AddSignatureMatchIDs(ids...)
}
// Mutation returns the CodeSourceFileMutation object of the builder.
func (csfu *CodeSourceFileUpdate) Mutation() *CodeSourceFileMutation {
return csfu.mutation
}
// ClearDepsUsageEvidences clears all "deps_usage_evidences" edges to the DepsUsageEvidence entity.
func (csfu *CodeSourceFileUpdate) ClearDepsUsageEvidences() *CodeSourceFileUpdate {
csfu.mutation.ClearDepsUsageEvidences()
return csfu
}
// RemoveDepsUsageEvidenceIDs removes the "deps_usage_evidences" edge to DepsUsageEvidence entities by IDs.
func (csfu *CodeSourceFileUpdate) RemoveDepsUsageEvidenceIDs(ids ...int) *CodeSourceFileUpdate {
csfu.mutation.RemoveDepsUsageEvidenceIDs(ids...)
return csfu
}
// RemoveDepsUsageEvidences removes "deps_usage_evidences" edges to DepsUsageEvidence entities.
func (csfu *CodeSourceFileUpdate) RemoveDepsUsageEvidences(d ...*DepsUsageEvidence) *CodeSourceFileUpdate {
ids := make([]int, len(d))
for i := range d {
ids[i] = d[i].ID
}
return csfu.RemoveDepsUsageEvidenceIDs(ids...)
}
// ClearSignatureMatches clears all "signature_matches" edges to the CodeSignatureMatch entity.
func (csfu *CodeSourceFileUpdate) ClearSignatureMatches() *CodeSourceFileUpdate {
csfu.mutation.ClearSignatureMatches()
return csfu
}
// RemoveSignatureMatchIDs removes the "signature_matches" edge to CodeSignatureMatch entities by IDs.
func (csfu *CodeSourceFileUpdate) RemoveSignatureMatchIDs(ids ...int) *CodeSourceFileUpdate {
csfu.mutation.RemoveSignatureMatchIDs(ids...)
return csfu
}
// RemoveSignatureMatches removes "signature_matches" edges to CodeSignatureMatch entities.
func (csfu *CodeSourceFileUpdate) RemoveSignatureMatches(c ...*CodeSignatureMatch) *CodeSourceFileUpdate {
ids := make([]int, len(c))
for i := range c {
ids[i] = c[i].ID
}
return csfu.RemoveSignatureMatchIDs(ids...)
}
// Save executes the query and returns the number of nodes affected by the update operation.
func (csfu *CodeSourceFileUpdate) Save(ctx context.Context) (int, error) {
return withHooks(ctx, csfu.sqlSave, csfu.mutation, csfu.hooks)
}
// SaveX is like Save, but panics if an error occurs.
func (csfu *CodeSourceFileUpdate) SaveX(ctx context.Context) int {
affected, err := csfu.Save(ctx)
if err != nil {
panic(err)
}
return affected
}
// Exec executes the query.
func (csfu *CodeSourceFileUpdate) Exec(ctx context.Context) error {
_, err := csfu.Save(ctx)
return err
}
// ExecX is like Exec, but panics if an error occurs.
func (csfu *CodeSourceFileUpdate) ExecX(ctx context.Context) {
if err := csfu.Exec(ctx); err != nil {
panic(err)
}
}
// check runs all checks and user-defined validators on the builder.
func (csfu *CodeSourceFileUpdate) check() error {
if v, ok := csfu.mutation.Path(); ok {
if err := codesourcefile.PathValidator(v); err != nil {
return &ValidationError{Name: "path", err: fmt.Errorf(`ent: validator failed for field "CodeSourceFile.path": %w`, err)}
}
}
return nil
}
func (csfu *CodeSourceFileUpdate) sqlSave(ctx context.Context) (n int, err error) {
if err := csfu.check(); err != nil {
return n, err
}
_spec := sqlgraph.NewUpdateSpec(codesourcefile.Table, codesourcefile.Columns, sqlgraph.NewFieldSpec(codesourcefile.FieldID, field.TypeInt))
if ps := csfu.mutation.predicates; len(ps) > 0 {
_spec.Predicate = func(selector *sql.Selector) {
for i := range ps {
ps[i](selector)
}
}
}
if value, ok := csfu.mutation.Path(); ok {
_spec.SetField(codesourcefile.FieldPath, field.TypeString, value)
}
if csfu.mutation.DepsUsageEvidencesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.DepsUsageEvidencesTable,
Columns: []string{codesourcefile.DepsUsageEvidencesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(depsusageevidence.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := csfu.mutation.RemovedDepsUsageEvidencesIDs(); len(nodes) > 0 && !csfu.mutation.DepsUsageEvidencesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.DepsUsageEvidencesTable,
Columns: []string{codesourcefile.DepsUsageEvidencesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(depsusageevidence.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := csfu.mutation.DepsUsageEvidencesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.DepsUsageEvidencesTable,
Columns: []string{codesourcefile.DepsUsageEvidencesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(depsusageevidence.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if csfu.mutation.SignatureMatchesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.SignatureMatchesTable,
Columns: []string{codesourcefile.SignatureMatchesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(codesignaturematch.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := csfu.mutation.RemovedSignatureMatchesIDs(); len(nodes) > 0 && !csfu.mutation.SignatureMatchesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.SignatureMatchesTable,
Columns: []string{codesourcefile.SignatureMatchesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(codesignaturematch.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := csfu.mutation.SignatureMatchesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.SignatureMatchesTable,
Columns: []string{codesourcefile.SignatureMatchesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(codesignaturematch.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if n, err = sqlgraph.UpdateNodes(ctx, csfu.driver, _spec); err != nil {
if _, ok := err.(*sqlgraph.NotFoundError); ok {
err = &NotFoundError{codesourcefile.Label}
} else if sqlgraph.IsConstraintError(err) {
err = &ConstraintError{msg: err.Error(), wrap: err}
}
return 0, err
}
csfu.mutation.done = true
return n, nil
}
// CodeSourceFileUpdateOne is the builder for updating a single CodeSourceFile entity.
type CodeSourceFileUpdateOne struct {
config
fields []string
hooks []Hook
mutation *CodeSourceFileMutation
}
// SetPath sets the "path" field.
func (csfuo *CodeSourceFileUpdateOne) SetPath(s string) *CodeSourceFileUpdateOne {
csfuo.mutation.SetPath(s)
return csfuo
}
// SetNillablePath sets the "path" field if the given value is not nil.
func (csfuo *CodeSourceFileUpdateOne) SetNillablePath(s *string) *CodeSourceFileUpdateOne {
if s != nil {
csfuo.SetPath(*s)
}
return csfuo
}
// AddDepsUsageEvidenceIDs adds the "deps_usage_evidences" edge to the DepsUsageEvidence entity by IDs.
func (csfuo *CodeSourceFileUpdateOne) AddDepsUsageEvidenceIDs(ids ...int) *CodeSourceFileUpdateOne {
csfuo.mutation.AddDepsUsageEvidenceIDs(ids...)
return csfuo
}
// AddDepsUsageEvidences adds the "deps_usage_evidences" edges to the DepsUsageEvidence entity.
func (csfuo *CodeSourceFileUpdateOne) AddDepsUsageEvidences(d ...*DepsUsageEvidence) *CodeSourceFileUpdateOne {
ids := make([]int, len(d))
for i := range d {
ids[i] = d[i].ID
}
return csfuo.AddDepsUsageEvidenceIDs(ids...)
}
// AddSignatureMatchIDs adds the "signature_matches" edge to the CodeSignatureMatch entity by IDs.
func (csfuo *CodeSourceFileUpdateOne) AddSignatureMatchIDs(ids ...int) *CodeSourceFileUpdateOne {
csfuo.mutation.AddSignatureMatchIDs(ids...)
return csfuo
}
// AddSignatureMatches adds the "signature_matches" edges to the CodeSignatureMatch entity.
func (csfuo *CodeSourceFileUpdateOne) AddSignatureMatches(c ...*CodeSignatureMatch) *CodeSourceFileUpdateOne {
ids := make([]int, len(c))
for i := range c {
ids[i] = c[i].ID
}
return csfuo.AddSignatureMatchIDs(ids...)
}
// Mutation returns the CodeSourceFileMutation object of the builder.
func (csfuo *CodeSourceFileUpdateOne) Mutation() *CodeSourceFileMutation {
return csfuo.mutation
}
// ClearDepsUsageEvidences clears all "deps_usage_evidences" edges to the DepsUsageEvidence entity.
func (csfuo *CodeSourceFileUpdateOne) ClearDepsUsageEvidences() *CodeSourceFileUpdateOne {
csfuo.mutation.ClearDepsUsageEvidences()
return csfuo
}
// RemoveDepsUsageEvidenceIDs removes the "deps_usage_evidences" edge to DepsUsageEvidence entities by IDs.
func (csfuo *CodeSourceFileUpdateOne) RemoveDepsUsageEvidenceIDs(ids ...int) *CodeSourceFileUpdateOne {
csfuo.mutation.RemoveDepsUsageEvidenceIDs(ids...)
return csfuo
}
// RemoveDepsUsageEvidences removes "deps_usage_evidences" edges to DepsUsageEvidence entities.
func (csfuo *CodeSourceFileUpdateOne) RemoveDepsUsageEvidences(d ...*DepsUsageEvidence) *CodeSourceFileUpdateOne {
ids := make([]int, len(d))
for i := range d {
ids[i] = d[i].ID
}
return csfuo.RemoveDepsUsageEvidenceIDs(ids...)
}
// ClearSignatureMatches clears all "signature_matches" edges to the CodeSignatureMatch entity.
func (csfuo *CodeSourceFileUpdateOne) ClearSignatureMatches() *CodeSourceFileUpdateOne {
csfuo.mutation.ClearSignatureMatches()
return csfuo
}
// RemoveSignatureMatchIDs removes the "signature_matches" edge to CodeSignatureMatch entities by IDs.
func (csfuo *CodeSourceFileUpdateOne) RemoveSignatureMatchIDs(ids ...int) *CodeSourceFileUpdateOne {
csfuo.mutation.RemoveSignatureMatchIDs(ids...)
return csfuo
}
// RemoveSignatureMatches removes "signature_matches" edges to CodeSignatureMatch entities.
func (csfuo *CodeSourceFileUpdateOne) RemoveSignatureMatches(c ...*CodeSignatureMatch) *CodeSourceFileUpdateOne {
ids := make([]int, len(c))
for i := range c {
ids[i] = c[i].ID
}
return csfuo.RemoveSignatureMatchIDs(ids...)
}
// Where appends a list predicates to the CodeSourceFileUpdate builder.
func (csfuo *CodeSourceFileUpdateOne) Where(ps ...predicate.CodeSourceFile) *CodeSourceFileUpdateOne {
csfuo.mutation.Where(ps...)
return csfuo
}
// Select allows selecting one or more fields (columns) of the returned entity.
// The default is selecting all fields defined in the entity schema.
func (csfuo *CodeSourceFileUpdateOne) Select(field string, fields ...string) *CodeSourceFileUpdateOne {
csfuo.fields = append([]string{field}, fields...)
return csfuo
}
// Save executes the query and returns the updated CodeSourceFile entity.
func (csfuo *CodeSourceFileUpdateOne) Save(ctx context.Context) (*CodeSourceFile, error) {
return withHooks(ctx, csfuo.sqlSave, csfuo.mutation, csfuo.hooks)
}
// SaveX is like Save, but panics if an error occurs.
func (csfuo *CodeSourceFileUpdateOne) SaveX(ctx context.Context) *CodeSourceFile {
node, err := csfuo.Save(ctx)
if err != nil {
panic(err)
}
return node
}
// Exec executes the query on the entity.
func (csfuo *CodeSourceFileUpdateOne) Exec(ctx context.Context) error {
_, err := csfuo.Save(ctx)
return err
}
// ExecX is like Exec, but panics if an error occurs.
func (csfuo *CodeSourceFileUpdateOne) ExecX(ctx context.Context) {
if err := csfuo.Exec(ctx); err != nil {
panic(err)
}
}
// check runs all checks and user-defined validators on the builder.
func (csfuo *CodeSourceFileUpdateOne) check() error {
if v, ok := csfuo.mutation.Path(); ok {
if err := codesourcefile.PathValidator(v); err != nil {
return &ValidationError{Name: "path", err: fmt.Errorf(`ent: validator failed for field "CodeSourceFile.path": %w`, err)}
}
}
return nil
}
func (csfuo *CodeSourceFileUpdateOne) sqlSave(ctx context.Context) (_node *CodeSourceFile, err error) {
if err := csfuo.check(); err != nil {
return _node, err
}
_spec := sqlgraph.NewUpdateSpec(codesourcefile.Table, codesourcefile.Columns, sqlgraph.NewFieldSpec(codesourcefile.FieldID, field.TypeInt))
id, ok := csfuo.mutation.ID()
if !ok {
return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "CodeSourceFile.id" for update`)}
}
_spec.Node.ID.Value = id
if fields := csfuo.fields; len(fields) > 0 {
_spec.Node.Columns = make([]string, 0, len(fields))
_spec.Node.Columns = append(_spec.Node.Columns, codesourcefile.FieldID)
for _, f := range fields {
if !codesourcefile.ValidColumn(f) {
return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)}
}
if f != codesourcefile.FieldID {
_spec.Node.Columns = append(_spec.Node.Columns, f)
}
}
}
if ps := csfuo.mutation.predicates; len(ps) > 0 {
_spec.Predicate = func(selector *sql.Selector) {
for i := range ps {
ps[i](selector)
}
}
}
if value, ok := csfuo.mutation.Path(); ok {
_spec.SetField(codesourcefile.FieldPath, field.TypeString, value)
}
if csfuo.mutation.DepsUsageEvidencesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.DepsUsageEvidencesTable,
Columns: []string{codesourcefile.DepsUsageEvidencesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(depsusageevidence.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := csfuo.mutation.RemovedDepsUsageEvidencesIDs(); len(nodes) > 0 && !csfuo.mutation.DepsUsageEvidencesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.DepsUsageEvidencesTable,
Columns: []string{codesourcefile.DepsUsageEvidencesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(depsusageevidence.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := csfuo.mutation.DepsUsageEvidencesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.DepsUsageEvidencesTable,
Columns: []string{codesourcefile.DepsUsageEvidencesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(depsusageevidence.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
if csfuo.mutation.SignatureMatchesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.SignatureMatchesTable,
Columns: []string{codesourcefile.SignatureMatchesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(codesignaturematch.FieldID, field.TypeInt),
},
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := csfuo.mutation.RemovedSignatureMatchesIDs(); len(nodes) > 0 && !csfuo.mutation.SignatureMatchesCleared() {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.SignatureMatchesTable,
Columns: []string{codesourcefile.SignatureMatchesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(codesignaturematch.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Clear = append(_spec.Edges.Clear, edge)
}
if nodes := csfuo.mutation.SignatureMatchesIDs(); len(nodes) > 0 {
edge := &sqlgraph.EdgeSpec{
Rel: sqlgraph.O2M,
Inverse: true,
Table: codesourcefile.SignatureMatchesTable,
Columns: []string{codesourcefile.SignatureMatchesColumn},
Bidi: false,
Target: &sqlgraph.EdgeTarget{
IDSpec: sqlgraph.NewFieldSpec(codesignaturematch.FieldID, field.TypeInt),
},
}
for _, k := range nodes {
edge.Target.Nodes = append(edge.Target.Nodes, k)
}
_spec.Edges.Add = append(_spec.Edges.Add, edge)
}
_node = &CodeSourceFile{config: csfuo.config}
_spec.Assign = _node.assignValues
_spec.ScanValues = _node.scanValues
if err = sqlgraph.UpdateNode(ctx, csfuo.driver, _spec); err != nil {
if _, ok := err.(*sqlgraph.NotFoundError); ok {
err = &NotFoundError{codesourcefile.Label}
} else if sqlgraph.IsConstraintError(err) {
err = &ConstraintError{msg: err.Error(), wrap: err}
}
return nil, err
}
csfuo.mutation.done = true
return _node, nil
}