| UMMF documentation | Contained in the UMMF distribution. |
representedOperation : THIS 0..1 <---> collaboration_representedOperation : UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration 0..*0..*changeableinstance1noneprivateSet::Object
specification : THIS 1 <---> method : UMMF::UML_1_5::Foundation::Core::Method 0..*operation : THIS 1 <---> occurance : UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent 0..*operation : THIS 1 <---- : UMMF::UML_1_5::Behavioral_Elements::Actions::Messaging_Actions::CallOperationAction 0..*0..*changeableinstance0noneprivateSet::Object
referredOperation : THIS 1 <---- : UMMF::UML_1_5::OCL::Expressions::OperationCallExp 0..*referredOperation : THIS 0..1 <---- : UMMF::UML_1_5::OCL::Types::OclMessageType 1__validate_type__typecheckisaOperationisaFoundation__Core__Operation__model_name __isAbstract__tangram_schema___initialize__initialize__createconcurrencyset_concurrencycount_concurrencyisRootset_isRootcount_isRootisLeafset_isLeafcount_isLeafisAbstractset_isAbstractcount_isAbstractcollaboration_representedOperationset_collaboration_representedOperationadd_collaboration_representedOperationremove_collaboration_representedOperationclear_collaboration_representedOperationcount_collaboration_representedOperationmethodset_methodadd_methodremove_methodclear_methodcount_methodoccuranceset_occuranceadd_occuranceremove_occuranceclear_occurancecount_occurance
UMMF::UML_1_5::Foundation::Core::Operation --
1.5
concurrency : UMMF::UML_1_5::Foundation::Data_Types::CallConcurrencyKind private1changeableinstanceunordered<"sequential">Set::ObjectisRoot : UMMF::UML_1_5::Foundation::Data_Types::Boolean private1changeableinstanceunordered<"false">Set::ObjectisLeaf : UMMF::UML_1_5::Foundation::Data_Types::Boolean private1changeableinstanceunordered<"false">Set::ObjectisAbstract : UMMF::UML_1_5::Foundation::Data_Types::Boolean private1changeableinstanceunordered<"false">Set::ObjectrepresentedOperation : THIS 0..1 <---> collaboration_representedOperation : UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration 0..*0..*changeableinstancenoneprivateSet::Objectspecification : THIS 1 <---> method : UMMF::UML_1_5::Foundation::Core::Method 0..*0..*changeableinstancenoneprivateSet::Objectoperation : THIS 1 <---> occurance : UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent 0..*0..*changeableinstancenonepublicSet::Objectoperation : THIS 1 <---- : UMMF::UML_1_5::Behavioral_Elements::Actions::Messaging_Actions::CallOperationAction 0..*0..*changeableinstancenoneprivateSet::ObjectreferredOperation : THIS 1 <---- : UMMF::UML_1_5::OCL::Expressions::OperationCallExp 0..*0..*changeableinstancenoneprivateSet::ObjectreferredOperation : THIS 0..1 <---- : UMMF::UML_1_5::OCL::Types::OclMessageType 11changeableinstancenoneprivateSet::Object__validate_typeUMMF::UML_1_5::Foundation::Core::Operation->__validate_type($value);
Returns true if $value is a valid representation of UMMF::UML_1_5::Foundation::Core::Operation.
__typecheckUMMF::UML_1_5::Foundation::Core::Operation->__typecheck($value, $msg);
Calls confess() with $msg if <UMMF::UML_1_5::Foundation::Core::Operation-__validate_type($value)>> is false.
isaOperationReturns true if receiver is a UMMF::UML_1_5::Foundation::Core::Operation. Other receivers will return false.
isaFoundation__Core__OperationReturns true if receiver is a UMMF::UML_1_5::Foundation::Core::Operation.
Other receivers will return false.
This is the fully qualified version of the isaOperation method.
__model_name my $name = $obj_or_package->__model_name;
Returns the UML Model name ('Foundation::Core::Operation') 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.
concurrencymy $val = $obj->concurrency;
Returns the UMMF::UML_1_5::Foundation::Data_Types::CallConcurrencyKind value of Attribute concurrency.
set_concurrency$obj->set_concurrency($val);
Sets the value of Attribute concurrency.
$val must be of type UMMF::UML_1_5::Foundation::Data_Types::CallConcurrencyKind or undef.
Returns $obj.
count_concurrency$obj->count_concurrency;
Returns the number of elements (0 or 1) in concurrency.
isRootmy $val = $obj->isRoot;
Returns the UMMF::UML_1_5::Foundation::Data_Types::Boolean value of Attribute isRoot.
set_isRoot$obj->set_isRoot($val);
Sets the value of Attribute isRoot.
$val must be of type UMMF::UML_1_5::Foundation::Data_Types::Boolean or undef.
Returns $obj.
count_isRoot$obj->count_isRoot;
Returns the number of elements (0 or 1) in isRoot.
isLeafmy $val = $obj->isLeaf;
Returns the UMMF::UML_1_5::Foundation::Data_Types::Boolean value of Attribute isLeaf.
set_isLeaf$obj->set_isLeaf($val);
Sets the value of Attribute isLeaf.
$val must be of type UMMF::UML_1_5::Foundation::Data_Types::Boolean or undef.
Returns $obj.
count_isLeaf$obj->count_isLeaf;
Returns the number of elements (0 or 1) in isLeaf.
isAbstractmy $val = $obj->isAbstract;
Returns the UMMF::UML_1_5::Foundation::Data_Types::Boolean value of Attribute isAbstract.
set_isAbstract$obj->set_isAbstract($val);
Sets the value of Attribute isAbstract.
$val must be of type UMMF::UML_1_5::Foundation::Data_Types::Boolean or undef.
Returns $obj.
count_isAbstract$obj->count_isAbstract;
Returns the number of elements (0 or 1) in isAbstract.
collaboration_representedOperationmy @val = $obj->collaboration_representedOperation; my $ary_val = $obj->collaboration_representedOperation;
Returns the AssociationEnd collaboration_representedOperation values of type UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration (UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration).
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_collaboration_representedOperation$obj->set_collaboration_representedOperation(@val);
Sets the AssociationEnd collaboration_representedOperation value.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration (UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration).
Returns $obj.
add_collaboration_representedOperation$obj->add_collaboration_representedOperation(@val);
Adds AssociationEnd collaboration_representedOperation values.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration (UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration).
Returns $obj.
remove_collaboration_representedOperation$obj->remove_collaboration_representedOperation(@val);
Removes the AssociationEnd collaboration_representedOperation values @val.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration (UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration).
Returns $obj.
clear_collaboration_representedOperation$obj->clear_collaboration_representedOperation;
Clears the AssociationEnd collaboration_representedOperation links to UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration (UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration).
Returns $obj.
count_collaboration_representedOperation$obj->count_collaboration_representedOperation;
Returns the number of elements associated with collaboration_representedOperation.
methodmy @val = $obj->method; my $ary_val = $obj->method;
Returns the AssociationEnd method values of type UMMF::UML_1_5::Foundation::Core::Method.
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_method$obj->set_method(@val);
Sets the AssociationEnd method value.
Elements of @val must of type UMMF::UML_1_5::Foundation::Core::Method.
Returns $obj.
add_method$obj->add_method(@val);
Adds AssociationEnd method values.
Elements of @val must of type UMMF::UML_1_5::Foundation::Core::Method.
Returns $obj.
remove_method$obj->remove_method(@val);
Removes the AssociationEnd method values @val.
Elements of @val must of type UMMF::UML_1_5::Foundation::Core::Method.
Returns $obj.
clear_method$obj->clear_method;
Clears the AssociationEnd method links to UMMF::UML_1_5::Foundation::Core::Method.
Returns $obj.
count_method$obj->count_method;
Returns the number of elements associated with method.
occurancemy @val = $obj->occurance; my $ary_val = $obj->occurance;
Returns the AssociationEnd occurance values of type UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent.
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_occurance$obj->set_occurance(@val);
Sets the AssociationEnd occurance value.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent.
Returns $obj.
add_occurance$obj->add_occurance(@val);
Adds AssociationEnd occurance values.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent.
Returns $obj.
remove_occurance$obj->remove_occurance(@val);
Removes the AssociationEnd occurance values @val.
Elements of @val must of type UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent.
Returns $obj.
clear_occurance$obj->clear_occurance;
Clears the AssociationEnd occurance links to UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent.
Returns $obj.
count_occurance$obj->count_occurance;
Returns the number of elements associated with occurance.
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::Operation; #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::BehavioralFeature ); ################################################################# # 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::Operation') ; }
sub __typecheck { my ($self, $x, $msg) = @_; confess("typecheck: $msg: type '" . 'UMMF::UML_1_5::Foundation::Core::Operation' . ": value '$x'") unless __validate_type($self, $x); }
sub isaOperation { 1 }
sub isaFoundation__Core__Operation { 1 } ################################################################# # Introspection #
sub __model_name { 'Foundation::Core::Operation' }
sub __isAbstract { 0; } my $__tangram_schema;
sub __tangram_schema { my ($self) = @_; $__tangram_schema ||= { 'classes' => [ 'UMMF::UML_1_5::Foundation::Core::Operation' => { 'table' => 'Foundation__Core__Operation', 'abstract' => 0, 'slots' => { # Attributes 'concurrency' => { 'type_impl' => 'string', 'col' => 'concurrency', } , 'isRoot' => { 'type_impl' => 'string', 'col' => 'isRoot', } , 'isLeaf' => { 'type_impl' => 'string', 'col' => 'isLeaf', } , 'isAbstract' => { 'type_impl' => 'string', 'col' => 'isAbstract', } , # Associations 'collaboration_representedOperation' => { 'type_impl' => 'iset', 'class' => 'UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration', 'table' => 'Foundation__Core__Operation__collaboration_representedOperation', 'coll' => 'representedOperation', } , 'method' => { 'type_impl' => 'iset', 'class' => 'UMMF::UML_1_5::Foundation::Core::Method', 'table' => 'Foundation__Core__Operation__method', 'coll' => 'specification', } , 'occurance' => { 'type_impl' => 'iset', 'class' => 'UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent', 'table' => 'Foundation__Core__Operation__occurance', 'coll' => 'operation', } , }, 'bases' => [ 'UMMF::UML_1_5::Foundation::Core::BehavioralFeature', ], '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 # Attribute concurrency if ( exists $self->{'concurrency'} ) { my $x = $self->{'concurrency'}; $self->{'concurrency'} = undef; $self->set_concurrency($x); } else { $self->{'concurrency'} = "sequential"; } # Attribute isRoot if ( exists $self->{'isRoot'} ) { my $x = $self->{'isRoot'}; $self->{'isRoot'} = undef; $self->set_isRoot($x); } else { $self->{'isRoot'} = "false"; } # Attribute isLeaf if ( exists $self->{'isLeaf'} ) { my $x = $self->{'isLeaf'}; $self->{'isLeaf'} = undef; $self->set_isLeaf($x); } else { $self->{'isLeaf'} = "false"; } # Attribute isAbstract if ( exists $self->{'isAbstract'} ) { my $x = $self->{'isAbstract'}; $self->{'isAbstract'} = undef; $self->set_isAbstract($x); } else { $self->{'isAbstract'} = "false"; } # Associations # AssociationEnd # representedOperation 0..1 # <--> # collaboration_representedOperation 0..* UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration. if ( defined $self->{'collaboration_representedOperation'} ) { my $x = $self->{'collaboration_representedOperation'}; $self->{'collaboration_representedOperation'} = Set::Object->new(); $self->set_collaboration_representedOperation(@$x); } # AssociationEnd # specification 1 # <--> # method 0..* UMMF::UML_1_5::Foundation::Core::Method. if ( defined $self->{'method'} ) { my $x = $self->{'method'}; $self->{'method'} = Set::Object->new(); $self->set_method(@$x); } # AssociationEnd # operation 1 # <--> # occurance 0..* UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent. if ( defined $self->{'occurance'} ) { my $x = $self->{'occurance'}; $self->{'occurance'} = Set::Object->new(); $self->set_occurance(@$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::Element'); $self->__use('UMMF::UML_1_5::Foundation::Core::ModelElement'); $self->__use('UMMF::UML_1_5::Foundation::Core::Feature'); $self->__use('UMMF::UML_1_5::Foundation::Core::BehavioralFeature'); } $self->UMMF::UML_1_5::Foundation::Core::Operation::___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::Feature::___initialize; $self->UMMF::UML_1_5::Foundation::Core::BehavioralFeature::___initialize; $self; }
sub __create { my ($self, @args) = @_; # $DB::single = 1; $self->UMMF::UML_1_5::Foundation::Core::Operation::___create(@args); $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::Feature::___create(); $self->UMMF::UML_1_5::Foundation::Core::BehavioralFeature::___create(); $self; } ################################################################# # Attributes #
################################################################# # Attribute concurrency # type = UMMF::UML_1_5::Foundation::Data_Types::CallConcurrencyKind # multiplicity = 1 # ordering = unordered # ownerScope = instance # initialValue = "sequential"
sub concurrency ($) { my ($self) = @_; ; my $val = $self->{'concurrency'}; ; $val; }
sub set_concurrency ($$) { my ($self, $val) = @_; ; if ( defined $val ) { $self->__use('UMMF::UML_1_5::Foundation::Data_Types::CallConcurrencyKind')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Operation.concurrency"); } $self->{'concurrency'} = $val ; ; $self; }
sub count_concurrency ($) { my ($self) = @_; ; my $val = $self->{'concurrency'}; ; defined $val ? 1 : 0; }
################################################################# # Attribute isRoot # type = UMMF::UML_1_5::Foundation::Data_Types::Boolean # multiplicity = 1 # ordering = unordered # ownerScope = instance # initialValue = "false"
sub isRoot ($) { my ($self) = @_; ; my $val = $self->{'isRoot'}; ; $val; }
sub set_isRoot ($$) { my ($self, $val) = @_; ; if ( defined $val ) { ; } $self->{'isRoot'} = $val ; ; $self; }
sub count_isRoot ($) { my ($self) = @_; ; my $val = $self->{'isRoot'}; ; defined $val ? 1 : 0; }
################################################################# # Attribute isLeaf # type = UMMF::UML_1_5::Foundation::Data_Types::Boolean # multiplicity = 1 # ordering = unordered # ownerScope = instance # initialValue = "false"
sub isLeaf ($) { my ($self) = @_; ; my $val = $self->{'isLeaf'}; ; $val; }
sub set_isLeaf ($$) { my ($self, $val) = @_; ; if ( defined $val ) { ; } $self->{'isLeaf'} = $val ; ; $self; }
sub count_isLeaf ($) { my ($self) = @_; ; my $val = $self->{'isLeaf'}; ; defined $val ? 1 : 0; }
################################################################# # Attribute isAbstract # type = UMMF::UML_1_5::Foundation::Data_Types::Boolean # multiplicity = 1 # ordering = unordered # ownerScope = instance # initialValue = "false"
sub isAbstract ($) { my ($self) = @_; ; my $val = $self->{'isAbstract'}; ; $val; }
sub set_isAbstract ($$) { my ($self, $val) = @_; ; if ( defined $val ) { ; } $self->{'isAbstract'} = $val ; ; $self; }
sub count_isAbstract ($) { my ($self) = @_; ; my $val = $self->{'isAbstract'}; ; defined $val ? 1 : 0; } ################################################################# # Association #
################################################################# # AssociationEnd representedOperation <---> collaboration_representedOperation # type = UMMF::UML_1_5::Behavioral_Elements::Collaborations::Collaboration # multiplicity = 0..* # ordering =
sub collaboration_representedOperation ($) { my ($self) = @_; my $x = $self->{'collaboration_representedOperation'}; # confess("Container for collaboration_representedOperation $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_collaboration_representedOperation ($@) { my ($self, @val) = @_; $self->clear_collaboration_representedOperation; $self->add_collaboration_representedOperation(@val); }
sub add_collaboration_representedOperation ($@) { my ($self, @val) = @_; my $x = $self->{'collaboration_representedOperation'} ||= 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::Collaboration')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Operation.collaboration_representedOperation"); # Recursion lock $x->insert($val); # weaken? # Remove and add associations with other ends. $old->remove_representedOperation($self) if $old; $val->add_representedOperation($self) if $val; } $self; }
sub remove_collaboration_representedOperation ($@) { my ($self, @val) = @_; my $x = $self->{'collaboration_representedOperation'} ||= 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::Collaboration')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Operation.collaboration_representedOperation"); # Recursion lock $x->remove($old); $val = undef; # Remove associations with other ends. $old->remove_representedOperation($self) if $old; $val->add_representedOperation($self) if $val; ; } $self; }
sub clear_collaboration_representedOperation ($) { my ($self) = @_; my $x = $self->{'collaboration_representedOperation'} ||= Set::Object->new(); my $val; # Place holder for other MACRO. $self->{'collaboration_representedOperation'} = Set::Object->new(); # Recursion lock for my $old ( $x->members() ) { # Recursion lock # Remove associations with other ends. $old->remove_representedOperation($self) if $old; $val->add_representedOperation($self) if $val; ; } $self; }
sub count_collaboration_representedOperation ($) { my ($self) = @_; my $x = $self->{'collaboration_representedOperation'}; defined $x ? $x->size : 0; }
################################################################# # AssociationEnd specification <---> method # type = UMMF::UML_1_5::Foundation::Core::Method # multiplicity = 0..* # ordering =
sub method ($) { my ($self) = @_; my $x = $self->{'method'}; # confess("Container for method $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_method ($@) { my ($self, @val) = @_; $self->clear_method; $self->add_method(@val); }
sub add_method ($@) { my ($self, @val) = @_; my $x = $self->{'method'} ||= 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::Foundation::Core::Method')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Operation.method"); # Recursion lock $x->insert($val); # weaken? # Remove and add associations with other ends. $old->remove_specification($self) if $old; $val->add_specification($self) if $val; } $self; }
sub remove_method ($@) { my ($self, @val) = @_; my $x = $self->{'method'} ||= Set::Object->new(); for my $old ( @val ) { # Recursion lock next unless $x->includes($old); my $val = $old; $self->__use('UMMF::UML_1_5::Foundation::Core::Method')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Operation.method"); # Recursion lock $x->remove($old); $val = undef; # Remove associations with other ends. $old->remove_specification($self) if $old; $val->add_specification($self) if $val; ; } $self; }
sub clear_method ($) { my ($self) = @_; my $x = $self->{'method'} ||= Set::Object->new(); my $val; # Place holder for other MACRO. $self->{'method'} = Set::Object->new(); # Recursion lock for my $old ( $x->members() ) { # Recursion lock # Remove associations with other ends. $old->remove_specification($self) if $old; $val->add_specification($self) if $val; ; } $self; }
sub count_method ($) { my ($self) = @_; my $x = $self->{'method'}; defined $x ? $x->size : 0; }
################################################################# # AssociationEnd operation <---> occurance # type = UMMF::UML_1_5::Behavioral_Elements::State_Machines::CallEvent # multiplicity = 0..* # ordering =
sub occurance ($) { my ($self) = @_; my $x = $self->{'occurance'}; # confess("Container for occurance $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_occurance ($@) { my ($self, @val) = @_; $self->clear_occurance; $self->add_occurance(@val); }
sub add_occurance ($@) { my ($self, @val) = @_; my $x = $self->{'occurance'} ||= 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::State_Machines::CallEvent')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Operation.occurance"); # Recursion lock $x->insert($val); # weaken? # Remove and add associations with other ends. $old->remove_operation($self) if $old; $val->add_operation($self) if $val; } $self; }
sub remove_occurance ($@) { my ($self, @val) = @_; my $x = $self->{'occurance'} ||= 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::State_Machines::CallEvent')->__typecheck($val, "UMMF::UML_1_5::Foundation::Core::Operation.occurance"); # Recursion lock $x->remove($old); $val = undef; # Remove associations with other ends. $old->remove_operation($self) if $old; $val->add_operation($self) if $val; ; } $self; }
sub clear_occurance ($) { my ($self) = @_; my $x = $self->{'occurance'} ||= Set::Object->new(); my $val; # Place holder for other MACRO. $self->{'occurance'} = Set::Object->new(); # Recursion lock for my $old ( $x->members() ) { # Recursion lock # Remove associations with other ends. $old->remove_operation($self) if $old; $val->add_operation($self) if $val; ; } $self; }
sub count_occurance ($) { my ($self) = @_; my $x = $self->{'occurance'}; defined $x ? $x->size : 0; } # End of Class Operation
############################################################################ 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: ###