self man page on Archlinux

Printed from http://www.polarhome.com/service/man/?qf=self&af=0&tf=2&of=Archlinux

self(n)				TclOO Commands			       self(n)

______________________________________________________________________________

NAME
       self - method call internal introspection

SYNOPSIS
       package require TclOO

       self ?subcommand?
_________________________________________________________________

DESCRIPTION
       The  self command, which should only be used from within the context of
       a call to a method (i.e. inside a  method,  constructor	or  destructor
       body)  is used to allow the method to discover information about how it
       was called. It takes an argument, subcommand, that tells it  what  sort
       of  information	is actually desired; if omitted the result will be the
       same as if self object was invoked. The supported subcommands are:

       self call
	      This returns a two-element list describing the method  implemen‐
	      tations used to implement the current call chain. The first ele‐
	      ment is the same as would be reported by info  object  call  for
	      the  current method (except that this also reports useful values
	      from  within  constructors  and  destructors,  whose  names  are
	      reported	as  <constructor>  and <destructor> respectively), and
	      the second element is an index into  the	first  element's  list
	      that  indicates which actual implementation is currently execut‐
	      ing (the first implementation to execute is always at index 0).

       self caller
	      When the method was invoked from inside another  object  method,
	      this subcommand returns a three element list describing the con‐
	      taining object and  method.  The	first  element	describes  the
	      declaring	 object	 or class of the method, the second element is
	      the name of the  object  on  which  the  containing  method  was
	      invoked,	and  the third element is the name of the method (with
	      the strings <constructor> and <destructor> indicating  construc‐
	      tors and destructors respectively).

       self class
	      This  returns  the name of the class that the current method was
	      defined within.  Note that this will  change  as	the  chain  of
	      method  implementations  is traversed with next, and that if the
	      method was defined on an object then this will fail.

	      If you want the class of the current object,  you	 need  to  use
	      this other construct:

		     info object class [self object]

       self filter
	      When  invoked  inside  a filter, this subcommand returns a three
	      element list describing the filter. The first element gives  the
	      name  of the object or class that declared the filter (note that
	      this may be different from the object or class that provided the
	      implementation  of  the  filter),	 the  second element is either
	      object or class depending on whether the declaring entity was an
	      object  or  class, and the third element is the name of the fil‐
	      ter.

       self method
	      This returns the name of the current method  (with  the  strings
	      <constructor>   and  <destructor>	 indicating  constructors  and
	      destructors respectively).

       self namespace
	      This returns the name of the unique namespace of the object that
	      the method was invoked upon.

       self next
	      When  invoked  from  a  method  that is not at the end of a call
	      chain (i.e. where the next command will invoke an actual	method
	      implementation),	this  subcommand  returns  a  two element list
	      describing the next element in the method call chain; the	 first
	      element  is  the	name  of the class or object that declares the
	      next part of the call chain, and the second element is the  name
	      of  the  method (with the strings <constructor> and <destructor>
	      indicating  constructors	and  destructors   respectively).   If
	      invoked  from  a method that is at the end of a call chain, this
	      subcommand returns the empty string.

       self object
	      This returns the name of the object that the method was  invoked
	      upon.

       self target
	      When  invoked  inside  a	filter implementation, this subcommand
	      returns a two element list describing the method being filtered.
	      The  first  element  will	 be  the  name	of the declarer of the
	      method, and the second element will be the actual	 name  of  the
	      method.

EXAMPLES
       This  example  shows basic use of self to provide information about the
       current object:

	      oo::class create c {
		  method foo {} {
		      puts "this is the [self] object"
		  }
	      }
	      c create a
	      c create b
	      a foo		   → prints "this is the ::a object"
	      b foo		   → prints "this is the ::b object"

       This demonstrates what a method call chain looks like, and how travers‐
       ing along it changes the index into it:

	      oo::class create c {
		  method x {} {
		      puts "Cls: [self call]"
		  }
	      }
	      c create a
	      oo::objdefine a {
		  method x {} {
		      puts "Obj: [self call]"
		      next
		      puts "Obj: [self call]"
		  }
	      }
	      a x     → Obj: {{method x object method} {method x ::c method}} 0
		      → Cls: {{method x object method} {method x ::c method}} 1
		      → Obj: {{method x object method} {method x ::c method}} 0

SEE ALSO
       info(n), next(n)

KEYWORDS
       call, introspection, object

TclOO				      0.1			       self(n)
[top]

List of man pages available for Archlinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net