# -*- perl -*-
# DO NOT EDIT - This file is generated by UML2CODE.
# From template: $Id: PerlTemplate.txt,v 1.12 2003/05/11 06:16:02 stephens Exp $

package UML::MetaModel;

use 5.6.1;
use strict;
use warnings;

# Import them all!!!
# [ % model_package_use % ];

my $factory_map = 
[
      'Integer',
      'UML::MetaModel::Foundation::Data_Types::Integer',
      'Foundation::Data_Types::Integer',
      'UML::MetaModel::Foundation::Data_Types::Integer',
      'UnlimitedInteger',
      'UML::MetaModel::Foundation::Data_Types::UnlimitedInteger',
      'Foundation::Data_Types::UnlimitedInteger',
      'UML::MetaModel::Foundation::Data_Types::UnlimitedInteger',
      'String',
      'UML::MetaModel::Foundation::Data_Types::String',
      'Foundation::Data_Types::String',
      'UML::MetaModel::Foundation::Data_Types::String',
      'Name',
      'UML::MetaModel::Foundation::Data_Types::Name',
      'Foundation::Data_Types::Name',
      'UML::MetaModel::Foundation::Data_Types::Name',
      'AggregationKind',
      'UML::MetaModel::Foundation::Data_Types::AggregationKind',
      'Foundation::Data_Types::AggregationKind',
      'UML::MetaModel::Foundation::Data_Types::AggregationKind',
      'Boolean',
      'UML::MetaModel::Foundation::Data_Types::Boolean',
      'Foundation::Data_Types::Boolean',
      'UML::MetaModel::Foundation::Data_Types::Boolean',
      'CallConcurrencyKind',
      'UML::MetaModel::Foundation::Data_Types::CallConcurrencyKind',
      'Foundation::Data_Types::CallConcurrencyKind',
      'UML::MetaModel::Foundation::Data_Types::CallConcurrencyKind',
      'ChangeableKind',
      'UML::MetaModel::Foundation::Data_Types::ChangeableKind',
      'Foundation::Data_Types::ChangeableKind',
      'UML::MetaModel::Foundation::Data_Types::ChangeableKind',
      'OrderingKind',
      'UML::MetaModel::Foundation::Data_Types::OrderingKind',
      'Foundation::Data_Types::OrderingKind',
      'UML::MetaModel::Foundation::Data_Types::OrderingKind',
      'PseudostateKind',
      'UML::MetaModel::Foundation::Data_Types::PseudostateKind',
      'Foundation::Data_Types::PseudostateKind',
      'UML::MetaModel::Foundation::Data_Types::PseudostateKind',
      'ScopeKind',
      'UML::MetaModel::Foundation::Data_Types::ScopeKind',
      'Foundation::Data_Types::ScopeKind',
      'UML::MetaModel::Foundation::Data_Types::ScopeKind',
      'VisibilityKind',
      'UML::MetaModel::Foundation::Data_Types::VisibilityKind',
      'Foundation::Data_Types::VisibilityKind',
      'UML::MetaModel::Foundation::Data_Types::VisibilityKind',
      'ParameterDirectionKind',
      'UML::MetaModel::Foundation::Data_Types::ParameterDirectionKind',
      'Foundation::Data_Types::ParameterDirectionKind',
      'UML::MetaModel::Foundation::Data_Types::ParameterDirectionKind',
      'Geometry',
      'UML::MetaModel::Foundation::Data_Types::Geometry',
      'Foundation::Data_Types::Geometry',
      'UML::MetaModel::Foundation::Data_Types::Geometry',
      'LocationReference',
      'UML::MetaModel::Foundation::Data_Types::LocationReference',
      'Foundation::Data_Types::LocationReference',
      'UML::MetaModel::Foundation::Data_Types::LocationReference',
      'Mapping',
      'UML::MetaModel::Foundation::Data_Types::Mapping',
      'Foundation::Data_Types::Mapping',
      'UML::MetaModel::Foundation::Data_Types::Mapping',
      'Multiplicity',
      'UML::MetaModel::Foundation::Data_Types::Multiplicity',
      'Foundation::Data_Types::Multiplicity',
      'UML::MetaModel::Foundation::Data_Types::Multiplicity',
      'MultiplicityRange',
      'UML::MetaModel::Foundation::Data_Types::MultiplicityRange',
      'Foundation::Data_Types::MultiplicityRange',
      'UML::MetaModel::Foundation::Data_Types::MultiplicityRange',
      'Expression',
      'UML::MetaModel::Foundation::Data_Types::Expression',
      'Foundation::Data_Types::Expression',
      'UML::MetaModel::Foundation::Data_Types::Expression',
      'ArgListExpression',
      'UML::MetaModel::Foundation::Data_Types::ArgListExpression',
      'Foundation::Data_Types::ArgListExpression',
      'UML::MetaModel::Foundation::Data_Types::ArgListExpression',
      'BooleanExpression',
      'UML::MetaModel::Foundation::Data_Types::BooleanExpression',
      'Foundation::Data_Types::BooleanExpression',
      'UML::MetaModel::Foundation::Data_Types::BooleanExpression',
      'MappingExpression',
      'UML::MetaModel::Foundation::Data_Types::MappingExpression',
      'Foundation::Data_Types::MappingExpression',
      'UML::MetaModel::Foundation::Data_Types::MappingExpression',
      'ProcedureExpression',
      'UML::MetaModel::Foundation::Data_Types::ProcedureExpression',
      'Foundation::Data_Types::ProcedureExpression',
      'UML::MetaModel::Foundation::Data_Types::ProcedureExpression',
      'TimeExpression',
      'UML::MetaModel::Foundation::Data_Types::TimeExpression',
      'Foundation::Data_Types::TimeExpression',
      'UML::MetaModel::Foundation::Data_Types::TimeExpression',
      'TypeExpression',
      'UML::MetaModel::Foundation::Data_Types::TypeExpression',
      'Foundation::Data_Types::TypeExpression',
      'UML::MetaModel::Foundation::Data_Types::TypeExpression',
      'Element',
      'UML::MetaModel::Foundation::Core::Element',
      'Foundation::Core::Element',
      'UML::MetaModel::Foundation::Core::Element',
      'ModelElement',
      'UML::MetaModel::Foundation::Core::ModelElement',
      'Foundation::Core::ModelElement',
      'UML::MetaModel::Foundation::Core::ModelElement',
      'ElementOwnership',
      'UML::MetaModel::Foundation::Core::ElementOwnership',
      'Foundation::Core::ElementOwnership',
      'UML::MetaModel::Foundation::Core::ElementOwnership',
      'Namespace',
      'UML::MetaModel::Foundation::Core::Namespace',
      'Foundation::Core::Namespace',
      'UML::MetaModel::Foundation::Core::Namespace',
      'GeneralizableElement',
      'UML::MetaModel::Foundation::Core::GeneralizableElement',
      'Foundation::Core::GeneralizableElement',
      'UML::MetaModel::Foundation::Core::GeneralizableElement',
      'Classifier',
      'UML::MetaModel::Foundation::Core::Classifier',
      'Foundation::Core::Classifier',
      'UML::MetaModel::Foundation::Core::Classifier',
      'Parameter',
      'UML::MetaModel::Foundation::Core::Parameter',
      'Foundation::Core::Parameter',
      'UML::MetaModel::Foundation::Core::Parameter',
      'Constraint',
      'UML::MetaModel::Foundation::Core::Constraint',
      'Foundation::Core::Constraint',
      'UML::MetaModel::Foundation::Core::Constraint',
      'Feature',
      'UML::MetaModel::Foundation::Core::Feature',
      'Foundation::Core::Feature',
      'UML::MetaModel::Foundation::Core::Feature',
      'StructuralFeature',
      'UML::MetaModel::Foundation::Core::StructuralFeature',
      'Foundation::Core::StructuralFeature',
      'UML::MetaModel::Foundation::Core::StructuralFeature',
      'Attribute',
      'UML::MetaModel::Foundation::Core::Attribute',
      'Foundation::Core::Attribute',
      'UML::MetaModel::Foundation::Core::Attribute',
      'BehavioralFeature',
      'UML::MetaModel::Foundation::Core::BehavioralFeature',
      'Foundation::Core::BehavioralFeature',
      'UML::MetaModel::Foundation::Core::BehavioralFeature',
      'Operation',
      'UML::MetaModel::Foundation::Core::Operation',
      'Foundation::Core::Operation',
      'UML::MetaModel::Foundation::Core::Operation',
      'Method',
      'UML::MetaModel::Foundation::Core::Method',
      'Foundation::Core::Method',
      'UML::MetaModel::Foundation::Core::Method',
      'Relationship',
      'UML::MetaModel::Foundation::Core::Relationship',
      'Foundation::Core::Relationship',
      'UML::MetaModel::Foundation::Core::Relationship',
      'Flow',
      'UML::MetaModel::Foundation::Core::Flow',
      'Foundation::Core::Flow',
      'UML::MetaModel::Foundation::Core::Flow',
      'Generalization',
      'UML::MetaModel::Foundation::Core::Generalization',
      'Foundation::Core::Generalization',
      'UML::MetaModel::Foundation::Core::Generalization',
      'Association',
      'UML::MetaModel::Foundation::Core::Association',
      'Foundation::Core::Association',
      'UML::MetaModel::Foundation::Core::Association',
      'AssociationClass',
      'UML::MetaModel::Foundation::Core::AssociationClass',
      'Foundation::Core::AssociationClass',
      'UML::MetaModel::Foundation::Core::AssociationClass',
      'AssociationEnd',
      'UML::MetaModel::Foundation::Core::AssociationEnd',
      'Foundation::Core::AssociationEnd',
      'UML::MetaModel::Foundation::Core::AssociationEnd',
      'Dependency',
      'UML::MetaModel::Foundation::Core::Dependency',
      'Foundation::Core::Dependency',
      'UML::MetaModel::Foundation::Core::Dependency',
      'Binding',
      'UML::MetaModel::Foundation::Core::Binding',
      'Foundation::Core::Binding',
      'UML::MetaModel::Foundation::Core::Binding',
      'Usage',
      'UML::MetaModel::Foundation::Core::Usage',
      'Foundation::Core::Usage',
      'UML::MetaModel::Foundation::Core::Usage',
      'Permission',
      'UML::MetaModel::Foundation::Core::Permission',
      'Foundation::Core::Permission',
      'UML::MetaModel::Foundation::Core::Permission',
      'Abstraction',
      'UML::MetaModel::Foundation::Core::Abstraction',
      'Foundation::Core::Abstraction',
      'UML::MetaModel::Foundation::Core::Abstraction',
      'Class',
      'UML::MetaModel::Foundation::Core::Class',
      'Foundation::Core::Class',
      'UML::MetaModel::Foundation::Core::Class',
      'Interface',
      'UML::MetaModel::Foundation::Core::Interface',
      'Foundation::Core::Interface',
      'UML::MetaModel::Foundation::Core::Interface',
      'Node',
      'UML::MetaModel::Foundation::Core::Node',
      'Foundation::Core::Node',
      'UML::MetaModel::Foundation::Core::Node',
      'Component',
      'UML::MetaModel::Foundation::Core::Component',
      'Foundation::Core::Component',
      'UML::MetaModel::Foundation::Core::Component',
      'Artifact',
      'UML::MetaModel::Foundation::Core::Artifact',
      'Foundation::Core::Artifact',
      'UML::MetaModel::Foundation::Core::Artifact',
      'DataType',
      'UML::MetaModel::Foundation::Core::DataType',
      'Foundation::Core::DataType',
      'UML::MetaModel::Foundation::Core::DataType',
      'Primitive',
      'UML::MetaModel::Foundation::Core::Primitive',
      'Foundation::Core::Primitive',
      'UML::MetaModel::Foundation::Core::Primitive',
      'ProgrammingLanguageDataType',
      'UML::MetaModel::Foundation::Core::ProgrammingLanguageDataType',
      'Foundation::Core::ProgrammingLanguageDataType',
      'UML::MetaModel::Foundation::Core::ProgrammingLanguageDataType',
      'Enumeration',
      'UML::MetaModel::Foundation::Core::Enumeration',
      'Foundation::Core::Enumeration',
      'UML::MetaModel::Foundation::Core::Enumeration',
      'EnumerationLiteral',
      'UML::MetaModel::Foundation::Core::EnumerationLiteral',
      'Foundation::Core::EnumerationLiteral',
      'UML::MetaModel::Foundation::Core::EnumerationLiteral',
      'TemplateParameter',
      'UML::MetaModel::Foundation::Core::TemplateParameter',
      'Foundation::Core::TemplateParameter',
      'UML::MetaModel::Foundation::Core::TemplateParameter',
      'TemplateArgument',
      'UML::MetaModel::Foundation::Core::TemplateArgument',
      'Foundation::Core::TemplateArgument',
      'UML::MetaModel::Foundation::Core::TemplateArgument',
      'PresentationElement',
      'UML::MetaModel::Foundation::Core::PresentationElement',
      'Foundation::Core::PresentationElement',
      'UML::MetaModel::Foundation::Core::PresentationElement',
      'Comment',
      'UML::MetaModel::Foundation::Core::Comment',
      'Foundation::Core::Comment',
      'UML::MetaModel::Foundation::Core::Comment',
      'Stereotype',
      'UML::MetaModel::Foundation::Extension_Mechanisms::Stereotype',
      'Foundation::Extension_Mechanisms::Stereotype',
      'UML::MetaModel::Foundation::Extension_Mechanisms::Stereotype',
      'TagDefinition',
      'UML::MetaModel::Foundation::Extension_Mechanisms::TagDefinition',
      'Foundation::Extension_Mechanisms::TagDefinition',
      'UML::MetaModel::Foundation::Extension_Mechanisms::TagDefinition',
      'TaggedValue',
      'UML::MetaModel::Foundation::Extension_Mechanisms::TaggedValue',
      'Foundation::Extension_Mechanisms::TaggedValue',
      'UML::MetaModel::Foundation::Extension_Mechanisms::TaggedValue',
      'Package',
      'UML::MetaModel::Model_Management::Package',
      'Model_Management::Package',
      'UML::MetaModel::Model_Management::Package',
      'Subsystem',
      'UML::MetaModel::Model_Management::Subsystem',
      'Model_Management::Subsystem',
      'UML::MetaModel::Model_Management::Subsystem',
      'Model',
      'UML::MetaModel::Model_Management::Model',
      'Model_Management::Model',
      'UML::MetaModel::Model_Management::Model',
      'ElementImport',
      'UML::MetaModel::Model_Management::ElementImport',
      'Model_Management::ElementImport',
      'UML::MetaModel::Model_Management::ElementImport',
      'Signal',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Signal',
      'Behavioral_Elements::Common_Behavior::Signal',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Signal',
      'Exception',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Exception',
      'Behavioral_Elements::Common_Behavior::Exception',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Exception',
      'Reception',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Reception',
      'Behavioral_Elements::Common_Behavior::Reception',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Reception',
      'Procedure',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Procedure',
      'Behavioral_Elements::Common_Behavior::Procedure',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Procedure',
      'AttributeLink',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::AttributeLink',
      'Behavioral_Elements::Common_Behavior::AttributeLink',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::AttributeLink',
      'Stimulus',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Stimulus',
      'Behavioral_Elements::Common_Behavior::Stimulus',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Stimulus',
      'Instance',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Instance',
      'Behavioral_Elements::Common_Behavior::Instance',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Instance',
      'DataValue',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::DataValue',
      'Behavioral_Elements::Common_Behavior::DataValue',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::DataValue',
      'SubsystemInstance',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::SubsystemInstance',
      'Behavioral_Elements::Common_Behavior::SubsystemInstance',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::SubsystemInstance',
      'ComponentInstance',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::ComponentInstance',
      'Behavioral_Elements::Common_Behavior::ComponentInstance',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::ComponentInstance',
      'NodeInstance',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::NodeInstance',
      'Behavioral_Elements::Common_Behavior::NodeInstance',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::NodeInstance',
      'Object',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Object',
      'Behavioral_Elements::Common_Behavior::Object',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Object',
      'Link',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Link',
      'Behavioral_Elements::Common_Behavior::Link',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::Link',
      'LinkEnd',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::LinkEnd',
      'Behavioral_Elements::Common_Behavior::LinkEnd',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::LinkEnd',
      'LinkObject',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::LinkObject',
      'Behavioral_Elements::Common_Behavior::LinkObject',
      'UML::MetaModel::Behavioral_Elements::Common_Behavior::LinkObject',
      'Collaboration',
      'UML::MetaModel::Behavioral_Elements::Collaborations::Collaboration',
      'Behavioral_Elements::Collaborations::Collaboration',
      'UML::MetaModel::Behavioral_Elements::Collaborations::Collaboration',
      'AssociationRole',
      'UML::MetaModel::Behavioral_Elements::Collaborations::AssociationRole',
      'Behavioral_Elements::Collaborations::AssociationRole',
      'UML::MetaModel::Behavioral_Elements::Collaborations::AssociationRole',
      'AssociationEndRole',
      'UML::MetaModel::Behavioral_Elements::Collaborations::AssociationEndRole',
      'Behavioral_Elements::Collaborations::AssociationEndRole',
      'UML::MetaModel::Behavioral_Elements::Collaborations::AssociationEndRole',
      'ClassifierRole',
      'UML::MetaModel::Behavioral_Elements::Collaborations::ClassifierRole',
      'Behavioral_Elements::Collaborations::ClassifierRole',
      'UML::MetaModel::Behavioral_Elements::Collaborations::ClassifierRole',
      'Message',
      'UML::MetaModel::Behavioral_Elements::Collaborations::Message',
      'Behavioral_Elements::Collaborations::Message',
      'UML::MetaModel::Behavioral_Elements::Collaborations::Message',
      'Action',
      'UML::MetaModel::Behavioral_Elements::Collaborations::Action',
      'Behavioral_Elements::Collaborations::Action',
      'UML::MetaModel::Behavioral_Elements::Collaborations::Action',
      'Interaction',
      'UML::MetaModel::Behavioral_Elements::Collaborations::Interaction',
      'Behavioral_Elements::Collaborations::Interaction',
      'UML::MetaModel::Behavioral_Elements::Collaborations::Interaction',
      'InteractionInstanceSet',
      'UML::MetaModel::Behavioral_Elements::Collaborations::InteractionInstanceSet',
      'Behavioral_Elements::Collaborations::InteractionInstanceSet',
      'UML::MetaModel::Behavioral_Elements::Collaborations::InteractionInstanceSet',
      'CollaborationInstanceSet',
      'UML::MetaModel::Behavioral_Elements::Collaborations::CollaborationInstanceSet',
      'Behavioral_Elements::Collaborations::CollaborationInstanceSet',
      'UML::MetaModel::Behavioral_Elements::Collaborations::CollaborationInstanceSet',
      'Actor',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::Actor',
      'Behavioral_Elements::Use_Cases::Actor',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::Actor',
      'UseCase',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::UseCase',
      'Behavioral_Elements::Use_Cases::UseCase',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::UseCase',
      'UseCaseInstance',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::UseCaseInstance',
      'Behavioral_Elements::Use_Cases::UseCaseInstance',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::UseCaseInstance',
      'Include',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::Include',
      'Behavioral_Elements::Use_Cases::Include',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::Include',
      'Extend',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::Extend',
      'Behavioral_Elements::Use_Cases::Extend',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::Extend',
      'ExtensionPoint',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::ExtensionPoint',
      'Behavioral_Elements::Use_Cases::ExtensionPoint',
      'UML::MetaModel::Behavioral_Elements::Use_Cases::ExtensionPoint',
      'StateMachine',
      'UML::MetaModel::Behavioral_Elements::State_Machines::StateMachine',
      'Behavioral_Elements::State_Machines::StateMachine',
      'UML::MetaModel::Behavioral_Elements::State_Machines::StateMachine',
      'Guard',
      'UML::MetaModel::Behavioral_Elements::State_Machines::Guard',
      'Behavioral_Elements::State_Machines::Guard',
      'UML::MetaModel::Behavioral_Elements::State_Machines::Guard',
      'Transition',
      'UML::MetaModel::Behavioral_Elements::State_Machines::Transition',
      'Behavioral_Elements::State_Machines::Transition',
      'UML::MetaModel::Behavioral_Elements::State_Machines::Transition',
      'StateVertex',
      'UML::MetaModel::Behavioral_Elements::State_Machines::StateVertex',
      'Behavioral_Elements::State_Machines::StateVertex',
      'UML::MetaModel::Behavioral_Elements::State_Machines::StateVertex',
      'State',
      'UML::MetaModel::Behavioral_Elements::State_Machines::State',
      'Behavioral_Elements::State_Machines::State',
      'UML::MetaModel::Behavioral_Elements::State_Machines::State',
      'SynchState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::SynchState',
      'Behavioral_Elements::State_Machines::SynchState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::SynchState',
      'PseudoState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::PseudoState',
      'Behavioral_Elements::State_Machines::PseudoState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::PseudoState',
      'StubState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::StubState',
      'Behavioral_Elements::State_Machines::StubState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::StubState',
      'CompositeState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::CompositeState',
      'Behavioral_Elements::State_Machines::CompositeState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::CompositeState',
      'SimpleState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::SimpleState',
      'Behavioral_Elements::State_Machines::SimpleState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::SimpleState',
      'FinalState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::FinalState',
      'Behavioral_Elements::State_Machines::FinalState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::FinalState',
      'SubmachineState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::SubmachineState',
      'Behavioral_Elements::State_Machines::SubmachineState',
      'UML::MetaModel::Behavioral_Elements::State_Machines::SubmachineState',
      'Event',
      'UML::MetaModel::Behavioral_Elements::State_Machines::Event',
      'Behavioral_Elements::State_Machines::Event',
      'UML::MetaModel::Behavioral_Elements::State_Machines::Event',
      'SignalEvent',
      'UML::MetaModel::Behavioral_Elements::State_Machines::SignalEvent',
      'Behavioral_Elements::State_Machines::SignalEvent',
      'UML::MetaModel::Behavioral_Elements::State_Machines::SignalEvent',
      'CallEvent',
      'UML::MetaModel::Behavioral_Elements::State_Machines::CallEvent',
      'Behavioral_Elements::State_Machines::CallEvent',
      'UML::MetaModel::Behavioral_Elements::State_Machines::CallEvent',
      'TimeEvent',
      'UML::MetaModel::Behavioral_Elements::State_Machines::TimeEvent',
      'Behavioral_Elements::State_Machines::TimeEvent',
      'UML::MetaModel::Behavioral_Elements::State_Machines::TimeEvent',
      'ChangeEvent',
      'UML::MetaModel::Behavioral_Elements::State_Machines::ChangeEvent',
      'Behavioral_Elements::State_Machines::ChangeEvent',
      'UML::MetaModel::Behavioral_Elements::State_Machines::ChangeEvent',
      'ActivityGraph',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::ActivityGraph',
      'Behavioral_Elements::Activity_Graphs::ActivityGraph',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::ActivityGraph',
      'Partition',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::Partition',
      'Behavioral_Elements::Activity_Graphs::Partition',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::Partition',
      'SubactivityState',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::SubactivityState',
      'Behavioral_Elements::Activity_Graphs::SubactivityState',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::SubactivityState',
      'ActionState',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::ActionState',
      'Behavioral_Elements::Activity_Graphs::ActionState',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::ActionState',
      'ObjectFlowState',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::ObjectFlowState',
      'Behavioral_Elements::Activity_Graphs::ObjectFlowState',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::ObjectFlowState',
      'ClassifierInState',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::ClassifierInState',
      'Behavioral_Elements::Activity_Graphs::ClassifierInState',
      'UML::MetaModel::Behavioral_Elements::Activity_Graphs::ClassifierInState',
      'Action',
      'UML::MetaModel::Behavioral_Elements::Actions::Action',
      'Behavioral_Elements::Actions::Action',
      'UML::MetaModel::Behavioral_Elements::Actions::Action',
      'Pin',
      'UML::MetaModel::Behavioral_Elements::Actions::Pin',
      'Behavioral_Elements::Actions::Pin',
      'UML::MetaModel::Behavioral_Elements::Actions::Pin',
      'OutputPin',
      'UML::MetaModel::Behavioral_Elements::Actions::OutputPin',
      'Behavioral_Elements::Actions::OutputPin',
      'UML::MetaModel::Behavioral_Elements::Actions::OutputPin',
      'InputPin',
      'UML::MetaModel::Behavioral_Elements::Actions::InputPin',
      'Behavioral_Elements::Actions::InputPin',
      'UML::MetaModel::Behavioral_Elements::Actions::InputPin',
      'ControlFlow',
      'UML::MetaModel::Behavioral_Elements::Actions::ControlFlow',
      'Behavioral_Elements::Actions::ControlFlow',
      'UML::MetaModel::Behavioral_Elements::Actions::ControlFlow',
      'DataFlow',
      'UML::MetaModel::Behavioral_Elements::Actions::DataFlow',
      'Behavioral_Elements::Actions::DataFlow',
      'UML::MetaModel::Behavioral_Elements::Actions::DataFlow',
      'PrimitiveAction',
      'UML::MetaModel::Behavioral_Elements::Actions::PrimitiveAction',
      'Behavioral_Elements::Actions::PrimitiveAction',
      'UML::MetaModel::Behavioral_Elements::Actions::PrimitiveAction',
      'Procedure',
      'UML::MetaModel::Behavioral_Elements::Actions::Procedure',
      'Behavioral_Elements::Actions::Procedure',
      'UML::MetaModel::Behavioral_Elements::Actions::Procedure',
      'Clause',
      'UML::MetaModel::Behavioral_Elements::Actions::Clause',
      'Behavioral_Elements::Actions::Clause',
      'UML::MetaModel::Behavioral_Elements::Actions::Clause',
      'GroupAction',
      'UML::MetaModel::Behavioral_Elements::Actions::GroupAction',
      'Behavioral_Elements::Actions::GroupAction',
      'UML::MetaModel::Behavioral_Elements::Actions::GroupAction',
      'ConditionalAction',
      'UML::MetaModel::Behavioral_Elements::Actions::ConditionalAction',
      'Behavioral_Elements::Actions::ConditionalAction',
      'UML::MetaModel::Behavioral_Elements::Actions::ConditionalAction',
      'LoopAction',
      'UML::MetaModel::Behavioral_Elements::Actions::LoopAction',
      'Behavioral_Elements::Actions::LoopAction',
      'UML::MetaModel::Behavioral_Elements::Actions::LoopAction',
      'Variable',
      'UML::MetaModel::Behavioral_Elements::Actions::Variable',
      'Behavioral_Elements::Actions::Variable',
      'UML::MetaModel::Behavioral_Elements::Actions::Variable',
  ];

=head2 factory_map

Returns an array ref that maps all UML Model names to Perl package names.
Also includes short name to fully-qualified name mappings. 

=cut
sub factory_map { $factory_map; }
       
my $model;


=head2 model

Returns the UML meta-model Model object for this Model.

=cut
sub model { $model; }
       
my $factory;

=head2 factory

Returns a factory for this Model.

=cut
sub factory 
{
  # $DB::single = 1;

  my $self = shift;
  unless ( $factory ) {
    use UML::MetaMetaModel::Factory;
    $factory = UML::MetaMetaModel::Factory->new('classMap' => $self->factory_map);
  }
  $factory;
}

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

1; # Is true!!!

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

### Keep these comments at end of file: ks.perl@kurtstephens.com 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: ###

