package UML::MetaModel::Foundation::Model_Management::Model;

#################################################################

our $VERSION = do { my @r = (q$Revision: 1.5 $ =~ /\d+/g); sprintf "%d." . "%03d" x $#r, @r };

use strict;
use warnings;

use base qw(UML::MetaModel::Foundation::Model_Management::Package);

sub __model_name { 'Foundation::Model_Management::Model' }


  my $__class;
  sub __class 
{ 
  my ($self) = @_;
  
  unless ( $__class ) {
    use UML::MetaMetaModel::Util qw(Namespace_ownedElement_name_);
    $__class = Namespace_ownedElement_name_($self->__metamodel, $self->__model_name);
  }
  
  $__class;
}
sub isaModel { 1 }

sub isaFoundation__Model_Management__Model { 1 }

sub __validate
{
  my ($self, $x) = @_;
  
      # Use $x->isa$Class???
      UNIVERSAL::isa($x, 'UML::MetaModel::Foundation::Model_Management::Model')
    ;
}

sub __typecheck
{
  my ($self, $x, $msg) = @_;
  die("typecheck: $msg: type 'UML::MetaModel::Foundation::Model_Management::Model': value '$x'")  unless __validate($self, $x);
  $x;
}

sub __initialize
{
  my ($self) = @_;

  $self->UML::MetaModel::Foundation::Model_Management::Package::__initialize;


  $self;
}

sub __initialize_associations
{
  my ($self) = @_;

  $self->UML::MetaModel::Foundation::Model_Management::Package::__initialize_associations;


  $self;
}



1;

