|
|
- // Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
-
- package container
-
- import (
- "errors"
- "fmt"
- )
-
- // 日志代理创建器
- // @Implement LAPP_LF_MOM_BACKEND/container/CallerBrokerBuilder
- type LogBrokerBuilder struct {
- // 代码文件
- codeFile string
- // 服务方法
- method string
- // 描述
- description string
- }
-
- // 创建日志代理创建器
- // 参数:
- // 1.代码文件
- // 2.服务方法
- // 3.描述
- // 返回值:
- // 1.日志代理创建器
- // 异常:
- // 1.方法名不能为空
- func NewLogBrokerBuilder(codeFile string, method string, description string) *LogBrokerBuilder {
- //if codeFile == "" {
- // return nil, errors.New(fmt.Sprintf("方法类型不能为空!"))
- //}
- if method == "" {
- panic(fmt.Sprintf("方法名不能为空!"))
- }
- //if description == "" {
- // return nil, errors.New(fmt.Sprintf("方法类型不能为空!"))
- //}
- return &LogBrokerBuilder{codeFile, method, description}
- }
-
- // @Reference LAPP_LF_MOM_BACKEND/container/CallerBrokerBuilder.Check
- func (builder *LogBrokerBuilder) Check(methodType Method) error {
- if methodType == nil {
- return errors.New(fmt.Sprintf("方法类型不能为空!"))
- }
- return nil
- }
-
- // @Reference LAPP_LF_MOM_BACKEND/container/CallerBrokerBuilder.Build
- func (builder *LogBrokerBuilder) Build(_ *SessionContext, caller Caller) (Caller, error) {
- if caller == nil {
- return nil, errors.New(fmt.Sprintf("调用器不能为空!"))
- }
- return (&LogBroker{caller, builder.codeFile, builder.method, builder.description}).Call, nil
- }
|