UMMF::Object::Extent - Traces the extent of objects.
my $extent = UMML::Object::Extent->new(); # Begin tracing extents of UML::__ObjectBase. UML::__ObjectBase->add___extent($extent); ... Create some objects that are subclasses of UML::__ObjectBase ... # Select all objects where $object->isaAttribute is true. my @attributes = $extent->object_where(sub { shift->isaAttribute }); UML::__ObjectBase->remove___extent($extent);
Extents are used to capture and manipulate collections of objects in a particular context.
For example: object databases are extents because they capture objects that are stored in databases; a CGI application session is an extent because it captures objects (i.e. values) to be stored and retrieved.
This class provides a base class for extents.
Although this class captures creation of objects, it uses weak references such that captured objects are still subjected to garbage collection.
None exported.
Kurt Stephens, kstephens@users.sourceforge.net 2003/10/05
UMMF
$Revision: 1.4 $
$extent->add_object($obj);
Called when a Classifier creates a new object.
This will assign an id, unique to this Extent. The id can be used to retrieve the object using <$extent-object_by_id($id)>>.
<$extent-
Returns the assigned id.
my @obj = $extent->object_where($predicate);
Returns all $objects where <$predicate-($object)>> is true.
$object
<$predicate-
Any objects that have been garbage-collected will not be selected.
my $obj = $extent->object_by_id($id);
Returns the object stored in this Extent that was assigned the <$id>.
<$id
If the object has been garbage collected, this will return undef.
undef
To install UMMF, copy and paste the appropriate command in to your terminal.
cpanm
cpanm UMMF
CPAN shell
perl -MCPAN -e shell install UMMF
For more information on module installation, please visit the detailed CPAN module installation guide.