// package arch_use_group -- группа вариантов использования package arch_use_group import ( "fmt" "gitp78su.ipnodns.ru/svi/goarch/lev0/alias" "gitp78su.ipnodns.ru/svi/goarch/lev0/types" "gitp78su.ipnodns.ru/svi/goarch/lev1/arch_node" "gitp78su.ipnodns.ru/svi/kern/v3" "gitp78su.ipnodns.ru/svi/kern/v3/krn/ktypes" ) // ArchUseCaseGroup -- группа вариантов использования type ArchUseCaseGroup struct { *arch_node.ArchNode } var ( hassert = kern.GetFnHassert() ) // NewArchUseCaseGroup -- возвращает новую группу вариантов использования func NewArchUseCaseGroup(parentId alias.ArchId) *ArchUseCaseGroup { sf := &ArchUseCaseGroup{ ArchNode: arch_node.NewArchNode("use_case_group", parentId), } sf.SelfCheck() _ = types.IArchUseGroup(sf) return sf } // Len -- заглушка на длину func (sf *ArchUseCaseGroup) Len() int { return 0 } // InvarCheck -- проверка инвариантов func (sf *ArchUseCaseGroup) InvarCheck() ktypes.Option[error] { if sf.ArchNode == nil { err := fmt.Errorf("ArchUseCaseGroup.InvarCheck(): ArchNode==nil") return ktypes.NewSome(err) } return ktypes.NewNone[error]() } // Size -- возвращает размер // //go:fix inline // func (sf *ArchUseCaseGroup) Size() types.IViewSize { // return sf.Size_ // } // Links -- заглушка на связи между объектами // //go:fix inline func (sf *ArchUseCaseGroup) Links() []alias.ArchId { return []alias.ArchId{sf.Id()} } // Check -- заглушка под проверку func (sf *ArchUseCaseGroup) SelfCheck() { hassert(sf.ArchNode != nil, "NewUseGroup(): IElemBase is nil") }