manpagez: man pages & more
man copy(n)
Home | html | info | man
copy(n)                         TclOO Commands                         copy(n)




NAME

       oo::copy - create copies of objects and classes


SYNOPSIS

       package require TclOO

       oo::copy sourceObject ?targetObject?


DESCRIPTION

       The oo::copy command creates a copy of an object or class. It takes the
       name of the object or class to be copied, sourceObject, and  optionally
       the  name of the object or class to create, targetObject, which will be
       resolved relative to the current namespace if not an absolute qualified
       name.   If  targetObject  is  omitted, a new name is chosen. The copied
       object will be of the same class as the source object,  and  will  have
       all  its per-object methods copied. If it is a class, it will also have
       all the class methods in the class copied, but it will not have any  of
       its instances copied.

       After the targetObject has been created and all definitions of its con-
       figuration (e.g., methods, filters, mixins) copied, the <cloned> method
       of targetObject will be invoked, to allow for customization of the cre-
       ated object such as installing related variable traces. The only  argu-
       ment  given  will  be  sourceObject. The default implementation of this
       method (in oo::object) just copies the procedures and variables in  the
       namespace  of  sourceObject  to  the namespace of targetObject. If this
       method call does not return a result that is successful (i.e., an error
       or  other  kind of exception) then the targetObject will be deleted and
       an error returned.

       The result of the oo::copy command will be the fully-qualified name  of
       the new object or class.


EXAMPLES

       This  example creates an object, copies it, modifies the source object,
       and then demonstrates that the copied object is indeed a copy.

       oo::object create src  oo::objdefine  src  method  msg  {}  {puts  foo}
       oo::copy  src  dst  oo::objdefine  src method msg {} {puts bar} src msg
       -> prints "bar" dst msg              -> prints "foo"


SEE ALSO

       oo::class(n), oo::define(n), oo::object(n)


KEYWORDS

       clone, copy, duplication, object



TclOO                                 0.1                              copy(n)

tcl 8.6.0 - Generated Sun Jan 13 10:39:28 CST 2013
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.