Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MakeMethods::Template:UsersContributed PerlMakeMethods::Template::ClassName(3)

NAME
       Class::MakeMethods::Template::ClassName - Access	object's class

SYNOPSIS
	 package MyObject;
	 use Class::MakeMethods::Template::ClassName (
	   subclass_name => [ 'type' ]
	 );
	 ...
	 package main;
	 my $object = MyObject->new;

	 $object->type('Foo')
	 # reblesses object to MyObject::Foo subclass

	 print $object->type();
	 # prints "Foo".

DESCRIPTION
       These method types access or change information about the class an
       object is associated with.

   class_name
       Called without arguments, returns the class name.

       If called with an argument, reblesses object into that class.  If the
       class doesn't already exist, it will be created.

   subclass_name
       Called without arguments, returns the subclass name.

       If called with an argument, reblesses object into that subclass.	 If
       the subclass doesn't already exist, it will be created.

       The subclass name is written as follows:

       o   if it's the original, defining class: empty

       o   if its a a package within the namespace of the original: the
	   distingushing name within that namespace, without leading "::"

       o   if it's a package elsewhere:	the full name with leading "::"

   static_hash_classname
       Provides	a shared hash mapping keys to class names.

	 class_registry	=> [ qw/ foo / ]

       Takes a single string or	a reference to an array	of strings as its
       argument.  For each string, creates a new anonymous hash	and associated
       accessor	methods	that will map scalar values to classes in the calling
       package's subclass hiearchy.

       The accessor methods provide an interface to the	hash as	illustrated
       below.  Note that several of these functions operate quite differently
       depending on the	number of arguments passed, or the context in which
       they are	called.

       @indexes	= $class_or_ref->x;
	   Returns the scalar values that are indexes associated with this
	   class, or the class of this object.

       $class =	$class_or_ref->x( $index );
	   Returns the class name associated with the provided index value.

       @classes	= $class_or_ref->x( @indexes );
	   Returns the associated classes for each index in order.

       @all_indexes = $class_or_ref->x_keys;
	   Returns a list of the indexes defined for this registry.

       @all_classes = $class_or_ref->x_values;
	   Returns a list of the classes associated with this registry.

       @all_classes = $class_or_ref->unique_x_values;
	   Returns a list of the classes associated with this registry,	with
	   no more than	one occurance of any value.

       %mapping	= $class_or_ref->x_hash;
	   Return the key-value	pairs used to store this attribute

       $mapping_ref = $class_or_ref->x_hash;
	   Returns a reference to the hash used	for the	mapping.

       $class_or_ref->add_x( @indexes );
	   Adds	an entry in the	hash for each of the provided indexes, mapping
	   it to this class, or	the class of this object.

       $class_or_ref->clear_x;
	   Removes those entries from the hash whose values are	this class, or
	   the class of	this object.

       $class_or_ref->clear_xs(	@indexes );
	   Remove all entries from the hash.

SEE ALSO
       See Class::MakeMethods for general information about this distribution.

       See Class::MakeMethods::Template	for information	about this family of
       subclasses.

perl v5.24.1			  2004-09-0MakeMethods::Template::ClassName(3)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Class::MakeMethods::Template::ClassName&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help