A key-value store for R6::R6 objects. On retrieval of an object, the following applies:
If the object is a R6ClassGenerator
, it is initialized with new()
.
If the object is a function, it is called and must return an instance of a R6::R6 object.
If the object is an instance of a R6 class, it is returned as-is.
Default argument required for construction can be stored alongside their constructors by passing them to $add()
.
as.data.table(d)
Dictionary -> data.table::data.table()
Converts the dictionary to a data.table::data.table()
.
items
(environment()
)
Stores the items of the dictionary
new()
Construct a new Dictionary.
Dictionary$new()
keys()
Returns all keys which comply to the regular expression pattern
.
If pattern
is NULL
(default), all keys are returned.
Dictionary$keys(pattern = NULL)
pattern
(character(1)
).
character()
of keys.
has()
Returns a logical vector with TRUE
at its i-th position if the i-th key exists.
Dictionary$has(keys)
keys
(character()
).
get()
Retrieves object with key key
from the dictionary.
Additional arguments must be named and are passed to the constructor of the stored object.
Dictionary$get(key, ...)
key
(character(1)
).
...
(any
)
Passed down to constructor.
Object with corresponding key.
mget()
Returns objects with keys keys
in a list named with keys
.
Additional arguments must be named and are passed to the constructors of the stored objects.
Dictionary$mget(keys, ...)
keys
(character()
).
...
(any
)
Passed down to constructor.
Named list()
of objects with corresponding keys.
add()
Adds object value
to the dictionary with key key
, potentially overwriting a previously stored item.
Additional arguments in ...
must be named and are passed as default arguments to value
during construction.
The names of all additional arguments which are mandatory for construction and missing in ...
should be listed in required_args
.
Dictionary$add(key, value, ..., required_args = character())
key
(character(1)
).
value
(any
).
...
(any
)
Passed down to constructor.
required_args
(character()
).
Dictionary
.
keys
(character()
)
Keys of objects to remove.
Dictionary
.
required_args()
Returns the names of arguments required to construct the object.
Dictionary$required_args(key)
key
(character(1)
)
Key of object to query for required arguments.
character()
of names of required arguments.
clone()
The objects of this class are cloneable with this method.
Dictionary$clone(deep = FALSE)
deep
Whether to make a deep clone.
library(R6)
item1 = R6Class("Item", public = list(x = 1))
item2 = R6Class("Item", public = list(x = 2))
d = Dictionary$new()
d$add("a", item1)
d$add("b", item2)
d$add("c", item1$new())
d$keys()
d$get("a")
d$mget(c("a", "b"))
Run the code above in your browser using DataLab