\HeaderA{Versions}{Class "Versions"}{Versions}
\aliasA{\$<-,Versions-method}{Versions}{.Rdol.<.Rdash.,Versions.Rdash.method}
\aliasA{coerce,Versions,character-method}{Versions}{coerce,Versions,character.Rdash.method}
\aliasA{Compare,character,Versions-method}{Versions}{Compare,character,Versions.Rdash.method}
\aliasA{Compare,Versions,character-method}{Versions}{Compare,Versions,character.Rdash.method}
\aliasA{Compare,Versions,Versions-method}{Versions}{Compare,Versions,Versions.Rdash.method}
\aliasA{initialize,Versions-method}{Versions}{initialize,Versions.Rdash.method}
\aliasA{show,Versions-method}{Versions}{show,Versions.Rdash.method}
\aliasA{updateObject,Versions-method}{Versions}{updateObject,Versions.Rdash.method}
\aliasA{Versions-class}{Versions}{Versions.Rdash.class}
\aliasA{[,Versions-method}{Versions}{[,Versions.Rdash.method}
\aliasA{[<-,Versions-method}{Versions}{[<.Rdash.,Versions.Rdash.method}
\aliasA{[[<-,Versions-method}{Versions}{[[<.Rdash.,Versions.Rdash.method}
\keyword{classes}{Versions}
\begin{Description}\relax
A class to record version number information. This class is used to
report versions; to add version informaton to your own class, use
\code{\LinkA{Versioned-class}{Versioned.Rdash.class}}.
\end{Description}
\begin{Section}{Methods}
The following are defined; package developers may write additional methods.
\describe{
\item[\code{new("Versions", ...)}] Create a new \code{Versions-class} instance,
perhaps with named version elements (the contents of
\code{...}) added. Named elements of \code{versions} are
character strings that can be coerced using
\code{\LinkA{package\_version}{package.Rul.version}}, or \code{package\_version}
instances, \code{Versions-class} objects.
\item[\code{object["id"]}] Obtain version information \code{"id"} from \code{object}.
\item[\code{object["id"] <- value}] Create or update version information \code{"id"} on instance \code{object}.
\item[\code{object[["id"]]}] Obtain version information \code{"id"} from \code{object}. The result is a list of integers, corresponding to entries in the version string.
\item[\code{object[["id"]] <- value}] Create or update version information \code{"id"} on instance \code{object}.
\item[\code{object\$id}] Obtain version information \code{"id"} from \code{object}.The result is a list of integers, corresponding to entries in the version string.
\item[\code{object\$id <- value}] Create or update version
information \code{"id"} on instance \code{object}.
\item[\code{show(object)}] Display version information.
\item[\code{updateObject(object)}] Update \code{object} to the
current \code{Versions-class} representation. Note that this does \emph{not}
update another class that uses \code{Versions-class} to track the
class version.
\item[\code{as(object, "character")}] Convert \code{object} to character representation, e.g., \code{1.0.0}
\item[\code{object1 < object2}] Compare \code{object1} and \code{object2} using version class information. Symbols in addition to \code{<} are admissable; see \code{?Ops}
}
\end{Section}
\begin{Author}\relax
Biocore
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{classVersion}{classVersion}}
\code{\LinkA{isCurrent}{isCurrent}}
\code{\LinkA{isVersioned}{isVersioned}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}

obj <- new("Versions", A="1.0.0")
obj

obj["A"] <- "1.0.1"
obj
obj["B"] <- "2.0"
obj

obj1 <- obj
obj1["B"] <- "2.0.1"

obj1 == obj
obj1["B"] > "2.0.0"
obj["B"] == "2.0" # TRUE!

\end{ExampleCode}
\end{Examples}

