| updateObject {BiocGenerics} | R Documentation |
updateObject is a generic function that returns an instance
of object updated to its current class definition.
updateObject(object, ..., verbose=FALSE) ## Related utilities: updateObjectFromSlots(object, objclass=class(object), ..., verbose=FALSE) getObjectSlots(object)
object |
Object to be updated for Object for slot information to be extracted from for
|
... |
Additional arguments, for use in specific |
verbose |
|
objclass |
Optional character string naming the class of the object to be created. |
Updating objects is primarily useful when an object has been serialized (e.g., stored to disk) for some time (e.g., months), and the class definition has in the mean time changed. Because of the changed class definition, the serialized instance is no longer valid.
updateObject requires that the class of the returned object be
the same as the class of the argument object, and that the
object is valid (see validObject). By default,
updateObject has the following behaviors:
updateObject(ANY, ..., verbose=FALSE)By default, updateObject uses heuristic methods to determine
whether the object should be the ‘new’ S4 type (introduced in R 2.4.0),
but is not. If the heuristics indicate an update is required,
the updateObjectFromSlots function tries to update the
object. The default method returns the original S4 object or the
successfully updated object, or issues an error if an update is
required but not possible.
The optional named argument verbose causes a message to be
printed describing the action.
Arguments ... are passed to updateObjectFromSlots.
updateObject(list, ..., verbose=FALSE)Visit each element in list, applying
updateObject(list[[elt]], ..., verbose=verbose).
updateObject(environment, ..., verbose=FALSE)Visit each element in environment, applying
updateObject(environment[[elt]], ..., verbose=verbose)
updateObjectFromSlots(object, objclass=class(object),
..., verbose=FALSE)
is a utility function that identifies the intersection of slots defined
in the object instance and objclass definition. The
corresponding elements in object are then updated (with
updateObject(elt, ..., verbose=verbose)) and used as arguments to
a call to new(class, ...), with ... replaced by slots
from the original object. If this fails, updateObjectFromSlots
then tries new(class) and assigns slots of object to
the newly created instance.
getObjectSlots(object) extracts the slot names and contents from
object. This is useful when object was created by a class
definition that is no longer current, and hence the contents of
object cannot be determined by accessing known slots.
updateObject returns a valid instance of object.
updateObjectFromSlots returns an instance of class
objclass.
getObjectSlots returns a list of named elements, with each
element corresponding to a slot in object.
updateObjectTo in the Biobase package
for updating an object to the class definition of a template (might
be useful for updating a virtual superclass).
validObject for testing the validity of an
object.
showMethods for displaying a summary of the
methods defined for a given generic function.
selectMethod for getting the definition of
a specific method.
BiocGenerics for a summary of all the generics defined in the BiocGenerics package.
updateObject
showMethods("updateObject")
selectMethod("updateObject", "ANY") # the default method
library(Biobase)
## update object, same class
data(sample.ExpressionSet)
obj <- updateObject(sample.ExpressionSet)
setClass("UpdtA", representation(x="numeric"), contains="data.frame")
setMethod("updateObject", "UpdtA",
function(object, ..., verbose=FALSE)
{
if (verbose)
message("updateObject object = 'A'")
object <- callNextMethod()
object@x <- -object@x
object
}
)
a <- new("UpdtA", x=1:10)
## See steps involved
updateObject(a)
removeMethod("updateObject", "UpdtA")
removeClass("UpdtA")