-
Notifications
You must be signed in to change notification settings - Fork 0
/
checked_out.go
41 lines (35 loc) · 958 Bytes
/
checked_out.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package sku
import (
"fmt"
"github.com/friedenberg/zit/src/delta/checked_out_state"
)
type CheckedOut struct {
Internal Transacted
External External
State checked_out_state.State
}
func (c *CheckedOut) InternalAndExternalEqualsSansTai() bool {
return c.External.Metadatei.EqualsSansTai(
c.Internal.Metadatei,
)
}
func (c *CheckedOut) DetermineState(justCheckedOut bool) {
if c.Internal.GetObjekteSha().IsNull() {
c.State = checked_out_state.StateUntracked
} else if c.Internal.GetMetadatei().EqualsSansTai(c.External.GetMetadatei()) {
if justCheckedOut {
c.State = checked_out_state.StateJustCheckedOut
} else {
c.State = checked_out_state.StateExistsAndSame
}
} else {
if justCheckedOut {
c.State = checked_out_state.StateJustCheckedOutButDifferent
} else {
c.State = checked_out_state.StateExistsAndDifferent
}
}
}
func (a CheckedOut) String() string {
return fmt.Sprintf("%s %s", a.Internal, a.External)
}