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 withnew()
.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()
.
S3 methods
as.data.table(d)
Dictionary ->data.table::data.table()
Converts the dictionary to adata.table::data.table()
.
Public fields
items
(
environment()
)
Stores the items of the dictionary
Methods
Method format()
Format object as simple string.
Method keys()
Returns all keys which comply to the regular expression pattern
.
If pattern
is NULL
(default), all keys are returned.
Returns
character()
of keys.
Method has()
Returns a logical vector with TRUE
at its i-th position if the i-th key exists.
Arguments
keys
(
character()
).
Method get()
Retrieves object with key key
from the dictionary.
Additional arguments must be named and are passed to the constructor of the stored object.
Method 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.
Arguments
keys
(
character()
)....
(
any
)
Passed down to constructor.
Returns
Named list()
of objects with corresponding keys.
Method 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.
Usage
Dictionary$add(key, value, ..., .prototype_args = list())
Arguments
key
(
character(1)
).value
(
any
)....
(
any
)
Passed down to constructor..prototype_args
(
list()
)
List of arguments to construct a prototype object. Can be used when objects have construction arguments without defaults.
Method remove()
Removes objects with from the dictionary.
Arguments
keys
(
character()
)
Keys of objects to remove.
Method prototype_args()
Returns the arguments required to construct a simple prototype of the object.
Returns
list()
of prototype arguments
Examples
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()
#> [1] "a" "b" "c"
d$get("a")
#> <Item>
#> Public:
#> clone: function (deep = FALSE)
#> x: 1
d$mget(c("a", "b"))
#> $a
#> <Item>
#> Public:
#> clone: function (deep = FALSE)
#> x: 1
#>
#> $b
#> <Item>
#> Public:
#> clone: function (deep = FALSE)
#> x: 2
#>