\HeaderA{classVersion}{Retrieve information about versioned classes}{classVersion}
\aliasA{classVersion,ANY-method}{classVersion}{classVersion,ANY.Rdash.method}
\aliasA{classVersion,character-method}{classVersion}{classVersion,character.Rdash.method}
\aliasA{classVersion<\Rdash}{classVersion}{classVersion<.Rdash.}
\keyword{manip}{classVersion}
\begin{Description}\relax
These generic functions return version information for classes
derived from \code{\LinkA{Versioned-class}{Versioned.Rdash.class}}, or
\code{\LinkA{VersionsNull-class}{VersionsNull.Rdash.class}} for unversioned objects. The
version information is an object of \code{\LinkA{Versions-class}{Versions.Rdash.class}}.

By default, \code{classVersion} has the following behaviors:
\describe{
\item[\code{classVersion(Versioned-instance)}] Returns a \code{Versions-class} object obtaine from the object.
\item[\code{classVersion\{"class"\}}] Consults the definition of \code{class} and return the current version information, if available.
\item[\code{classVersion(ANY)}] Return a \code{\LinkA{VersionsNull-class}{VersionsNull.Rdash.class}} object to indicate no version information available.
}

By default, the \code{classVersion<-} method has the following behavior:
\describe{
\item[\code{classVersion(Versioned-instance)["id"] <- value}] Assign (update or add) \code{value} to \code{Versions-instance}. \code{value} is coerced to a valid version description. see \code{\LinkA{Versions-class}{Versions.Rdash.class}} for additional access methods.
}
\end{Description}
\begin{Usage}
\begin{verbatim}
classVersion(object)
classVersion(object) <- value
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{object}] Object whose version is to be determined, as described above.
\item[\code{value}] \code{Version-class} object to assign to object of \code{Versioned-class} object.
\end{ldescription}
\end{Arguments}
\begin{Value}
\code{classVersion} returns an instance of \code{\LinkA{Versions-class}{Versions.Rdash.class}}
\end{Value}
\begin{Author}\relax
Biocore team
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{Versions-class}{Versions.Rdash.class}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
obj <- new("VersionedBiobase")

classVersion(obj)
classVersion(obj)["Biobase"]
classVersion(1:10) # no version
classVersion("ExpressionSet") # consult ExpressionSet prototype

classVersion(obj)["MyVersion"] <- "1.0.0"
classVersion(obj)
\end{ExampleCode}
\end{Examples}

