### Name: setClassUnion ### Title: Classes Defined as the Union of Other Classes ### Aliases: setClassUnion isClassUnion ClassUnionRepresentation-class ### Keywords: programming classes ### ** Examples ## a class for either numeric or logical data setClassUnion("maybeNumber", c("numeric", "logical")) ## use the union as the data part of another class setClass("withId", representation("maybeNumber", id = "character")) w1 <- new("withId", 1:10, id = "test 1") w2 <- new("withId", sqrt(w1)%%1 < .01, id = "Perfect squares") ## add class "complex" to the union "maybeNumber" setIs("complex", "maybeNumber") w3 <- new("withId", complex(real = 1:10, imaginary = sqrt(1:10))) ## a class union containing the existing class union "OptionalFunction" setClassUnion("maybeCode", c("expression", "language", "OptionalFunction")) is(quote(sqrt(1:10)), "maybeCode") ## TRUE ## Don't show: ## The following test is less trivial than it looks. ## It depends on the assignment of the data part NOT performing a ## strict coerce to "numeric" on the way to satisfying ## is(ttt, "maybeNumber"). stopifnot(identical(w1@.Data, 1:10)) ## End Don't show