\name{attrData-class} \docType{class} \alias{attrData-class} \alias{attrDataItem<-,attrData,character,character-method} \alias{attrDataItem,attrData,character,missing-method} \alias{attrDataItem,attrData,character,character-method} \alias{attrDefaults<-,attrData,character,ANY-method} \alias{attrDefaults<-,attrData,missing,list-method} \alias{attrDefaults,attrData,missing-method} \alias{attrDefaults,attrData,character-method} \alias{initialize,attrData-method} \alias{names,attrData-method} \alias{names<-,attrData,character-method} \alias{removeAttrDataItem<-} \alias{removeAttrDataItem<-,attrData,character,NULL-method} \title{Class "attrData"} \description{A container class to manage generic attributes. Supports named attributes with default values with methods for vectorized access. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("attrData", defaults)}. The \code{defaults} argument should be a named list containing the initial attribute names and default values. } \section{Slots}{ \describe{ \item{\code{data}:}{Where custom attribute data is stored} \item{\code{defaults}:}{A named list of known attribute names and defualt values.} } } \section{Methods}{ \describe{ \item{attrDataItem<-}{\code{signature(self = "attrData", x = "character", attr = "character")}: ... } \item{attrDataItem}{\code{signature(self = "attrData", x = "character", attr = "missing")}: ... } \item{attrDataItem}{\code{signature(self = "attrData", x = "character", attr = "character")}: ... } \item{attrDefaults<-}{\code{signature(self = "attrData", attr = "character", value = "ANY")}: ... } \item{attrDefaults<-}{\code{signature(self = "attrData", attr = "missing", value = "list")}: ... } \item{attrDefaults}{\code{signature(self = "attrData", attr = "missing")}: ... } \item{attrDefaults}{\code{signature(self = "attrData", attr = "character")}: ... } \item{initialize}{\code{signature(.Object = "attrData")}: ... } \item{names}{return the names of the stored attributes} \item{names<-}{set the names of the stored attributes} \item{removeAttrDataItem}{\code{signature(self="attrData", x="character", value="NULL")}: Remove the data associated with the key specified by \code{x}.} } } \author{Seth Falcon} \examples{ defaultProps <- list(weight=1, color="blue", friends=c("Bob", "Alice")) adat <- new("attrData", defaults=defaultProps) ## Get all defaults attrDefaults(adat) ## Or get only a specific attribute attrDefaults(adat, attr="color") ## Update default weight attrDefaults(adat, attr="weight") <- 500 ## Add new attribute attrDefaults(adat, attr="length") <- 0 ## Asking for the attributes of an element you haven't customized ## returns the defaults attrDataItem(adat, x=c("n1", "n2"), attr="length") ## You can customize values attrDataItem(adat, x=c("n1", "n2"), attr="length") <- 5 ## What keys have been customized? names(adat) } \keyword{classes}