null.GetString
发布者:admin 发表于:438天前 阅读数:540 评论:0

本文整理汇总了Golang中butler/null.GetString函数的典型用法代码### 示例。如果您正苦于以下问题:Golang GetString函数的具体用法?Golang GetString怎么用?Golang GetString使用的例子?那么恭喜您, 这里精选的函数代码### 示例或许可以为您提供帮助。

在下文中一共展示了GetString函数的20个代码### 示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码### 示例。

示例1: resolveHeader

func (pkg *Package) resolveHeader(function *tp.Function) {
    returnType := null.GetString(function.ReturnType)
    if len(returnType) > 0 {
        function.ReturnTypeId = proto.Int32(int32(pkg.findTypeIndex(returnType)))
        function.ReturnType = nil
    }

    scopeType := null.GetString(function.ScopeType)
    if len(scopeType) > 0 {
        function.ScopeTypeId = proto.Int32(int32(pkg.findTypeIndex(scopeType)))
        function.ScopeType = nil
    }

    opensType := null.GetString(function.OpensType)
    if len(opensType) > 0 {
        function.OpensTypeId = proto.Int32(int32(pkg.findTypeIndex(opensType)))
        function.OpensType = nil
    }

    for _, arg := range function.Args {
        typeName := null.GetString(arg.TypeString)
        if len(typeName) > 0 {
            arg.TypeId = proto.Int32(int32(pkg.findTypeIndex(typeName)))
            arg.TypeString = nil
        }
    }
}

开发者ID:nmakiya,项目名称:tritium,代码行数:27,代码来源:resolve.go

示例2: Write

func (m *Mixer) Write(path string) (outputPath string, err error) {

    name := null.GetString(m.Name)
    version := null.GetString(m.Version)
    outputPath = filepath.Join(path, name+"-"+version+".mxr")

    bytes, err := pb.Marshal(m)
    if err != nil {
        return
    }

    bytes = crypto.Encrypt(bytes)

    err = os.MkdirAll(path, fileutil.DIR_PERMS)
    if err != nil {
        return
    }

    err = ioutil.WriteFile(outputPath, bytes, fileutil.FILE_PERMS)
    if err != nil {
        return
    }

    return
}

开发者ID:nmakiya,项目名称:tritium,代码行数:25,代码来源:mixer.go

示例3: Merge

func (pkg *Package) Merge(otherPackage *tp.Package) {

    if otherPackage == nil {
        return
    }

    //// Reflection would make this code cleaner:

    var existingTypeId int

    for _, someType := range otherPackage.Types {
        existingTypeId = pkg.GetTypeId(null.GetString(someType.Name))
        if existingTypeId == -1 {
            pkg.Types = append(pkg.Types, someType)
        }
    }

    for _, function := range otherPackage.Functions {

        if null.GetBool(function.BuiltIn) {
            pkg.resolveHeader(function)
        } else {
            resolveDefinition(pkg.Package, function, "")
        }
        pkg.Package.Functions = append(pkg.Package.Functions, function)
    }

    for _, dependency := range otherPackage.Dependencies {
        pkg.Dependencies = append(pkg.Dependencies, dependency)
    }

    otherName := null.GetString(otherPackage.Name)
    pkg.Dependencies = append(pkg.Dependencies, otherName)
    pkg.Log.Infof("Added dependency (" + otherName + ") to " + null.GetString(pkg.Name) + "'s loaded dependencies")
}

开发者ID:nmakiya,项目名称:tritium,代码行数:35,代码来源:output.go

示例4: ancestralFuncStub

func ancestralFuncStub(pkg *tp.Package, fun *tp.Function) *string {
    foundAncestor := false

    name := null.GetString(fun.Name)
    args := ""
    for _, arg := range fun.Args {
        argType := null.GetInt32(arg.TypeId)
        ancestralArgType := FindAncestralType(pkg, argType)

        if ancestralArgType != -1 {
            foundAncestor = true
            argType = ancestralArgType
        }

        argTypeString := pkg.GetTypeName(argType)

        argName := argTypeString
        argName = argName + " %" + null.GetString(arg.Name)
        args = args + ", " + argName
    }
    if len(args) > 1 {
        args = args[2:]
    }

    returnType := null.GetInt32(fun.ReturnTypeId)
    ancestralReturnType := FindAncestralType(pkg, returnType)

    if ancestralReturnType != -1 {
        foundAncestor = true
        returnType = ancestralReturnType
    }

    returnTypeString := pkg.GetTypeName(returnType)
    returnVal := name + "(" + args + ") " + returnTypeString + " "

    opensType := null.GetInt32(fun.OpensTypeId)
    ancestralOpensType := FindAncestralType(pkg, opensType)

    if ancestralOpensType != -1 {
        foundAncestor = true
        opensType = ancestralOpensType
    }

    opensTypeString := pkg.GetTypeName(opensType)

    if opensTypeString != "Base" {
        returnVal = returnVal + opensTypeString
    }

    if foundAncestor {
        return &returnVal
    }
    return nil

}

开发者ID:nmakiya,项目名称:tritium,代码行数:55,代码来源:doc.go

示例5: BuildMixer

func BuildMixer(buildPath string, name string, dataPath string) *Mixer {
    rawPath, err := findInBuildPath(buildPath, name)

    if err != nil {
        panic(err.Error())
    }

    path := *rawPath

    raw_mixer := tp.NewMixer(filepath.Clean(path))
    mixer := &Mixer{
        Mixer:          raw_mixer,
        LibraryPath:    buildPath,
        DefinitionPath: path,
        DataPath:       dataPath,
    }
    // println("func BuildMixer")
    // println("build path:", buildPath)
    // println("definition path:", path)
    // println()

    rewritersDirectory := filepath.Join(path, "/rewriters")
    mixer.Rewriters = tp.CollectFiles(rewritersDirectory)

    packageDirectory := filepath.Join(path, "/package")
    mixer.RootPackage = NewRootPackage(packageDirectory, null.GetString(mixer.Name), dataPath)

    mixer.loadDependentMixers()

    error := BuildRootPackage(mixer.RootPackage, packageDirectory, null.GetString(mixer.Name))

    if error == nil {
        //mixer.RootPackage = pkg
        // Now that we're done resolving, slice off the members! (Ouch)
        mixer.Package = mixer.RootPackage.Package

    } else if error.Code != NOT_FOUND {
        //TODO : Put this into a debug log
        panic(error.Message)
    }

    versionFile := filepath.Join(mixer.DefinitionPath, "..", "..", "JENKINS")
    buildNumber, err := ioutil.ReadFile(versionFile)

    if err == nil {
        mixer.Version = proto.String(null.GetString(mixer.Version) + "." + strings.Trim(string(buildNumber), "\n\r "))
    }

    return mixer
}

开发者ID:nmakiya,项目名称:tritium,代码行数:50,代码来源:mixer.go

示例6: CheckForLocationExport

func (result *CheckResult) CheckForLocationExport(script *tp.ScriptObject) {
    iterate(script, func(ins *tp.Instruction) {
        if *ins.Type == constants.Instruction_FUNCTION_CALL {
            name := null.GetString(ins.Value)
            if name == "export" {
                if ins.Arguments != nil {
                    if null.GetString(ins.Arguments[0].Value) == "location" {
                        result.AddScriptWarning(script, ins, "Incorrect export of location! Use \"Location\" not \"location\"")
                    }
                }
            }
        }
    })
}

开发者ID:nmakiya,项目名称:tritium,代码行数:14,代码来源:checks.go

示例7: ShortFuncStub

func ShortFuncStub(pkg *tp.Package, fun *tp.Function) string {
    name := null.GetString(fun.Name)
    args := ""
    for _, arg := range fun.Args {
        t := pkg.Types[int(null.GetInt32(arg.TypeId))]
        argName := null.GetString(t.Name)
        argName = argName
        args = args + ", " + argName
    }
    if len(args) > 1 {
        args = args[2:]
    }
    returnVal := name + "(" + args + ")"
    return returnVal
}

开发者ID:nmakiya,项目名称:tritium,代码行数:15,代码来源:doc.go

示例8: BaseSignature

func (f *Function) BaseSignature(pkg2 protoface.Package) string {
    pkg := pkg2.(*Package)
    args := "("
    for i, arg := range f.Args {
        argName := null.GetString(arg.TypeString)
        if argName == "" {
            t := pkg.Types[int(null.GetInt32(arg.TypeId))]
            argName = null.GetString(t.Name)
        }
        if i != 0 {
            args += ","
        }
        args += argName
    }
    return fmt.Sprintf("%s.%s%s)", pkg.GetTypeName(f.GetScopeTypeId()), f.GetName(), args)
}

开发者ID:nmakiya,项目名称:tritium,代码行数:16,代码来源:function.go

示例9: GetTypeId

func (pkg *Package) GetTypeId(name string) int {
    for id, typ := range pkg.Types {
        if null.GetString(typ.Name) == name {
            return id
        }
    }
    return -1
}

开发者ID:nmakiya,项目名称:tritium,代码行数:8,代码来源:package.go

示例10: Stub

func (f *Function) Stub(pkg2 protoface.Package) string {
    pkg := pkg2.(*Package)
    ns := f.GetNamespace()
    if len(ns) == 0 {
        ns = "tritium"
    }
    fname := fmt.Sprintf("%s.%s", ns, f.GetName())
    args := ""
    for _, arg := range f.Args {
        argName := null.GetString(arg.TypeString)
        if argName == "" {
            t := pkg.Types[int(null.GetInt32(arg.TypeId))]
            argName = null.GetString(t.Name)
        }
        args = args + "," + argName
    }
    return fname + args
}

开发者ID:nmakiya,项目名称:tritium,代码行数:18,代码来源:function.go

示例11: CheckForSelectText

func (result *CheckResult) CheckForSelectText(script *tp.ScriptObject) {
    tester := MustCompile("([^\\[\\(^]|^)(text|comment)\\(\\)([^=]|$)")
    iterate(script, func(ins *tp.Instruction) {
        if *ins.Type == constants.Instruction_FUNCTION_CALL {
            name := null.GetString(ins.Value)
            if name == "$" || name == "select" || name == "move_here" || name == "move_to" || name == "move" {

                for _, arg := range ins.Arguments {
                    xpath := null.GetString(arg.Value)
                    if tester.Match([]byte(xpath)) {
                        result.AddScriptWarning(script, ins, "Shouldn't use comment()/text() in '"+xpath+"'")
                    }
                }
            }
        }

    })
}

开发者ID:nmakiya,项目名称:tritium,代码行数:18,代码来源:checks.go

示例12: Inspect

func (m *Mixer) Inspect(printFunctions bool) {
    println("\tRewriters:")
    for _, rewriter := range m.Rewriters {
        fmt.Printf("\t\t -- %v\n", null.GetString(rewriter.Path))
    }

    println("\tRoot Package:")
    fmt.Printf(m.packageSummary(printFunctions))
}

开发者ID:nmakiya,项目名称:tritium,代码行数:9,代码来源:mixer.go

示例13: Merge

func (m *Mixer) Merge(otherMixer *Mixer) {
    // TODO(SJ) : Make sure there are no name collision in the following unions
    if len(otherMixer.Rewriters) > 0 {

        if len(m.Rewriters) > 0 {
            thisName := null.GetString(m.Name)
            otherName := null.GetString(otherMixer.Name)
            panic(fmt.Sprintf("Duplicate sets of rewriters. Mixer (%v) and mixer (%v) both define rewriters.", thisName, otherName))
        }

        m.Rewriters = otherMixer.Rewriters
    }

    // Merge only exists on (tritium) packager.Package
    m.RootPackage.Merge(otherMixer.Package)

    //  m.RootPackage.Dependencies = append(m.RootPackage.Dependencies, null.GetString(otherMixer.Name) )

}

开发者ID:nmakiya,项目名称:tritium,代码行数:19,代码来源:mixer.go

示例14: FuncStub

func FuncStub(pkg *tp.Package, fun *tp.Function) string {
    name := null.GetString(fun.Name)
    args := ""
    for _, arg := range fun.Args {
        t := pkg.Types[int(null.GetInt32(arg.TypeId))]
        argName := null.GetString(t.Name)
        argName = argName + " %" + null.GetString(arg.Name)
        args = args + ", " + argName
    }
    if len(args) > 1 {
        args = args[2:]
    }
    returnVal := name + "(" + args + ") " + fun.ReturnTypeString(pkg) + " "
    opens := fun.OpensTypeString(pkg)
    if opens != "Base" {
        returnVal = returnVal + opens
    }
    return returnVal
}

开发者ID:nmakiya,项目名称:tritium,代码行数:19,代码来源:doc.go

示例15: findTypeIndex

func (pkg *Package) findTypeIndex(name string) int {
    for index, typeObj := range pkg.Types {
        if name == null.GetString(typeObj.Name) {
            return index
        }
    }

    log.Panic("Bad type load order, type ", name, " unknown")
    return -1
}

开发者ID:nmakiya,项目名称:tritium,代码行数:10,代码来源:resolve.go

示例16: getRawTemplate

func getRawTemplate(segmentName string, mixer *tp.Mixer) (rawTemplate []uint8, err error) {

    for _, segment := range mixer.Rewriters {
        _, thisName := filepath.Split(null.GetString(segment.Path))
        if thisName == segmentName {
            return segment.Data, nil
        }
    }

    return nil, errors.New(fmt.Sprintf("Could not find rewriter: %v", segmentName))
}

开发者ID:nmakiya,项目名称:tritium,代码行数:11,代码来源:generator.go

示例17: CheckForNotMisuse

func (result *CheckResult) CheckForNotMisuse(script *tp.ScriptObject) {
    iterate(script, func(ins *tp.Instruction) {
        if *ins.Type == constants.Instruction_FUNCTION_CALL {
            name := null.GetString(ins.Value)
            if name == "match" || name == "with" {
                if ins.Arguments != nil {
                    for _, arg := range ins.Arguments {
                        if *arg.Type == constants.Instruction_FUNCTION_CALL {
                            if null.GetString(arg.Value) == "not" {
                                result.AddScriptWarning(script, ins, "Possible misuse of not()– remember not is the opposite of with!")
                            }
                        }
                    }
                }

            }
        }

    })
}

开发者ID:nmakiya,项目名称:tritium,代码行数:20,代码来源:checks.go

示例18: Clone

func (fun *Function) Clone() protoface.Function {
    bytes, err := pb.Marshal(fun)

    if err != nil {
        panic("Couldn't clone function" + null.GetString(fun.Name))
    }

    newFun := &Function{}
    pb.Unmarshal(bytes, newFun)

    return newFun
}

开发者ID:nmakiya,项目名称:tritium,代码行数:12,代码来源:function.go

示例19: Process

func Process(pkg *tp.Package) string {
    for tindex, ttype := range pkg.Types {
        ttypeString := null.GetString(ttype.Name)
        println()
        for _, fun := range pkg.Functions {
            if tindex == int(null.GetInt32(fun.ScopeTypeId)) {
                println(ttypeString + "." + FuncStub(pkg, fun))
            }
        }
    }
    return ""
}

开发者ID:nmakiya,项目名称:tritium,代码行数:12,代码来源:doc.go

示例20: CheckXpath

func (result *CheckResult) CheckXpath(script *tp.ScriptObject) {
    iterate(script, func(ins *tp.Instruction) {
        if *ins.Type == constants.Instruction_FUNCTION_CALL {
            name := null.GetString(ins.Value)
            // These all take xpath as the first param
            for _, xpath_func := range xpath_funcs {
                if name == xpath_func {
                    if ins.Arguments != nil {
                        if len(ins.Arguments) > 0 {
                            test_xpath := null.GetString(ins.Arguments[0].Value)
                            err := xpath.Check(test_xpath)
                            if err != nil {
                                result.AddXpathWarning(script, ins, err.Error())
                            }
                        }
                    }
                }
            }
        }
    })
}

开发者ID:nmakiya,项目名称:tritium,代码行数:21,代码来源:xpath.go