R/global_variable.R

Defines functions .CreateGlobalVariable PricingYearFraction

.CreateGlobalVariable <- function(varName, varType) {
    getFuncName <- paste0(toupper(substring(varName, 1)), substring(varName, 2, nchar(varName)))
    setFuncName <- paste0("Set", funcVarName)
    setGeneric(
        name = setFuncName,
        def  = function(object) {
            standardGeneric(setFuncName)
        } 
    )
    
    setMethod(
        f          = setFuncName,
        signature  = varType,
        definition = function(object) {
            try(expr   = unlockBinding(sym = varName,
                                       env = .GlobalEnv),
                silent = TRUE)
            
            assign(x     = varName,
                   value = object,
                   envir = .GlobalEnv)
            
            lockBinding(sym = object,
                        env = .GlobalEnv)
            
            invisible()
        }  
    )
    
    assign(x     = getFuncName,
           value = function() {
               get(x     = varName,
                   envir = .GlobalEnv)
           })
}

.CreateGlobalVariable(varName = "valueDate",
                      varType = "Date")

.CreateGlobalVariable(varName = "dayCount",
                      varType = "character")

PricingYearFraction <- function() SetYearFraction(DayCount())
gfunk0704/StochasticVolatility documentation built on Feb. 8, 2020, 10:04 a.m.