R/jlValue_Dict.R

Defines functions names.Dict jlDict

jlDict <-  function(...) {
    obj <- list(...)
    if (!.jlrunning()) .jlinit()
    jlval <- jlvalue_eval("Dict{Symbol, Any}()")
    vars <- list()
    pairs <- list()
    for (nm in names(obj)) {
        vars[[nm]] <- jlvalue_eval(obj[[nm]])
        pairs[[nm]] <- jlcall("=>", jlsymbol(nm), vars[[nm]])
        jlcall("push!", jlval, pairs[[nm]])
    }
    jlval
}

## TODO: toR.Dict

names.Dict <- function(jlval) jlRcall("collect",jlcall("keys",jlval))

"[.Dict" <- function(jlval, field) {
     if (field %in% names(jlval)) {
        jlcall("getindex",jlval,jlsymbol(field))
    } else {
        NULL
    }
}

"$.Dict" <- function(jlval, field) jlval[field]
rcqls/jl4R documentation built on April 14, 2024, 11:34 p.m.