\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}