You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

57 lines
1.5 KiB

// 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
}