| UMMF documentation | Contained in the UMMF distribution. |
association : THIS 1 <---- : UMMF::UML_1_5::Behavioral_Elements::Actions::Read_Write_Actions::Association_Actions::ClearAssociationAction 0..10..1changeableinstance0noneprivateSet::Object
base : THIS 0..1 <---> associationRole : UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole 0..*0..*changeableinstance1noneprivateSet::Object
_association : THIS 1 <---> connection : UMMF::UML_1_5::Foundation::Core::AssociationEnd 2..*association : THIS 1 <---> link : UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link 0..*__validate_type__typecheckisaAssociationisaFoundation__Core__Association__model_name __isAbstract__tangram_schema___initialize__initialize__createassociationRoleset_associationRoleadd_associationRoleremove_associationRoleclear_associationRolecount_associationRoleconnectionindex_connectionindex_of_connectionset_connectionset_index_connectionadd_connectionadd_index_connectionremove_connectionclear_connectioncount_connectionlinkset_linkadd_linkremove_linkclear_linkcount_link
UMMF::UML_1_5::Foundation::Core::Association --
1.5
NO ATTRIBUTES
association : THIS 1 <---- : UMMF::UML_1_5::Behavioral_Elements::Actions::Read_Write_Actions::Association_Actions::ClearAssociationAction 0..10..1changeableinstancenoneprivateSet::Objectbase : THIS 0..1 <---> associationRole : UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole 0..*0..*changeableinstancenoneprivateSet::Object_association : THIS 1 <---> connection : UMMF::UML_1_5::Foundation::Core::AssociationEnd 2..*2..*changeableinstanceorderednonepublicARRAYassociation : THIS 1 <---> link : UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link 0..*0..*changeableinstancenoneprivateSet::Object__validate_typeUMMF::UML_1_5::Foundation::Core::Association->__validate_type($value);
Returns true if $value is a valid representation of UMMF::UML_1_5::Foundation::Core::Association.
__typecheckUMMF::UML_1_5::Foundation::Core::Association->__typecheck($value, $msg);
Calls confess() with $msg if <UMMF::UML_1_5::Foundation::Core::Association-__validate_type($value)>> is false.
isaAssociationReturns true if receiver is a UMMF::UML_1_5::Foundation::Core::Association. Other receivers will return false.
isaFoundation__Core__AssociationReturns true if receiver is a UMMF::UML_1_5::Foundation::Core::Association.
Other receivers will return false.
This is the fully qualified version of the isaAssociation method.
__model_name my $name = $obj_or_package->__model_name;
Returns the UML Model name ('Foundation::Core::Association') for an object or package of
this Classifier.
__isAbstract$package->__isAbstract;
Returns 0.
__tangram_schemamy $tangram_schema $obj_or_package->__tangram_schema
Returns a HASH ref that describes this Classifier for Tangram.
___initializeInitialize all Attributes and AssociationEnds in a instance of this Classifier. Does not initalize slots in its Generalizations.
See also: __initialize.
__initializeInitialize all slots in this Classifier and all its Generalizations.
See also: ___initialize.
__createCalls all <<create>> Methods for this Classifier and all Generalizations.
See also: ___create.
associationRolemy @val = $obj->associationRole; my $ary_val = $obj->associationRole;
Returns the AssociationEnd associationRole values of type UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole (UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole).
In array context, returns all the objects in the Association.
In scalar context, returns an array ref of all the objects in the Association.
set_associationRole$obj->set_associationRole(@val);
Sets the AssociationEnd associationRole value.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole (UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole).
Returns $obj.
add_associationRole$obj->add_associationRole(@val);
Adds AssociationEnd associationRole values.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole (UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole).
Returns $obj.
remove_associationRole$obj->remove_associationRole(@val);
Removes the AssociationEnd associationRole values @val.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole (UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole).
Returns $obj.
clear_associationRole$obj->clear_associationRole;
Clears the AssociationEnd associationRole links to UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole (UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole).
Returns $obj.
count_associationRole$obj->count_associationRole;
Returns the number of elements associated with associationRole.
connectionmy @val = $obj->connection; my $ary_val = $obj->connection;
Returns the AssociationEnd connection values of type UMMF::UML_1_5::Foundation::Core::AssociationEnd.
In array context, returns all the objects in the Association.
In scalar context, returns an array ref of all the objects in the Association.
index_connectionmy $x = $obj->index_connection($i); my @x = $obj->index_connection($i, $count);
In scalar context, returns the value of AssociationEnd connection at index $i.
In array context, returns the values between index $i and $i + $count - 1, inclusive.
index_of_connectionmy $index = $obj->index_of_connection($val);
Returns the index of $val in AssociationEnd connection.
Return undef if $val is not in connection.
set_connection$obj->set_connection(@val);
Sets the AssociationEnd connection value.
Elements of @val must of type UMMF::UML_1_5::Foundation::Core::AssociationEnd.
Returns $obj.
set_index_connection$obj->set_index_connection($i, $val);
Sets the value of AssociationEnd connection at index $i.
Returns self.
add_connection$obj->add_connection(@val);
Adds AssociationEnd connection values.
Elements of @val must of type UMMF::UML_1_5::Foundation::Core::AssociationEnd.
Returns $obj.
add_index_connection$obj->add_index_connection($i, @val);
Adds AssociationEnd connection values at index $i.
Elements of @val must of type UMMF::UML_1_5::Foundation::Core::AssociationEnd.
Returns $obj.
remove_connection$obj->remove_connection(@val);
Removes the AssociationEnd connection values @val.
Elements of @val must of type UMMF::UML_1_5::Foundation::Core::AssociationEnd.
Returns $obj.
clear_connection$obj->clear_connection;
Clears the AssociationEnd connection links to UMMF::UML_1_5::Foundation::Core::AssociationEnd.
Returns $obj.
count_connection$obj->count_connection;
Returns the number of elements associated with connection.
linkmy @val = $obj->link; my $ary_val = $obj->link;
Returns the AssociationEnd link values of type UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link.
In array context, returns all the objects in the Association.
In scalar context, returns an array ref of all the objects in the Association.
set_link$obj->set_link(@val);
Sets the AssociationEnd link value.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link.
Returns $obj.
add_link$obj->add_link(@val);
Adds AssociationEnd link values.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link.
Returns $obj.
remove_link$obj->remove_link(@val);
Removes the AssociationEnd link values @val.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link.
Returns $obj.
clear_link$obj->clear_link;
Clears the AssociationEnd link links to UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link.
Returns $obj.
count_link$obj->count_link;
Returns the number of elements associated with link.
END OF DOCUMENT
| UMMF documentation | Contained in the UMMF distribution. |
# -*- perl -*- # DO NOT EDIT - This file is generated by UMMF; http://ummf.sourceforge.net # From template: $Id: Perl.txt,v 1.77 2006/05/14 01:40:03 kstephens Exp $ package UMMF::UML_1_5::Foundation::Core::Association; #use 5.6.1; use strict; use warnings; ################################################################# # Version # our $VERSION = do { my @r = (q{1.5} =~ /\d+/g); sprintf "%d." . "%03d" x $#r, @r }; ################################################################# # Documentation #
################################################################# # Dependencies # use Carp qw(croak confess); use Set::Object 1.05; use Class::Multimethods 1.70; use Data::Dumper; use Scalar::Util qw(weaken); use UMMF::UML_1_5::__ObjectBase qw(:__ummf_array); ################################################################# # Generalizations # use base qw( UMMF::UML_1_5::Foundation::Core::GeneralizableElement UMMF::UML_1_5::Foundation::Core::Relationship ); ################################################################# # Exports # our @EXPORT_OK = qw( ); our %EXPORT_TAGS = ( 'all' => \@EXPORT_OK ); ################################################################# # Validation #
sub __validate_type($$) { my ($self, $x) = @_; no warnings; UNIVERSAL::isa($x, 'UMMF::UML_1_5::Foundation::Core::Association') ; }
sub __typecheck { my ($self, $x, $msg) = @_; confess("typecheck: $msg: type '" . 'UMMF::UML_1_5::Foundation::Core::Association' . ": value '$x'") unless __validate_type($self, $x); }
sub isaAssociation { 1 }
sub isaFoundation__Core__Association { 1 } ################################################################# # Introspection #
sub __model_name { 'Foundation::Core::Association' }
sub __isAbstract { 0; } my $__tangram_schema;
sub __tangram_schema { my ($self) = @_; $__tangram_schema ||= { 'classes' => [ 'UMMF::UML_1_5::Foundation::Core::Association' => { 'table' => 'Foundation__Core__Association', 'abstract' => 0, 'slots' => { # Attributes # Associations 'associationRole' => { 'type_impl' => 'iset', 'class' => 'UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole', 'table' => 'Foundation__Core__Association__associationRole', 'coll' => 'base', } , 'connection' => { 'type_impl' => 'iarray', 'class' => 'UMMF::UML_1_5::Foundation::Core::AssociationEnd', 'table' => 'Foundation__Core__Association__connection', 'coll' => '_association', 'slot' => '_association_i', 'aggreg' => '1', } , 'link' => { 'type_impl' => 'iset', 'class' => 'UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link', 'table' => 'Foundation__Core__Association__link', 'coll' => 'association', } , }, 'bases' => [ 'UMMF::UML_1_5::Foundation::Core::GeneralizableElement', 'UMMF::UML_1_5::Foundation::Core::Relationship', ], 'sql' => { }, }, ], 'sql' => { # Note Tangram::Ref::get_exporter() has # "UPDATE $table SET $self->{col} = $refid WHERE id = $id", # The id_col is hard-coded, # Thus id_col will not work. #'id_col' => '__sid', #'class_col' => '__stype', }, # 'set_id' => sub { } # 'get_id' => sub { } }; } ################################################################# # Class Attributes # ################################################################# # Class Associations # ################################################################# # Initialization #
sub ___initialize { my ($self) = @_; # Attributes # Associations # AssociationEnd # base 0..1 # <--> # associationRole 0..* UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole. if ( defined $self->{'associationRole'} ) { my $x = $self->{'associationRole'}; $self->{'associationRole'} = Set::Object->new(); $self->set_associationRole(@$x); } # AssociationEnd # _association 1 # <--> # connection 2..* UMMF::UML_1_5::Foundation::Core::AssociationEnd. if ( defined $self->{'connection'} ) { my $x = $self->{'connection'}; $self->{'connection'} = [ ]; $self->set_connection(@$x); } # AssociationEnd # association 1 # <--> # link 0..* UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link. if ( defined $self->{'link'} ) { my $x = $self->{'link'}; $self->{'link'} = Set::Object->new(); $self->set_link(@$x); } $self; } my $__initialize_use;
sub __initialize { my ($self) = @_; # $DB::single = 1; unless ( ! $__initialize_use ) { $__initialize_use = 1; $self->__use('UMMF::UML_1_5::Foundation::Core::GeneralizableElement'); $self->__use('UMMF::UML_1_5::Foundation::Core::Element'); $self->__use('UMMF::UML_1_5::Foundation::Core::ModelElement'); $self->__use('UMMF::UML_1_5::Foundation::Core::Relationship'); } $self->UMMF::UML_1_5::Foundation::Core::Association::___initialize; $self->UMMF::UML_1_5::Foundation::Core::GeneralizableElement::___initialize; $self->UMMF::UML_1_5::Foundation::Core::Element::___initialize; $self->UMMF::UML_1_5::Foundation::Core::ModelElement::___initialize; $self->UMMF::UML_1_5::Foundation::Core::Relationship::___initialize; $self; }
sub __create { my ($self, @args) = @_; # $DB::single = 1; $self->UMMF::UML_1_5::Foundation::Core::Association::___create(@args); $self->UMMF::UML_1_5::Foundation::Core::GeneralizableElement::___create(); $self->UMMF::UML_1_5::Foundation::Core::Element::___create(); $self->UMMF::UML_1_5::Foundation::Core::ModelElement::___create(); $self->UMMF::UML_1_5::Foundation::Core::Relationship::___create(); $self; } ################################################################# # Attributes # ################################################################# # Association #
################################################################# # AssociationEnd base <---> associationRole # type = UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole # multiplicity = 0..* # ordering =
sub associationRole ($) { my ($self) = @_; my $x = $self->{'associationRole'}; # confess("Container for associationRole $x is not a blessed ref: " . Data::Dumper->new([ $self ], [qw($self)])->Maxdepth(2)->Dump()) if $x && ref($x) !~ /::/; wantarray ? ($x ? $x->members() : ()) : [ $x ? $x->members() : () ]; }
sub set_associationRole ($@) { my ($self, @val) = @_; $self->clear_associationRole; $self->add_associationRole(@val); }
sub add_associationRole ($@) { my ($self, @val) = @_; my $x = $self->{'associationRole'} ||= Set::Object->new(); my $old; # Place holder for other MACRO. for my $val ( @val ) { # Recursion lock next if $x->includes($val); $self->__use('UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Association.associationRole"); # Recursion lock $x->insert($val); # weaken? # Remove and add associations with other ends. $old->remove_base($self) if $old; $val->add_base($self) if $val; } $self; }
sub remove_associationRole ($@) { my ($self, @val) = @_; my $x = $self->{'associationRole'} ||= Set::Object->new(); for my $old ( @val ) { # Recursion lock next unless $x->includes($old); my $val = $old; $self->__use('UMMF::UML_1_5::Behavioral_Elements::Collaborations::AssociationRole')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Association.associationRole"); # Recursion lock $x->remove($old); $val = undef; # Remove associations with other ends. $old->remove_base($self) if $old; $val->add_base($self) if $val; ; } $self; }
sub clear_associationRole ($) { my ($self) = @_; my $x = $self->{'associationRole'} ||= Set::Object->new(); my $val; # Place holder for other MACRO. $self->{'associationRole'} = Set::Object->new(); # Recursion lock for my $old ( $x->members() ) { # Recursion lock # Remove associations with other ends. $old->remove_base($self) if $old; $val->add_base($self) if $val; ; } $self; }
sub count_associationRole ($) { my ($self) = @_; my $x = $self->{'associationRole'}; defined $x ? $x->size : 0; }
################################################################# # AssociationEnd _association <---> connection # type = UMMF::UML_1_5::Foundation::Core::AssociationEnd # multiplicity = 2..* # ordering = ordered
sub connection ($) { my ($self) = @_; my $x = $self->{'connection'} ||= [ ]; wantarray ? @{$x} : $x; }
sub index_connection ($$@) { my ($self, $i, $count) = @_; ; my $val = $self->{'connection'} ||= [ ]; ; wantarray ? $val->[$i .. (defined $count ? $i + $count - 1 : $i)] : $val->[$i]; }
sub index_of_connection ($$) { my ($self, $x) = @_; ; my $val = $self->{'connection'} ||= [ ]; ; __ummf_array_index($val, $x); }
sub set_connection ($@) { my ($self, @val) = @_; $self->clear_connection; $self->add_connection(@val); }
sub set_index_connection ($$$) { my ($self, $i, $val) = @_; ; my $x = $self->{'connection'} ||= [ ]; no warnings; my $old; if ( ($old = $x->[$i]) ne $val) { # Recursion lock $x->[$i] = $val ; # Remove and add associations with other ends. $old->remove__association($self) if $old; $val->add__association($self) if $val; ; } $self; }
sub add_connection ($@) { my ($self, @val) = @_; my $x = $self->{'connection'} ||= [ ]; my $old; # Place holder for other MACRO. for my $val ( @val ) { # Recursion lock next if grep($_ eq $val, @$x); $self->__use('UMMF::UML_1_5::Foundation::Core::AssociationEnd')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Association.connection"); # Recursion lock push(@{$x}, $val); # Remove and add associations with other ends. $old->remove__association($self) if $old; $val->add__association($self) if $val; } $self; }
sub add_index_connection ($$@) { my ($self, $i, @val) = @_; my $x = $self->{'connection'} ||= [ ]; my $old; # Place holder for other MACRO. for my $val ( @val ) { # Recursion lock next if grep($_ eq $val, @$x); $self->__use('UMMF::UML_1_5::Foundation::Core::AssociationEnd')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Association.connection"); # Recursion lock splice(@{$x}, $i, 0, $val); # Recursion lock ++ $i; # Remove and add associations with other ends. $old->remove__association($self) if $old; $val->add__association($self) if $val; } $self; }
sub remove_connection ($@) { my ($self, @val) = @_; my $x = $self->{'connection'} ||= [ ]; for my $old ( @val ) { # Recursion lock my $i; # index of $old in @$x. next unless defined($i = __ummf_array_index($x, $old)); my $val = $old; $self->__use('UMMF::UML_1_5::Foundation::Core::AssociationEnd')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Association.connection"); # Recursion lock splice(@$x, $i, 1); $val = undef; # Remove associations with other ends. $old->remove__association($self) if $old; $val->add__association($self) if $val; ; } $self; }
sub clear_connection ($) { my ($self) = @_; my $x = $self->{'connection'} ||= [ ]; my $val; # Place holder for other MACRO. $self->{'connection'} = [ ]; # Recursion lock for my $old ( @$x ) { # Recursion lock # Remove associations with other ends. $old->remove__association($self) if $old; $val->add__association($self) if $val; ; } $self; }
sub count_connection ($) { my ($self) = @_; my $x = $self->{'connection'}; defined $x ? scalar @$x : 0; }
################################################################# # AssociationEnd association <---> link # type = UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link # multiplicity = 0..* # ordering =
sub link ($) { my ($self) = @_; my $x = $self->{'link'}; # confess("Container for link $x is not a blessed ref: " . Data::Dumper->new([ $self ], [qw($self)])->Maxdepth(2)->Dump()) if $x && ref($x) !~ /::/; wantarray ? ($x ? $x->members() : ()) : [ $x ? $x->members() : () ]; }
sub set_link ($@) { my ($self, @val) = @_; $self->clear_link; $self->add_link(@val); }
sub add_link ($@) { my ($self, @val) = @_; my $x = $self->{'link'} ||= Set::Object->new(); my $old; # Place holder for other MACRO. for my $val ( @val ) { # Recursion lock next if $x->includes($val); $self->__use('UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Association.link"); # Recursion lock $x->insert($val); # weaken? # Remove and add associations with other ends. $old->remove_association($self) if $old; $val->add_association($self) if $val; } $self; }
sub remove_link ($@) { my ($self, @val) = @_; my $x = $self->{'link'} ||= Set::Object->new(); for my $old ( @val ) { # Recursion lock next unless $x->includes($old); my $val = $old; $self->__use('UMMF::UML_1_5::Behavioral_Elements::Common_Behavior::Link')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Association.link"); # Recursion lock $x->remove($old); $val = undef; # Remove associations with other ends. $old->remove_association($self) if $old; $val->add_association($self) if $val; ; } $self; }
sub clear_link ($) { my ($self) = @_; my $x = $self->{'link'} ||= Set::Object->new(); my $val; # Place holder for other MACRO. $self->{'link'} = Set::Object->new(); # Recursion lock for my $old ( $x->members() ) { # Recursion lock # Remove associations with other ends. $old->remove_association($self) if $old; $val->add_association($self) if $val; ; } $self; }
sub count_link ($) { my ($self) = @_; my $x = $self->{'link'}; defined $x ? $x->size : 0; } # End of Class Association
############################################################################ 1; # is true! ############################################################################ ### Keep these comments at end of file: kstephens@users.sourceforge.net 2003/04/06 ### ### Local Variables: ### ### mode:perl ### ### perl-indent-level:2 ### ### perl-continued-statement-offset:0 ### ### perl-brace-offset:0 ### ### perl-label-offset:0 ### ### End: ###