NAME
UMMF::UML_1_5::__ObjectBase - base class package for Model UML 1.5 final/03-03-01;
SYNOPSIS
use base qw(UMMF::UML_1_5::__ObjectBase);
DESCRIPTION
This package provides a base class for Perl modules generated by UMMF.
USAGE
EXPORT
use UMMF::UML_1_5::__ObjectBase qw(:__ummf_array);
__ummf_array_index
__ummf_array_delete
__ummf_array_delete_once
__ummf_array_delete_each
__ummf_array_delete_each_once
AUTHOR
Kurt Stephens, kstephens@users.sourceforge.net 2003/04/15
SEE ALSO
VERSION
$Revision: 1.77 $
METHODS
__use
my $pkg = $self->__use('Some::Package');
my $new_obj = $pkg->new(...);
Dynamically "use" a package.
__factory
Returns the factory object for this Classifier's Model.
__metamodel
Returns the Model for this Classifier.
__classifier
my $classifier = $obj_or_package->__classifier;
Returns the UML meta-model Classifier for an object or package.
__isAbstract
$package->__isAbstract;
Returns true if <$package
> is an abstract Classifer.
Abstract Classifiers are not instantiable via new
.
__validate_type
Some::Package->__validate_type($value);
Returns true if $value
is a valid representation of this Classifier.
__typecheck
$value = Some::Package->__typecheck($value, $msg);
Generates an exception with $msg
if $value
is not a valid representaion of this Classifier.
Returns $value
.
__initialize
Initialize all slots in an instance with initial values.
Called by new
and new_
.
___initialize
Initialize all slots of a particular Classifier's Attributes and AssociationEnds.
Called by __initialize
.
__create
Calls all Generalizations' __create
methods.
Called by new
.
___create
Placeholder for user-specified <<create>> methods.
Called by __create
.
____create
Hand-coded subclasses can override this method, but they must return $self
.
Called by new
.
$_id
Variable incremented for each new instance created by __new_instance
. The new ID is stored in the object's <$self-
{_id}>> slot.
$__new_instance_event
Defines a subroutine that is called with each new instance created by __new_instance
. Deprecated: See add___extent
.
add___extent
my $extent = UMMF::Object::Extent->new();
UMMF::UML_1_5::__ObjectBase->add___extent($extent);
Register a new Extent observer object to this base class.
See also: UMMF::Object::Extent.
remove___extent
my $extent = ...;
UMMF::UML_1_5::__ObjectBase->remove__extent($extent);
Deregister an Extent observer object from this base class.
__extent_add_object
$obj = $package->__extent_add_object($obj, @args)
Cause all registered Extent objects to be messaged as <$extent-
add_object($obj, @args)>>.
Extent observer implementors should note that $obj
may not be a fully initialized instance.
Called by __new_instance
and __clone
.
Overides of __new_instance
or __clone
should call <self-
__extent_add_object($obj, ...)>>.
Returns $obj
.
__new_instance
my $obj = $package->__new_instance(%attrs);
Returns a new instance, without initializing.
New instances get a unique id stored in <$obj-
{'_id'}>>.
new
my $obj = $package->new(%attrs);
Returns a new, initialized instance using keyword values.
Throws exception if <$package-
__isAbstract>>.
Calls <$package-
__new_instance(%attrs)>> to create instance, then calls <$obj-
__initialize()->__create()>> to complete initialization.
new_
my $obj = $package->new_(@opts);
Returns a new, initialized instance using a matching <<create>> Method.
Throws exception if <$package-
__isAbstract>>.
Calls <$package-
__new_instance()>> to create instance without any initialization keyword values then calls <$obj-
__initialize()->__create(@opts)>> to complete initialization.
__clone
my $clone = $obj->__clone();
Returns a new cloned instance.
Clones get a unique id stored in <$clone-
{'_id'}>>.
__clone_deepen
Further deepens any composed objects in a instance. Subclasses may override and call SUPER.
__ummf_disassemble
$obj->__ummf_disassemble();
Dissassembles an object graph, recursively, by traversing any Attributes or AssoicationEnds.
Only objects that respond to __ummf_disassemble
are affected.
__ummf_array_index
my $i = __ummf_array_index(\@a, $elem);
Returns the first index of $elem
in @a
or undef.
__ummf_array_delete
__ummf_array_delete(\@a, $elem);
Deletes all $elem
in @a
.
__ummf_array_delete_once
__ummf_array_delete_once(\@a, $elem);
Deletes the first $elem
in @a
.
__ummf_array_delete_each
__ummf_array_delete_each(\@a, \@elem);
Deletes each element in @elem
in @a
.
__ummf_array_delete_each
__ummf_array_delete_each(\@a, \@elem);
Deletes each first element in @elem
in @a
.
AUTOLOAD
Autoloader to simplify isa<Classifier>() handling of disjoint types. This also prints a verbose stack trace for an unimplemented method.