++ed by:

1 PAUSE user

Kurt Stephens


UMMF::UML_1_5::__ObjectBase - base class package for Model UML 1.5 final/03-03-01;


  use base qw(UMMF::UML_1_5::__ObjectBase);


This package provides a base class for Perl modules generated by UMMF.



  use UMMF::UML_1_5::__ObjectBase qw(:__ummf_array);



Kurt Stephens, kstephens@users.sourceforge.net 2003/04/15




$Revision: 1.77 $



  my $pkg = $self->__use('Some::Package');
  my $new_obj = $pkg->new(...);

Dynamically "use" a package.


Returns the factory object for this Classifier's Model.


Returns the Model for this Classifier.


  my $classifier = $obj_or_package->__classifier;

Returns the UML meta-model Classifier for an object or package.



Returns true if <$package> is an abstract Classifer.

Abstract Classifiers are not instantiable via new.



Returns true if $value is a valid representation of this Classifier.


  $value = Some::Package->__typecheck($value, $msg);

Generates an exception with $msg if $value is not a valid representaion of this Classifier.

Returns $value.


Initialize all slots in an instance with initial values.

Called by new and new_.


Initialize all slots of a particular Classifier's Attributes and AssociationEnds.

Called by __initialize.


Calls all Generalizations' __create methods.

Called by new.


Placeholder for user-specified <<create>> methods.

Called by __create.


Hand-coded subclasses can override this method, but they must return $self.

Called by new.


Variable incremented for each new instance created by __new_instance. The new ID is stored in the object's <$self-{_id}>> slot.


Defines a subroutine that is called with each new instance created by __new_instance. Deprecated: See add___extent.


  my $extent = UMMF::Object::Extent->new();

Register a new Extent observer object to this base class.

See also: UMMF::Object::Extent.


  my $extent = ...;

Deregister an Extent observer object from this base class.


  $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.


  my $obj = $package->__new_instance(%attrs);

Returns a new instance, without initializing.

New instances get a unique id stored in <$obj-{'_id'}>>.


  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.


  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.


  my $clone = $obj->__clone();

Returns a new cloned instance.

Clones get a unique id stored in <$clone-{'_id'}>>.


Further deepens any composed objects in a instance. Subclasses may override and call SUPER.



Dissassembles an object graph, recursively, by traversing any Attributes or AssoicationEnds.

Only objects that respond to __ummf_disassemble are affected.


  my $i = __ummf_array_index(\@a, $elem);

Returns the first index of $elem in @a or undef.


  __ummf_array_delete(\@a, $elem);

Deletes all $elem in @a.


  __ummf_array_delete_once(\@a, $elem);

Deletes the first $elem in @a.


  __ummf_array_delete_each(\@a, \@elem);

Deletes each element in @elem in @a.


  __ummf_array_delete_each(\@a, \@elem);

Deletes each first element in @elem in @a.


Autoloader to simplify isa<Classifier>() handling of disjoint types. This also prints a verbose stack trace for an unimplemented method.