|
|
- // Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
-
- package container
-
- import (
- "errors"
- "fmt"
- )
-
- // 基本组件信息
- // @Implement LAPP_LF_MOM_BACKEND/container/ComponentInformation
- type ElementInformation struct {
- // 实例工厂
- factory Factory
- // 接口类型
- interfaceType Interface
- }
-
- // 创建服务组件信息
- // 参数
- // 1.工厂方法
- // 返回值:
- // 1.服务组件信息
- // 2.错误
- func NewElementInformation(factory interface{}) *ElementInformation {
-
- valueOfFactory, interfaceType := parseFactory(factory)
- return &ElementInformation{valueOfFactory, interfaceType}
- }
-
- // @Reference LAPP_LF_MOM_BACKEND/container/ComponentInformation.Interface
- func (info *ElementInformation) Interface() Interface {
- return info.interfaceType
- }
-
- // @Reference LAPP_LF_MOM_BACKEND/container/ComponentInformation.IsGlobal
- func (info *ElementInformation) IsGlobal() bool {
- return false
- }
-
- // @Reference LAPP_LF_MOM_BACKEND/container/ComponentInformation.BuildHandler
- func (info *ElementInformation) BuildHandler(sessionContext *SessionContext) (ComponentHandler, error) {
-
- if sessionContext == nil {
- return nil, errors.New(fmt.Sprintf("会话上下文不能为空!"))
- }
- instance, err := info.factory.Create(sessionContext)
- if err != nil {
- return nil, err
- }
- return NewElementHandler(instance), nil
- }
|