| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package owner
- import (
- "fmt"
- "gitp78su.ipnodns.ru/svi/kern/v4/d0/helpers"
- )
- // OwnerPass -- паспорт владельца.
- type OwnerPass struct {
- ownerDest *LOwner // Назначенный владелец
- ownerCur *LOwner // Текущий владелец
- }
- // CheckOwner -- проверяет правильность паспорта владельца.
- //
- // ОБЯЗАТЕЛЬНЫЙ ВЫЗОВ
- // При несовпадении назначенного владельца и фактического
- // будет вызвана паника!!!
- func (sf *OwnerPass) CheckOwner() {
- helpers.
- If(sf.ownerDest.Id() != sf.ownerCur.Id()).
- Hassert("OwnerPass.CheckOwner(): объект не принадлежит владельцу, dest=%v, cur=%v",
- sf.ownerDest, sf.ownerCur)
- }
- // Move -- переназначает владельца объекта.
- func (sf *OwnerPass) Move(owner *LOwner) *OwnerPass {
- sf.CheckOwner()
- recPass := &OwnerPass{
- ownerDest: owner,
- ownerCur: owner,
- }
- sf.ownerCur = owner
- return recPass
- }
- const (
- strPass = `OwnerPass(
- ownerDest(%v)
- ownerCur(%v)
- )`
- )
- // String -- возвращает строковое представление объекта.
- func (sf *OwnerPass) String() string {
- return fmt.Sprintf(strPass, sf.ownerDest, sf.ownerCur)
- }
|