ref: 1a8842b33d6d83d1754267e087fd7b4f73ca9e91
dir: /refstore/files/transaction_resolve_target.go/
package files
import "fmt"
func (tx *Transaction) resolveTarget(op txOp) (resolvedWriteTarget, error) {
switch op.kind {
case txCreate:
return tx.resolveOrdinaryTarget(op.name, true)
case txUpdate, txDelete, txVerify:
return tx.resolveOrdinaryTarget(op.name, false)
case txCreateSymbolic, txUpdateSymbolic, txDeleteSymbolic, txVerifySymbolic:
refState, err := tx.directRead(op.name)
if err != nil {
return resolvedWriteTarget{}, err
}
return resolvedWriteTarget{name: op.name, loc: tx.store.loosePath(op.name), ref: refState}, nil
default:
return resolvedWriteTarget{}, fmt.Errorf("refstore/files: unsupported transaction operation %d", op.kind)
}
}