package arn

// HasLocked implements common like and unlike methods.
type hasLocked struct {
	Locked bool `json:"locked"`
}

// Lock locks the object.
func (obj *hasLocked) Lock(userID UserID) {
	obj.Locked = true
}

// Unlock unlocks the object.
func (obj *hasLocked) Unlock(userID UserID) {
	obj.Locked = false
}

// IsLocked implements the Lockable interface.
func (obj *hasLocked) IsLocked() bool {
	return obj.Locked
}