Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests')
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.classpath7
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.project28
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.settings/org.eclipse.jdt.core.prefs291
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/META-INF/MANIFEST.MF27
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/about.html28
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/build.properties19
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/org.eclipse.papyrus.uml.profile.types.generator.tests.launch45
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/plugin.properties13
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/pom.xml14
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.di18
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.notation437
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.uml228
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.di2
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.notation200
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.uml117
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/AllTests.java30
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/BaseElementTypes.java31
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/BasicElementTypesGenerationTest.java110
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/DiagramSpecificElementTypesGenerationBug461717Test.java107
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/DiagramSpecificElementTypesGenerationTest.java125
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/GenOption.java21
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/GenOptions.java31
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/ModelGenFixture.java314
-rw-r--r--tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/ProfilesWithPackageNestingTest.java144
25 files changed, 2455 insertions, 0 deletions
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.classpath b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.classpath
new file mode 100644
index 00000000000..098194ca4b7
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.project b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.project
new file mode 100644
index 00000000000..90676cebade
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.uml.profile.types.generator.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.settings/org.eclipse.jdt.core.prefs b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f08be2b06c4
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,291 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..42646bfadd3
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.junit;bundle-version="4.11.0",
+ org.eclipse.papyrus.junit.framework;bundle-version="1.2.0",
+ org.eclipse.papyrus.junit.utils;bundle-version="1.2.0",
+ org.eclipse.emf.ecore;bundle-version="2.11.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.types.core;bundle-version="1.2.0",
+ org.eclipse.uml2.uml;bundle-version="5.1.0",
+ org.eclipse.papyrus.uml.service.types;bundle-version="1.2.0",
+ org.eclipse.gmf.runtime.emf.type.core;bundle-version="1.7.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.profile.types.generator;bundle-version="1.2.0",
+ com.google.inject;bundle-version="3.0.0",
+ com.google.guava;bundle-version="11.0.0",
+ org.eclipse.xtext.xbase.lib;bundle-version="2.8.0"
+Export-Package: org.eclipse.papyrus.uml.profile.types.generator.tests
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 1.2.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-Description: %pluginDescription
+Bundle-SymbolicName: org.eclipse.papyrus.uml.profile.types.generator.tests;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/about.html b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/about.html
new file mode 100644
index 00000000000..d35d5aed64c
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/build.properties b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/build.properties
new file mode 100644
index 00000000000..e6ac66d4daf
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/build.properties
@@ -0,0 +1,19 @@
+# Copyright (c) 2015 Christian W. Damus and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Christian W. Damus - Initial API and implementation
+
+bin.includes = .,\
+ META-INF/,\
+ plugin.properties,\
+ about.html,\
+ resources/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/org.eclipse.papyrus.uml.profile.types.generator.tests.launch b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/org.eclipse.papyrus.uml.profile.types.generator.tests.launch
new file mode 100644
index 00000000000..10eca5b82fe
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/org.eclipse.papyrus.uml.profile.types.generator.tests.launch
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<listAttribute key="com.mountainminds.eclemma.core.SCOPE_IDS">
+<listEntry value="=org.eclipse.papyrus.uml.decoratormodel/src"/>
+</listAttribute>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/AllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.papyrus.uml.profile.types.generator.tests.AllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.papyrus.uml.profile.types.generator.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dosgi.requiredJavaVersion=1.6 -Xms128m -Xmx1200m -XX:PermSize=256M -XX:MaxPermSize=512M"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/plugin.properties b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/plugin.properties
new file mode 100644
index 00000000000..0e75fec33b0
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/plugin.properties
@@ -0,0 +1,13 @@
+# Copyright (c) 2015 Christian W. Damus and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Christian W. Damus - Initial API and implementation
+
+pluginName = Automated Tests for Papyrus Element Types Configuration Generator for UML Profiles
+providerName = Eclipse Modeling Project
+pluginDescription = JUnit tests for element types model generation for UML profiles
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/pom.xml b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/pom.xml
new file mode 100644
index 00000000000..fe5559dade5
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.tests.releng</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <relativePath>../../../../../../releng/main-tests</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.uml.profile.types.generator.tests</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.2.0-SNAPSHOT</version>
+ <packaging>eclipse-test-plugin</packaging>
+</project> \ No newline at end of file
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.di b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.di
new file mode 100644
index 00000000000..24bc988cd5f
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.di
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="j2ee.profile.notation#_rdgrcEigEeSRp-p9nf2EsA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="j2ee.profile.notation#_52licJbDEeSp3sLEVy9Cbw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="j2ee.profile.notation#_OqMJsHcGEeSigYPDkthHwg"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.notation b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.notation
new file mode 100644
index 00000000000..3b5f2260540
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.notation
@@ -0,0 +1,437 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_rdgrcEigEeSRp-p9nf2EsA" type="PapyrusUMLProfileDiagram" name="stereotypes" measurementUnit="Pixel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5jumsIZCEeSuTJMIrueWyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5jumsYZCEeSuTJMIrueWyQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5jvNwIZCEeSuTJMIrueWyQ" key="StereotypeList" value="Ecore::EPackage"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5jvNwYZCEeSuTJMIrueWyQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5jvNwoZCEeSuTJMIrueWyQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5jvNw4ZCEeSuTJMIrueWyQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_33LW0EigEeSRp-p9nf2EsA" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_33PoQEigEeSRp-p9nf2EsA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_33PoQUigEeSRp-p9nf2EsA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_33PoQkigEeSRp-p9nf2EsA" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_33PoQ0igEeSRp-p9nf2EsA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_33PoREigEeSRp-p9nf2EsA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_33PoRUigEeSRp-p9nf2EsA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_33OaIEigEeSRp-p9nf2EsA" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_33OaIUigEeSRp-p9nf2EsA" x="88" y="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6kXV0EigEeSRp-p9nf2EsA" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6kX84EigEeSRp-p9nf2EsA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kX84UigEeSRp-p9nf2EsA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kX84kigEeSRp-p9nf2EsA" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kX840igEeSRp-p9nf2EsA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kX85EigEeSRp-p9nf2EsA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6kX85UigEeSRp-p9nf2EsA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6kXV0kigEeSRp-p9nf2EsA" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kXV00igEeSRp-p9nf2EsA" x="443" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AYAIYEihEeSRp-p9nf2EsA" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AYAvcUihEeSRp-p9nf2EsA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AYAvckihEeSRp-p9nf2EsA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AYBWgEihEeSRp-p9nf2EsA" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AYBWgUihEeSRp-p9nf2EsA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AYBWgkihEeSRp-p9nf2EsA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AYBWg0ihEeSRp-p9nf2EsA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AYAIYkihEeSRp-p9nf2EsA" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AYAvcEihEeSRp-p9nf2EsA" x="275" y="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BfLy4EihEeSRp-p9nf2EsA" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BfLy4kihEeSRp-p9nf2EsA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BfLy40ihEeSRp-p9nf2EsA" type="1071">
+ <children xmi:type="notation:Node" xmi:id="_btXXAEihEeSRp-p9nf2EsA" type="3002">
+ <element xmi:type="uml:Property" href="j2ee.profile.uml#_btMX4EihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_btXXAUihEeSRp-p9nf2EsA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wa0NwGEcEeSRDpkdeXfJuw" type="3002">
+ <element xmi:type="uml:Property" href="j2ee.profile.uml#_wZ9SIGEcEeSRDpkdeXfJuw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wa0NwWEcEeSRDpkdeXfJuw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BfLy5EihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BfLy5UihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BfMZ8EihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BfMZ8UihEeSRp-p9nf2EsA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BfMZ8kihEeSRp-p9nf2EsA" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BfMZ80ihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BfMZ9EihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BfMZ9UihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BfMZ9kihEeSRp-p9nf2EsA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="j2ee.profile.uml#_Be-XgEihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BfLy4UihEeSRp-p9nf2EsA" x="24" y="197"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DNfu0EihEeSRp-p9nf2EsA" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DNgV4EihEeSRp-p9nf2EsA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DNgV4UihEeSRp-p9nf2EsA" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DNgV4kihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DNgV40ihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DNgV5EihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DNgV5UihEeSRp-p9nf2EsA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DNgV5kihEeSRp-p9nf2EsA" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DNgV50ihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DNgV6EihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DNgV6UihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DNgV6kihEeSRp-p9nf2EsA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="j2ee.profile.uml#_DNegsEihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DNfu0UihEeSRp-p9nf2EsA" x="287" y="197"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WA6KgEihEeSRp-p9nf2EsA" type="2006">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WA6xkEihEeSRp-p9nf2EsA" type="5023"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_WA6xkUihEeSRp-p9nf2EsA" type="1063">
+ <children xmi:type="notation:Node" xmi:id="_XMi3MEihEeSRp-p9nf2EsA" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="j2ee.profile.uml#_XMd-sEihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XMi3MUihEeSRp-p9nf2EsA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YztCQEihEeSRp-p9nf2EsA" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="j2ee.profile.uml#_Yzr0IEihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YztCQUihEeSRp-p9nf2EsA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Zg3qQEihEeSRp-p9nf2EsA" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="j2ee.profile.uml#_Zg2cIEihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Zg3qQUihEeSRp-p9nf2EsA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_WA6xkkihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WA6xk0ihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WA6xlEihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WA6xlUihEeSRp-p9nf2EsA"/>
+ </children>
+ <element xmi:type="uml:Enumeration" href="j2ee.profile.uml#_WA1SAEihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WA6KgUihEeSRp-p9nf2EsA" x="73" y="339"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_EpBRoEihEeSRp-p9nf2EsA" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EpBRokihEeSRp-p9nf2EsA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EpBRo0ihEeSRp-p9nf2EsA" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EpBRpEihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EpBRpUihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EpBRpkihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EpBRp0ihEeSRp-p9nf2EsA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EpBRqEihEeSRp-p9nf2EsA" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EpBRqUihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EpBRqkihEeSRp-p9nf2EsA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EpBRq0ihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EpBRrEihEeSRp-p9nf2EsA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="j2ee.profile.uml#_Eo_ccEihEeSRp-p9nf2EsA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EpBRoUihEeSRp-p9nf2EsA" x="445" y="198"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_rdgrcUigEeSRp-p9nf2EsA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_rdgrckigEeSRp-p9nf2EsA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_rdgrc0igEeSRp-p9nf2EsA">
+ <owner xmi:type="uml:Profile" href="j2ee.profile.uml#_raLqoEigEeSRp-p9nf2EsA"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="j2ee.profile.uml#_raLqoEigEeSRp-p9nf2EsA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Gi8AoEihEeSRp-p9nf2EsA" type="1013" source="_BfLy4EihEeSRp-p9nf2EsA" target="_33LW0EigEeSRp-p9nf2EsA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Gi8AoUihEeSRp-p9nf2EsA"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_Gi3IIEihEeSRp-p9nf2EsA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Gi8AokihEeSRp-p9nf2EsA" points="[-2, -15, 14, 131]$[-14, -171, 2, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GjASEEihEeSRp-p9nf2EsA" id="(0.6607142857142857,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JshAsUihEeSRp-p9nf2EsA" id="(0.47,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HDzSAEihEeSRp-p9nf2EsA" type="1013" source="_DNfu0EihEeSRp-p9nf2EsA" target="_AYAIYEihEeSRp-p9nf2EsA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HDzSAUihEeSRp-p9nf2EsA"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_HDyD4EihEeSRp-p9nf2EsA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HDzSAkihEeSRp-p9nf2EsA" points="[-4, -50, 8, 131]$[-12, -156, 0, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6G7hAEiiEeSKm9FE-lgkJg" id="(0.43,0.02)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6G8IEEiiEeSKm9FE-lgkJg" id="(0.46,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Iw5tAEihEeSRp-p9nf2EsA" type="4001" source="_BfLy4EihEeSRp-p9nf2EsA" target="_DNfu0EihEeSRp-p9nf2EsA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Iw6UEEihEeSRp-p9nf2EsA" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Iw6UEUihEeSRp-p9nf2EsA" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Iw6UEkihEeSRp-p9nf2EsA" visible="false" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Iw6UE0ihEeSRp-p9nf2EsA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Iw67IEihEeSRp-p9nf2EsA" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Iw67IUihEeSRp-p9nf2EsA" x="-8" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Iw67IkihEeSRp-p9nf2EsA" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Iw67I0ihEeSRp-p9nf2EsA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Iw67JEihEeSRp-p9nf2EsA" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Iw7iMEihEeSRp-p9nf2EsA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Iw7iMUihEeSRp-p9nf2EsA" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Iw7iMkihEeSRp-p9nf2EsA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Iw5tAUihEeSRp-p9nf2EsA"/>
+ <element xmi:type="uml:Association" href="j2ee.profile.uml#_IwZ9wEihEeSRp-p9nf2EsA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Iw5tAkihEeSRp-p9nf2EsA" points="[50, -8, -144, -8]$[144, -8, -50, -8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JsgZoEihEeSRp-p9nf2EsA" id="(1.0,0.45045045045045046)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JshAsEihEeSRp-p9nf2EsA" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JiVPoHW0EeSkkId3wIdLLg" type="1013" source="_EpBRoEihEeSRp-p9nf2EsA" target="_6kXV0EigEeSRp-p9nf2EsA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JiVPoXW0EeSkkId3wIdLLg"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_JiQXIHW0EeSkkId3wIdLLg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JiVPonW0EeSkkId3wIdLLg" points="[-3, -17, 12, 137]$[-23, -129, -8, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JiY6AHW0EeSkkId3wIdLLg" id="(0.46,0.09)"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_x0-j0EigEeSRp-p9nf2EsA"/>
+ <notation:Diagram xmi:id="_OqMJsHcGEeSigYPDkthHwg" type="PapyrusUMLProfileDiagram" name="usecases" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_QF8WAHcGEeSigYPDkthHwg" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QF89EHcGEeSigYPDkthHwg" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QF89EXcGEeSigYPDkthHwg" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QF89EncGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QF89E3cGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QF89FHcGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QF89FXcGEeSigYPDkthHwg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QF9kIHcGEeSigYPDkthHwg" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QF9kIXcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QF9kIncGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QF9kI3cGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QF9kJHcGEeSigYPDkthHwg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="j2ee.profile.uml#_m3yyoHcFEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QF8WAXcGEeSigYPDkthHwg" x="26" y="163"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QGER0HcGEeSigYPDkthHwg" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QGE44HcGEeSigYPDkthHwg" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QGE44XcGEeSigYPDkthHwg" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QGE44ncGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGE443cGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGE45HcGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGE45XcGEeSigYPDkthHwg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QGE45ncGEeSigYPDkthHwg" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QGE453cGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGE46HcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGE46XcGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGE46ncGEeSigYPDkthHwg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="j2ee.profile.uml#_qiossHcFEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGER0XcGEeSigYPDkthHwg" x="294" y="168"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QGLmkHcGEeSigYPDkthHwg" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QGLmkncGEeSigYPDkthHwg" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QGLmk3cGEeSigYPDkthHwg" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QGLmlHcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGLmlXcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGLmlncGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGLml3cGEeSigYPDkthHwg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QGMNoHcGEeSigYPDkthHwg" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QGMNoXcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGMNoncGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGMNo3cGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGMNpHcGEeSigYPDkthHwg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="j2ee.profile.uml#_rus3MHcFEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGLmkXcGEeSigYPDkthHwg" x="416" y="166"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QGSUQHcGEeSigYPDkthHwg" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QGSUQncGEeSigYPDkthHwg" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QGSUQ3cGEeSigYPDkthHwg" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QGSURHcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGSURXcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGSURncGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGSUR3cGEeSigYPDkthHwg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QGS7UHcGEeSigYPDkthHwg" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QGS7UXcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGS7UncGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGS7U3cGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGS7VHcGEeSigYPDkthHwg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="j2ee.profile.uml#_4VupIHcFEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGSUQXcGEeSigYPDkthHwg" x="156" y="165"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QGZpAHcGEeSigYPDkthHwg" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QGZpAncGEeSigYPDkthHwg" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QGZpA3cGEeSigYPDkthHwg" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QGZpBHcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGZpBXcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGZpBncGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGZpB3cGEeSigYPDkthHwg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QGaQEHcGEeSigYPDkthHwg" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QGaQEXcGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QGaQEncGEeSigYPDkthHwg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QGaQE3cGEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGaQFHcGEeSigYPDkthHwg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="j2ee.profile.uml#_8HPL4HcFEeSigYPDkthHwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGZpAXcGEeSigYPDkthHwg" x="554" y="163"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V4Q58HcGEeSigYPDkthHwg" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4SIEHcGEeSigYPDkthHwg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4SIEXcGEeSigYPDkthHwg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4SIEncGEeSigYPDkthHwg" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4SIE3cGEeSigYPDkthHwg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4SIFHcGEeSigYPDkthHwg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4SIFXcGEeSigYPDkthHwg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V4Q58ncGEeSigYPDkthHwg" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#UseCase"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V4RhAHcGEeSigYPDkthHwg" x="21" y="31"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_V4SvIHcGEeSigYPDkthHwg" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V4TWMXcGEeSigYPDkthHwg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4T9QHcGEeSigYPDkthHwg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4T9QXcGEeSigYPDkthHwg" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4T9QncGEeSigYPDkthHwg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4T9Q3cGEeSigYPDkthHwg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V4T9RHcGEeSigYPDkthHwg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_V4SvIncGEeSigYPDkthHwg" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V4TWMHcGEeSigYPDkthHwg" x="345" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hAXPwHcGEeSigYPDkthHwg" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hAYd4HcGEeSigYPDkthHwg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hAYd4XcGEeSigYPDkthHwg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hAZE8HcGEeSigYPDkthHwg" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hAZE8XcGEeSigYPDkthHwg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hAZE8ncGEeSigYPDkthHwg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hAZE83cGEeSigYPDkthHwg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hAX20HcGEeSigYPDkthHwg" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAX20XcGEeSigYPDkthHwg" x="551" y="26"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_neABkHcGEeSigYPDkthHwg" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_neBPsHcGEeSigYPDkthHwg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_neBPsXcGEeSigYPDkthHwg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_neBPsncGEeSigYPDkthHwg" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_neBPs3cGEeSigYPDkthHwg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_neBPtHcGEeSigYPDkthHwg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_neB2wHcGEeSigYPDkthHwg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_neABkncGEeSigYPDkthHwg" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ExtensionPoint"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_neAooHcGEeSigYPDkthHwg" x="160" y="27"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_OqMJsXcGEeSigYPDkthHwg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_OqMJsncGEeSigYPDkthHwg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_OqMJs3cGEeSigYPDkthHwg">
+ <owner xmi:type="uml:Profile" href="j2ee.profile.uml#_raLqoEigEeSRp-p9nf2EsA"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="j2ee.profile.uml#_raLqoEigEeSRp-p9nf2EsA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_iTrRwHcGEeSigYPDkthHwg" type="1013" source="_QGZpAHcGEeSigYPDkthHwg" target="_hAXPwHcGEeSigYPDkthHwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_iTrRwXcGEeSigYPDkthHwg"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_iTlLIHcGEeSigYPDkthHwg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iTrRwncGEeSigYPDkthHwg" points="[0, 16, 9, -108]$[0, 149, 9, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iTvjMHcGEeSigYPDkthHwg" id="(0.47,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-eZHUHdDEeSqne_6Ue1U0A" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oB5_4HcGEeSigYPDkthHwg" type="1013" source="_QGER0HcGEeSigYPDkthHwg" target="_V4SvIHcGEeSigYPDkthHwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_oB5_4XcGEeSigYPDkthHwg"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_oB2VgHcGEeSigYPDkthHwg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oB5_4ncGEeSigYPDkthHwg" points="[16, 50, -40, -107]$[50, 132, -6, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-ef1AHdDEeSqne_6Ue1U0A" id="(0.75,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-egcEHdDEeSqne_6Ue1U0A" id="(0.36,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oichIHcGEeSigYPDkthHwg" type="1013" source="_QGLmkHcGEeSigYPDkthHwg" target="_V4SvIHcGEeSigYPDkthHwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_oichIXcGEeSigYPDkthHwg"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_oiY2wHcGEeSigYPDkthHwg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oichIncGEeSigYPDkthHwg" points="[-19, 50, 47, -109]$[-58, 134, 8, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-egcEXdDEeSqne_6Ue1U0A" id="(0.14,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-ehDIHdDEeSqne_6Ue1U0A" id="(0.66,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_o5rVYHcGEeSigYPDkthHwg" type="1013" source="_QGSUQHcGEeSigYPDkthHwg" target="_neABkHcGEeSigYPDkthHwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_o5rVYXcGEeSigYPDkthHwg"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_o5oSEHcGEeSigYPDkthHwg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_o5rVYncGEeSigYPDkthHwg" points="[3, 50, -6, -107]$[3, 182, -6, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-eLr8HdDEeSqne_6Ue1U0A" id="(0.54,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-eMTAHdDEeSqne_6Ue1U0A" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pUu5sHcGEeSigYPDkthHwg" type="1013" source="_QF8WAHcGEeSigYPDkthHwg" target="_V4Q58HcGEeSigYPDkthHwg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_pUu5sXcGEeSigYPDkthHwg"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_pUrPUXcGEeSigYPDkthHwg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pUu5sncGEeSigYPDkthHwg" points="[-3, 13, 13, -113]$[-19, 101, -3, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pUykEHcGEeSigYPDkthHwg" id="(0.45,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-eTAsHdDEeSqne_6Ue1U0A" id="(0.5,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_52licJbDEeSp3sLEVy9Cbw" type="PapyrusUMLProfileDiagram" name="access control" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_66cMIJbDEeSp3sLEVy9Cbw" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_66cMIpbDEeSp3sLEVy9Cbw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_66czMJbDEeSp3sLEVy9Cbw" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_66czMZbDEeSp3sLEVy9Cbw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_66czMpbDEeSp3sLEVy9Cbw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_66czM5bDEeSp3sLEVy9Cbw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_66czNJbDEeSp3sLEVy9Cbw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_66czNZbDEeSp3sLEVy9Cbw" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_66czNpbDEeSp3sLEVy9Cbw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_66czN5bDEeSp3sLEVy9Cbw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_66czOJbDEeSp3sLEVy9Cbw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_66czOZbDEeSp3sLEVy9Cbw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="j2ee.profile.uml#_0jBXEJbDEeSp3sLEVy9Cbw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_66cMIZbDEeSp3sLEVy9Cbw" x="256" y="290"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BCaP8JbEEeSp3sLEVy9Cbw" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BCcsMJbEEeSp3sLEVy9Cbw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BCdTQJbEEeSp3sLEVy9Cbw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BCdTQZbEEeSp3sLEVy9Cbw" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BCdTQpbEEeSp3sLEVy9Cbw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BCdTQ5bEEeSp3sLEVy9Cbw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BCdTRJbEEeSp3sLEVy9Cbw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BCa3AJbEEeSp3sLEVy9Cbw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BCa3AZbEEeSp3sLEVy9Cbw" x="387" y="117"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GHq5kJbEEeSp3sLEVy9Cbw" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GHsHsJbEEeSp3sLEVy9Cbw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHsHsZbEEeSp3sLEVy9Cbw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHsHspbEEeSp3sLEVy9Cbw" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHsHs5bEEeSp3sLEVy9Cbw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHsHtJbEEeSp3sLEVy9Cbw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHsHtZbEEeSp3sLEVy9Cbw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GHq5kpbEEeSp3sLEVy9Cbw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GHrgoJbEEeSp3sLEVy9Cbw" x="125" y="120"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GHsuwJbEEeSp3sLEVy9Cbw" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GHtV0ZbEEeSp3sLEVy9Cbw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHt84JbEEeSp3sLEVy9Cbw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHt84ZbEEeSp3sLEVy9Cbw" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHt84pbEEeSp3sLEVy9Cbw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHt845bEEeSp3sLEVy9Cbw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GHt85JbEEeSp3sLEVy9Cbw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GHsuwpbEEeSp3sLEVy9Cbw" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GHtV0JbEEeSp3sLEVy9Cbw" x="254" y="118"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_52licZbDEeSp3sLEVy9Cbw" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_52licpbDEeSp3sLEVy9Cbw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_52lic5bDEeSp3sLEVy9Cbw">
+ <owner xmi:type="uml:Profile" href="j2ee.profile.uml#_raLqoEigEeSRp-p9nf2EsA"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="j2ee.profile.uml#_raLqoEigEeSRp-p9nf2EsA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Hvnu0JbEEeSp3sLEVy9Cbw" type="1013" source="_66cMIJbDEeSp3sLEVy9Cbw" target="_GHq5kJbEEeSp3sLEVy9Cbw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Hvnu0ZbEEeSp3sLEVy9Cbw"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_HvfL8JbEEeSp3sLEVy9Cbw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hvnu0pbEEeSp3sLEVy9Cbw" points="[-10, -14, 106, 145]$[-66, -152, 50, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HvucgJbEEeSp3sLEVy9Cbw" id="(0.35,0.14)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IPmPYJbEEeSp3sLEVy9Cbw" type="1013" source="_66cMIJbDEeSp3sLEVy9Cbw" target="_GHsuwJbEEeSp3sLEVy9Cbw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_IPmPYZbEEeSp3sLEVy9Cbw"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_IPh98ZbEEeSp3sLEVy9Cbw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IPmPYpbEEeSp3sLEVy9Cbw" points="[-6, -13, -5, 147]$[-6, -135, -5, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IPru8JbEEeSp3sLEVy9Cbw" id="(0.49,0.13)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Ip_FUJbEEeSp3sLEVy9Cbw" type="1013" source="_66cMIJbDEeSp3sLEVy9Cbw" target="_BCaP8JbEEeSp3sLEVy9Cbw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Ip_FUZbEEeSp3sLEVy9Cbw"/>
+ <element xmi:type="uml:Extension" href="j2ee.profile.uml#_Ip6M0JbEEeSp3sLEVy9Cbw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ip_FUpbEEeSp3sLEVy9Cbw" points="[7, -12, -104, 148]$[63, -135, -48, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IqEk4JbEEeSp3sLEVy9Cbw" id="(0.7,0.12)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.uml b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.uml
new file mode 100644
index 00000000000..e63302b1f11
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/j2ee.profile.uml
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="_raLqoEigEeSRp-p9nf2EsA" name="j2ee" metaclassReference="_33I6kEigEeSRp-p9nf2EsA _6kVgoEigEeSRp-p9nf2EsA _AX-6QEihEeSRp-p9nf2EsA _u8XtEHcFEeSigYPDkthHwg _V4PEwHcGEeSigYPDkthHwg _hAWBoHcGEeSigYPDkthHwg _nd-MYHcGEeSigYPDkthHwg _BCV-gJbEEeSp3sLEVy9Cbw" metamodelReference="_raLqoUigEeSRp-p9nf2EsA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0O4lAEihEeSRp-p9nf2EsA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_MCU6IJbEEeSp3sLEVy9Cbw" name="j2ee" nsURI="http:///schemas/j2ee/_MCRPwJbEEeSp3sLEVy9Cbw/5" nsPrefix="j2ee">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6IZbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/4.1.0/UML"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCbn0ZbEEeSp3sLEVy9Cbw" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MCbn0pbEEeSp3sLEVy9Cbw" key="Version" value="0.0.6"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MCbn05bEEeSp3sLEVy9Cbw" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MCbn1JbEEeSp3sLEVy9Cbw" key="Copyright" value="Copyright (c) 2015 Christian W. Damus and others.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; Christian W. Damus - Initial API and implementation"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MCbn1ZbEEeSp3sLEVy9Cbw" key="Date" value="2015-01-07"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MCbn1pbEEeSp3sLEVy9Cbw" key="Author" value="Christian W. Damus"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MCU6IpbEEeSp3sLEVy9Cbw" name="Bean">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6I5bEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Be-XgEihEeSRp-p9nf2EsA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6JJbEEeSp3sLEVy9Cbw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6JpbEEeSp3sLEVy9Cbw" name="finder" ordered="false" eType="_MCU6LJbEEeSp3sLEVy9Cbw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MCU6KJbEEeSp3sLEVy9Cbw" name="kind" ordered="false" lowerBound="1"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MCU6KpbEEeSp3sLEVy9Cbw" name="isManaged" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MCU6LJbEEeSp3sLEVy9Cbw" name="Finder">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6LZbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DNegsEihEeSRp-p9nf2EsA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6LpbEEeSp3sLEVy9Cbw" name="base_Operation" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_MCU6MJbEEeSp3sLEVy9Cbw" name="BeanKind">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6MZbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_WA1SAEihEeSRp-p9nf2EsA"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MCU6MpbEEeSp3sLEVy9Cbw" name="entity"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MCU6M5bEEeSp3sLEVy9Cbw" name="session" value="1"/>
+ <eLiterals xmi:type="ecore:EEnumLiteral" xmi:id="_MCU6NJbEEeSp3sLEVy9Cbw" name="messagedriven" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MCU6NZbEEeSp3sLEVy9Cbw" name="Import">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6NpbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_Eo_ccEihEeSRp-p9nf2EsA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6N5bEEeSp3sLEVy9Cbw" name="base_Dependency" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Dependency"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MCU6OZbEEeSp3sLEVy9Cbw" name="WebScenario">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6OpbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_m3yyoHcFEeSigYPDkthHwg"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6O5bEEeSp3sLEVy9Cbw" name="base_UseCase" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//UseCase"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MCU6PZbEEeSp3sLEVy9Cbw" name="User">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6PpbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_qiossHcFEeSigYPDkthHwg"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6P5bEEeSp3sLEVy9Cbw" name="base_Actor" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Actor"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MCU6QZbEEeSp3sLEVy9Cbw" name="Browser">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6QpbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_rus3MHcFEeSigYPDkthHwg"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6Q5bEEeSp3sLEVy9Cbw" name="base_Actor" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Actor"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MCU6RZbEEeSp3sLEVy9Cbw" name="BranchPoint">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6RpbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4VupIHcFEeSigYPDkthHwg"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6R5bEEeSp3sLEVy9Cbw" name="base_ExtensionPoint" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ExtensionPoint"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MCU6SZbEEeSp3sLEVy9Cbw" name="Web">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6SpbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8HPL4HcFEeSigYPDkthHwg"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6S5bEEeSp3sLEVy9Cbw" name="base_Association" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Association"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_MCU6TZbEEeSp3sLEVy9Cbw" name="AccessControlled">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MCU6TpbEEeSp3sLEVy9Cbw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_0jBXEJbDEeSp3sLEVy9Cbw"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6T5bEEeSp3sLEVy9Cbw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6UZbEEeSp3sLEVy9Cbw" name="base_Operation" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MCU6U5bEEeSp3sLEVy9Cbw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_33I6kEigEeSRp-p9nf2EsA" alias="Class">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_6kVgoEigEeSRp-p9nf2EsA" alias="Dependency">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_AX-6QEihEeSRp-p9nf2EsA" alias="Operation">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_u8XtEHcFEeSigYPDkthHwg" alias="UseCase">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#UseCase"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_V4PEwHcGEeSigYPDkthHwg" alias="Actor">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_hAWBoHcGEeSigYPDkthHwg" alias="Association">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_nd-MYHcGEeSigYPDkthHwg" alias="ExtensionPoint">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ExtensionPoint"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_BCV-gJbEEeSp3sLEVy9Cbw" alias="Property">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </elementImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_raLqoUigEeSRp-p9nf2EsA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_raLqokigEeSRp-p9nf2EsA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Be-XgEihEeSRp-p9nf2EsA" name="Bean">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Gi2hEEihEeSRp-p9nf2EsA" name="base_Class" association="_Gi3IIEihEeSRp-p9nf2EsA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IwZWsEihEeSRp-p9nf2EsA" name="finder" type="_DNegsEihEeSRp-p9nf2EsA" association="_IwZ9wEihEeSRp-p9nf2EsA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IwZWsUihEeSRp-p9nf2EsA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IwZWskihEeSRp-p9nf2EsA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_btMX4EihEeSRp-p9nf2EsA" name="kind" type="_WA1SAEihEeSRp-p9nf2EsA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_wZ9SIGEcEeSRDpkdeXfJuw" name="isManaged">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_DNegsEihEeSRp-p9nf2EsA" name="Finder">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_HDxc0EihEeSRp-p9nf2EsA" name="base_Operation" association="_HDyD4EihEeSRp-p9nf2EsA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Gi3IIEihEeSRp-p9nf2EsA" name="E_Bean_Class1" memberEnd="_Gi3IIUihEeSRp-p9nf2EsA _Gi2hEEihEeSRp-p9nf2EsA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Gi3IIUihEeSRp-p9nf2EsA" name="extension_Bean" type="_Be-XgEihEeSRp-p9nf2EsA" aggregation="composite" association="_Gi3IIEihEeSRp-p9nf2EsA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_HDyD4EihEeSRp-p9nf2EsA" name="E_Finder_Operation1" memberEnd="_HDyD4UihEeSRp-p9nf2EsA _HDxc0EihEeSRp-p9nf2EsA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_HDyD4UihEeSRp-p9nf2EsA" name="extension_Finder" type="_DNegsEihEeSRp-p9nf2EsA" aggregation="composite" association="_HDyD4EihEeSRp-p9nf2EsA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_IwZ9wEihEeSRp-p9nf2EsA" name="bean_finder_1" memberEnd="_IwZ9wUihEeSRp-p9nf2EsA _IwZWsEihEeSRp-p9nf2EsA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_IwZ9wUihEeSRp-p9nf2EsA" name="bean" type="_Be-XgEihEeSRp-p9nf2EsA" association="_IwZ9wEihEeSRp-p9nf2EsA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IwZ9wkihEeSRp-p9nf2EsA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IwZ9w0ihEeSRp-p9nf2EsA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_WA1SAEihEeSRp-p9nf2EsA" name="BeanKind">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_XMd-sEihEeSRp-p9nf2EsA" name="entity"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Yzr0IEihEeSRp-p9nf2EsA" name="session"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Zg2cIEihEeSRp-p9nf2EsA" name="messagedriven"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Eo_ccEihEeSRp-p9nf2EsA" name="Import">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JiPwEHW0EeSkkId3wIdLLg" name="base_Dependency" association="_JiQXIHW0EeSkkId3wIdLLg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_JiQXIHW0EeSkkId3wIdLLg" name="E_Import_Dependency1" memberEnd="_JiQXIXW0EeSkkId3wIdLLg _JiPwEHW0EeSkkId3wIdLLg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_JiQXIXW0EeSkkId3wIdLLg" name="extension_Import" type="_Eo_ccEihEeSRp-p9nf2EsA" aggregation="composite" association="_JiQXIHW0EeSkkId3wIdLLg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_m3yyoHcFEeSigYPDkthHwg" name="WebScenario">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pUrPUHcGEeSigYPDkthHwg" name="base_UseCase" association="_pUrPUXcGEeSigYPDkthHwg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#UseCase"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qiossHcFEeSigYPDkthHwg" name="User">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oB1ucHcGEeSigYPDkthHwg" name="base_Actor" association="_oB2VgHcGEeSigYPDkthHwg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_rus3MHcFEeSigYPDkthHwg" name="Browser">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oiYPsHcGEeSigYPDkthHwg" name="base_Actor" association="_oiY2wHcGEeSigYPDkthHwg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Actor"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_4VupIHcFEeSigYPDkthHwg" name="BranchPoint">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_o5nrAHcGEeSigYPDkthHwg" name="base_ExtensionPoint" association="_o5oSEHcGEeSigYPDkthHwg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ExtensionPoint"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_8HPL4HcFEeSigYPDkthHwg" name="Web">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iTkkEHcGEeSigYPDkthHwg" name="base_Association" association="_iTlLIHcGEeSigYPDkthHwg">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_iTlLIHcGEeSigYPDkthHwg" name="E_Web_Association1" memberEnd="_iTlLIXcGEeSigYPDkthHwg _iTkkEHcGEeSigYPDkthHwg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_iTlLIXcGEeSigYPDkthHwg" name="extension_Web" type="_8HPL4HcFEeSigYPDkthHwg" aggregation="composite" association="_iTlLIHcGEeSigYPDkthHwg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_oB2VgHcGEeSigYPDkthHwg" name="E_User_Actor1" memberEnd="_oB2VgXcGEeSigYPDkthHwg _oB1ucHcGEeSigYPDkthHwg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_oB2VgXcGEeSigYPDkthHwg" name="extension_User" type="_qiossHcFEeSigYPDkthHwg" aggregation="composite" association="_oB2VgHcGEeSigYPDkthHwg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_oiY2wHcGEeSigYPDkthHwg" name="E_Browser_Actor1" memberEnd="_oiY2wXcGEeSigYPDkthHwg _oiYPsHcGEeSigYPDkthHwg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_oiY2wXcGEeSigYPDkthHwg" name="extension_Browser" type="_rus3MHcFEeSigYPDkthHwg" aggregation="composite" association="_oiY2wHcGEeSigYPDkthHwg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_o5oSEHcGEeSigYPDkthHwg" name="E_BranchPoint_ExtensionPoint1" memberEnd="_o5oSEXcGEeSigYPDkthHwg _o5nrAHcGEeSigYPDkthHwg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_o5oSEXcGEeSigYPDkthHwg" name="extension_BranchPoint" type="_4VupIHcFEeSigYPDkthHwg" aggregation="composite" association="_o5oSEHcGEeSigYPDkthHwg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_pUrPUXcGEeSigYPDkthHwg" name="E_WebScenario_UseCase1" memberEnd="_pUrPUncGEeSigYPDkthHwg _pUrPUHcGEeSigYPDkthHwg">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_pUrPUncGEeSigYPDkthHwg" name="extension_WebScenario" type="_m3yyoHcFEeSigYPDkthHwg" aggregation="composite" association="_pUrPUXcGEeSigYPDkthHwg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_0jBXEJbDEeSp3sLEVy9Cbw" name="AccessControlled">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Hvek4JbEEeSp3sLEVy9Cbw" name="base_Class" association="_HvfL8JbEEeSp3sLEVy9Cbw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IPh98JbEEeSp3sLEVy9Cbw" name="base_Operation" association="_IPh98ZbEEeSp3sLEVy9Cbw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ip5lwJbEEeSp3sLEVy9Cbw" name="base_Property" association="_Ip6M0JbEEeSp3sLEVy9Cbw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_HvfL8JbEEeSp3sLEVy9Cbw" name="E_AccessControlled_Class1" memberEnd="_HvfL8ZbEEeSp3sLEVy9Cbw _Hvek4JbEEeSp3sLEVy9Cbw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_HvfL8ZbEEeSp3sLEVy9Cbw" name="extension_AccessControlled" type="_0jBXEJbDEeSp3sLEVy9Cbw" aggregation="composite" association="_HvfL8JbEEeSp3sLEVy9Cbw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_IPh98ZbEEeSp3sLEVy9Cbw" name="E_AccessControlled_Operation1" memberEnd="_IPh98pbEEeSp3sLEVy9Cbw _IPh98JbEEeSp3sLEVy9Cbw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_IPh98pbEEeSp3sLEVy9Cbw" name="extension_AccessControlled" type="_0jBXEJbDEeSp3sLEVy9Cbw" aggregation="composite" association="_IPh98ZbEEeSp3sLEVy9Cbw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Ip6M0JbEEeSp3sLEVy9Cbw" name="E_AccessControlled_Property1" memberEnd="_Ip6M0ZbEEeSp3sLEVy9Cbw _Ip5lwJbEEeSp3sLEVy9Cbw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Ip6M0ZbEEeSp3sLEVy9Cbw" name="extension_AccessControlled" type="_0jBXEJbDEeSp3sLEVy9Cbw" aggregation="composite" association="_Ip6M0JbEEeSp3sLEVy9Cbw"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_4DUj4IZCEeSuTJMIrueWyQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4EfBgIZCEeSuTJMIrueWyQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Profile>
+ <Ecore:EPackage xmi:id="_5jYBYIZCEeSuTJMIrueWyQ" base_Package="_raLqoEigEeSRp-p9nf2EsA" basePackage="org.eclipse.papyrus.example"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.di b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.di
new file mode 100644
index 00000000000..bf9abab340f
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.notation b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.notation
new file mode 100644
index 00000000000..febce5398f0
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.notation
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_XDNvwKdOEeS-y569OJYknA" type="PapyrusUMLProfileDiagram" name="stereotypes" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_kZ8gUKdOEeS-y569OJYknA" type="1030">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kaAxwKdOEeS-y569OJYknA" type="1047"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kaBY0KdOEeS-y569OJYknA" type="1042">
+ <children xmi:type="notation:Shape" xmi:id="_92B5IKdOEeS-y569OJYknA" type="1023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_92B5IqdOEeS-y569OJYknA" type="1046"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_92B5I6dOEeS-y569OJYknA" type="1052">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_92B5JKdOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_92B5JadOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_92B5JqdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_92B5J6dOEeS-y569OJYknA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_92B5KKdOEeS-y569OJYknA" type="1053">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_92B5KadOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_92B5KqdOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_92B5K6dOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_92B5LKdOEeS-y569OJYknA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="nesting.profile.uml#_91_c4KdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_92B5IadOEeS-y569OJYknA" x="23" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-wum0KdOEeS-y569OJYknA" type="1023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wvN4KdOEeS-y569OJYknA" type="1046"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-wvN4adOEeS-y569OJYknA" type="1052">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-wvN4qdOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-wvN46dOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-wvN5KdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-wvN5adOEeS-y569OJYknA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-wv08KdOEeS-y569OJYknA" type="1053">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-wv08adOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-wv08qdOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-wv086dOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-wv09KdOEeS-y569OJYknA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="nesting.profile.uml#_-wsKkKdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-wum0adOEeS-y569OJYknA" x="155" y="48"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kaBY0adOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kaBY0qdOEeS-y569OJYknA"/>
+ </children>
+ <element xmi:type="uml:Profile" href="nesting.profile.uml#_kZoXQKdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kZ8gUadOEeS-y569OJYknA" x="106" y="341" width="297" height="205"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oaSJQKdOEeS-y569OJYknA" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oaSwUKdOEeS-y569OJYknA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oaSwUadOEeS-y569OJYknA" type="1005">
+ <children xmi:type="notation:Shape" xmi:id="_A0Ry8KdPEeS-y569OJYknA" type="1023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_A0Ry8qdPEeS-y569OJYknA" type="1046"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A0Ry86dPEeS-y569OJYknA" type="1052">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A0Ry9KdPEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A0SaAKdPEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A0SaAadPEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A0SaAqdPEeS-y569OJYknA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_A0SaA6dPEeS-y569OJYknA" type="1053">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_A0SaBKdPEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_A0SaBadPEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_A0SaBqdPEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A0SaB6dPEeS-y569OJYknA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="nesting.profile.uml#_A0PWsKdPEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A0Ry8adPEeS-y569OJYknA" x="42" y="57"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BmYlUKdPEeS-y569OJYknA" type="1023">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BmYlUqdPEeS-y569OJYknA" type="1046"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BmYlU6dPEeS-y569OJYknA" type="1052">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BmYlVKdPEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BmYlVadPEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BmYlVqdPEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BmYlV6dPEeS-y569OJYknA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BmYlWKdPEeS-y569OJYknA" type="1053">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BmYlWadPEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BmYlWqdPEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BmYlW6dPEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BmZMYKdPEeS-y569OJYknA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="nesting.profile.uml#_BmViAKdPEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BmYlUadPEeS-y569OJYknA" x="191" y="53"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oaSwUqdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oaSwU6dOEeS-y569OJYknA"/>
+ </children>
+ <element xmi:type="uml:Package" href="nesting.profile.uml#_oaAccKdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oaSJQadOEeS-y569OJYknA" x="483" y="341" width="333" height="197"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uXCbkKdOEeS-y569OJYknA" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uXCbkqdOEeS-y569OJYknA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXEQwKdOEeS-y569OJYknA" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXEQwadOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXEQwqdOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXEQw6dOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXEQxKdOEeS-y569OJYknA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uXE30KdOEeS-y569OJYknA" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uXE30adOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uXE30qdOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uXE306dOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXE31KdOEeS-y569OJYknA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="nesting.profile.uml#_uW__UKdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uXCbkadOEeS-y569OJYknA" x="198" y="153"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ySK0YKdOEeS-y569OJYknA" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ySLbcadOEeS-y569OJYknA" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ySLbcqdOEeS-y569OJYknA" type="1071">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ySLbc6dOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ySLbdKdOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ySLbdadOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ySLbdqdOEeS-y569OJYknA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ySLbd6dOEeS-y569OJYknA" type="1019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ySLbeKdOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ySLbeadOEeS-y569OJYknA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ySLbeqdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ySLbe6dOEeS-y569OJYknA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="nesting.profile.uml#_ySI_MKdOEeS-y569OJYknA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ySLbcKdOEeS-y569OJYknA" x="660" y="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_K3jOsKdPEeS-y569OJYknA" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K3lq8KdPEeS-y569OJYknA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K3lq8adPEeS-y569OJYknA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K3lq8qdPEeS-y569OJYknA" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K3lq86dPEeS-y569OJYknA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K3mSAKdPEeS-y569OJYknA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K3mSAadPEeS-y569OJYknA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_K3jOsqdPEeS-y569OJYknA" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K3j1wKdPEeS-y569OJYknA" x="306" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yWuu0KdPEeS-y569OJYknA" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yWwkAKdPEeS-y569OJYknA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yWwkAadPEeS-y569OJYknA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yWxLEKdPEeS-y569OJYknA" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yWxLEadPEeS-y569OJYknA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yWxLEqdPEeS-y569OJYknA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yWxLE6dPEeS-y569OJYknA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yWvV4KdPEeS-y569OJYknA" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yWvV4adPEeS-y569OJYknA" x="454" y="36"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_XDNvwadOEeS-y569OJYknA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_XDNvwqdOEeS-y569OJYknA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_XDNvw6dOEeS-y569OJYknA">
+ <owner xmi:type="uml:Profile" href="nesting.profile.uml#_XADuEKdOEeS-y569OJYknA"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="nesting.profile.uml#_XADuEKdOEeS-y569OJYknA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_EZkeoKdPEeS-y569OJYknA" type="4002" source="_92B5IKdOEeS-y569OJYknA" target="_uXCbkKdOEeS-y569OJYknA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EZlFsKdPEeS-y569OJYknA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EZlFsadPEeS-y569OJYknA" x="-4" y="28"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EZkeoadPEeS-y569OJYknA"/>
+ <element xmi:type="uml:Generalization" href="nesting.profile.uml#_EZJn4KdPEeS-y569OJYknA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EZkeoqdPEeS-y569OJYknA" points="[17, -50, -98, 248]$[65, -255, -50, 43]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O3Ke4KdPEeS-y569OJYknA" id="(0.61,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O3Ke4adPEeS-y569OJYknA" id="(0.38,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FU10EKdPEeS-y569OJYknA" type="4002" source="_A0Ry8KdPEeS-y569OJYknA" target="_uXCbkKdOEeS-y569OJYknA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FU10E6dPEeS-y569OJYknA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FU10FKdPEeS-y569OJYknA" x="-5" y="19"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FU10EadPEeS-y569OJYknA"/>
+ <element xmi:type="uml:Generalization" href="nesting.profile.uml#_FUzX0KdPEeS-y569OJYknA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FU10EqdPEeS-y569OJYknA" points="[-24, -23, 237, 243]$[-228, -216, 33, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FU9I0KdPEeS-y569OJYknA" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O3J30KdPEeS-y569OJYknA" id="(1.0,0.88)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RDtO8KdPEeS-y569OJYknA" type="1013" source="_uXCbkKdOEeS-y569OJYknA" target="_K3jOsKdPEeS-y569OJYknA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_RDtO8adPEeS-y569OJYknA"/>
+ <element xmi:type="uml:Extension" href="nesting.profile.uml#_RDmhQKdPEeS-y569OJYknA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RDtO8qdPEeS-y569OJYknA" points="[17, -21, -71, 88]$[81, -84, -7, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RD1KwKdPEeS-y569OJYknA" id="(0.7,0.21)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_S5mZkKdPEeS-y569OJYknA" type="1013" source="_ySK0YKdOEeS-y569OJYknA" target="_yWuu0KdPEeS-y569OJYknA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_S5mZkadPEeS-y569OJYknA"/>
+ <element xmi:type="uml:Extension" href="nesting.profile.uml#_S5iIIadPEeS-y569OJYknA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_S5mZkqdPEeS-y569OJYknA" points="[-14, -14, 95, 73]$[-59, -90, 50, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S5rSEKdPEeS-y569OJYknA" id="(0.01,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6MTj8KdPEeS-y569OJYknA" id="(0.9,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Ue7_sKdPEeS-y569OJYknA" type="1013" source="_-wum0KdOEeS-y569OJYknA" target="_yWuu0KdPEeS-y569OJYknA" jumpLinkStatus="All">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Ue7_sadPEeS-y569OJYknA"/>
+ <element xmi:type="uml:Extension" href="nesting.profile.uml#_Ue5jcKdPEeS-y569OJYknA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ue7_sqdPEeS-y569OJYknA" points="[20, -50, -155, 345]$[125, -396, -50, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6MS84KdPEeS-y569OJYknA" id="(0.68,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_30NEIKdPEeS-y569OJYknA" id="(0.07,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Vr_BoKdPEeS-y569OJYknA" type="1013" source="_BmYlUKdPEeS-y569OJYknA" target="_yWuu0KdPEeS-y569OJYknA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Vr_BoadPEeS-y569OJYknA"/>
+ <element xmi:type="uml:Extension" href="nesting.profile.uml#_Vr7-UKdPEeS-y569OJYknA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Vr_BoqdPEeS-y569OJYknA" points="[-9, -14, 196, 338]$[-255, -359, -50, -7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VsFIQKdPEeS-y569OJYknA" id="(0.08,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2ntb0KdPEeS-y569OJYknA" id="(0.38,1.0)"/>
+ </edges>
+</notation:Diagram>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.uml b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.uml
new file mode 100644
index 00000000000..7cd07408209
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/resources/nesting.profile.uml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Profile xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_XADuEKdOEeS-y569OJYknA" name="root" metaclassReference="_K3fkUKdPEeS-y569OJYknA _K3gLYKdPEeS-y569OJYknA _yWs5oKdPEeS-y569OJYknA" metamodelReference="_XADuEadOEeS-y569OJYknA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hxdlsKdPEeS-y569OJYknA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_DYb8UadQEeS-y569OJYknA" name="root" nsURI="http:///schemas/root/_DYb8UKdQEeS-y569OJYknA/0" nsPrefix="root">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYb8UqdQEeS-y569OJYknA" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_kZoXQKdOEeS-y569OJYknA"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYhb4KdQEeS-y569OJYknA" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYhb4adQEeS-y569OJYknA" key="Version" value="0.0.1"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYhb4qdQEeS-y569OJYknA" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYhb46dQEeS-y569OJYknA" key="Copyright" value="Copyright (c) 2015 Christian W. Damus and others.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; Christian W. Damus - Initial API and implementation"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYhb5KdQEeS-y569OJYknA" key="Date" value="2015-01-28"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYhb5adQEeS-y569OJYknA" key="Author" value="Christian W. Damus"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DYb8U6dQEeS-y569OJYknA" name="S1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYb8VKdQEeS-y569OJYknA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_uW__UKdOEeS-y569OJYknA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_DYb8VadQEeS-y569OJYknA" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DYb8V6dQEeS-y569OJYknA" name="S2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYb8WKdQEeS-y569OJYknA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ySI_MKdOEeS-y569OJYknA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_DYb8WadQEeS-y569OJYknA" name="base_Generalization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Generalization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eSubpackages xmi:type="ecore:EPackage" xmi:id="_DYb8W6dQEeS-y569OJYknA" name="nestedPackage" nsURI="http:///root/nestedPackage.ecore" nsPrefix="root.nestedPackage">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYb8XKdQEeS-y569OJYknA" source="http://www.eclipse.org/uml2/4.0.0/UML" references="_oaAccKdOEeS-y569OJYknA"/>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DYb8XadQEeS-y569OJYknA" name="S2_1" eSuperTypes="_DYb8U6dQEeS-y569OJYknA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYb8XqdQEeS-y569OJYknA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_A0PWsKdPEeS-y569OJYknA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DYb8YKdQEeS-y569OJYknA" name="S2_2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYb8YadQEeS-y569OJYknA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_BmViAKdPEeS-y569OJYknA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_DYb8YqdQEeS-y569OJYknA" name="base_Generalization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Generalization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </eSubpackages>
+ </contents>
+ </eAnnotations>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_K3fkUKdPEeS-y569OJYknA" alias="Class">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_K3gLYKdPEeS-y569OJYknA" alias="DataType">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
+ </elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_yWs5oKdPEeS-y569OJYknA" alias="Generalization">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
+ </elementImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_XADuEadOEeS-y569OJYknA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_XADuEqdOEeS-y569OJYknA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_kZoXQKdOEeS-y569OJYknA" name="nestedProfile">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hxfa4adPEeS-y569OJYknA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_DYdxgKdQEeS-y569OJYknA" name="nestedProfile" nsURI="http://root/schemas/nestedProfile/_DYdKcKdQEeS-y569OJYknA/0" nsPrefix="nestedProfile">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYdxgadQEeS-y569OJYknA" source="http://www.eclipse.org/uml2/4.1.0/UML" references="_DYb8UadQEeS-y569OJYknA"/>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYiC8KdQEeS-y569OJYknA" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYiC8adQEeS-y569OJYknA" key="Version" value="0.0.1"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYiC8qdQEeS-y569OJYknA" key="Comment" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYiC86dQEeS-y569OJYknA" key="Copyright" value="Copyright (c) 2015 Christian W. Damus and others.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; Christian W. Damus - Initial API and implementation"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYiC9KdQEeS-y569OJYknA" key="Date" value="2015-01-28"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYiC9adQEeS-y569OJYknA" key="Author" value="Christian W. Damus"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DYdxgqdQEeS-y569OJYknA" name="S1_1" eSuperTypes="_DYb8U6dQEeS-y569OJYknA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYdxg6dQEeS-y569OJYknA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_91_c4KdOEeS-y569OJYknA"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_DYdxhadQEeS-y569OJYknA" name="S1_2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DYdxhqdQEeS-y569OJYknA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_-wsKkKdOEeS-y569OJYknA"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_DYdxh6dQEeS-y569OJYknA" name="base_Generalization" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Generalization"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_91_c4KdOEeS-y569OJYknA" name="S1_1">
+ <generalization xmi:type="uml:Generalization" xmi:id="_EZJn4KdPEeS-y569OJYknA" general="_uW__UKdOEeS-y569OJYknA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_-wsKkKdOEeS-y569OJYknA" name="S1_2">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ue48YKdPEeS-y569OJYknA" name="base_Generalization" association="_Ue5jcKdPEeS-y569OJYknA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Ue5jcKdPEeS-y569OJYknA" name="E_S1_2_Generalization1" memberEnd="_Ue5jcadPEeS-y569OJYknA _Ue48YKdPEeS-y569OJYknA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Ue5jcadPEeS-y569OJYknA" name="extension_S1_2" type="_-wsKkKdOEeS-y569OJYknA" aggregation="composite" association="_Ue5jcKdPEeS-y569OJYknA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_oaAccKdOEeS-y569OJYknA" name="nestedPackage">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_A0PWsKdPEeS-y569OJYknA" name="S2_1">
+ <generalization xmi:type="uml:Generalization" xmi:id="_FUzX0KdPEeS-y569OJYknA" general="_uW__UKdOEeS-y569OJYknA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_BmViAKdPEeS-y569OJYknA" name="S2_2">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Vr7XQKdPEeS-y569OJYknA" name="base_Generalization" association="_Vr7-UKdPEeS-y569OJYknA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Vr7-UKdPEeS-y569OJYknA" name="E_S2_2_Generalization1" memberEnd="_Vr7-UadPEeS-y569OJYknA _Vr7XQKdPEeS-y569OJYknA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Vr7-UadPEeS-y569OJYknA" name="extension_S2_2" type="_BmViAKdPEeS-y569OJYknA" aggregation="composite" association="_Vr7-UKdPEeS-y569OJYknA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_uW__UKdOEeS-y569OJYknA" name="S1">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RDl6MKdPEeS-y569OJYknA" name="base_Class" association="_RDmhQKdPEeS-y569OJYknA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ySI_MKdOEeS-y569OJYknA" name="S2">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_S5iIIKdPEeS-y569OJYknA" name="base_Generalization" association="_S5iIIadPEeS-y569OJYknA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_RDmhQKdPEeS-y569OJYknA" name="E_S1_Class1" memberEnd="_RDmhQadPEeS-y569OJYknA _RDl6MKdPEeS-y569OJYknA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_RDmhQadPEeS-y569OJYknA" name="extension_S1" type="_uW__UKdOEeS-y569OJYknA" aggregation="composite" association="_RDmhQKdPEeS-y569OJYknA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_S5iIIadPEeS-y569OJYknA" name="E_S2_Generalization1" memberEnd="_S5iIIqdPEeS-y569OJYknA _S5iIIKdPEeS-y569OJYknA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_S5iIIqdPEeS-y569OJYknA" name="extension_S2" type="_ySI_MKdOEeS-y569OJYknA" aggregation="composite" association="_S5iIIadPEeS-y569OJYknA"/>
+ </packagedElement>
+</uml:Profile>
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/AllTests.java b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/AllTests.java
new file mode 100644
index 00000000000..d792480bba0
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/AllTests.java
@@ -0,0 +1,30 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.profile.types.generator.tests;
+
+import org.junit.runner.RunWith;
+import org.eclipse.papyrus.junit.framework.classification.ClassificationSuite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * The master test suite for the plug-in.
+ */
+@RunWith(ClassificationSuite.class)
+@SuiteClasses({
+ BasicElementTypesGenerationTest.class, DiagramSpecificElementTypesGenerationTest.class,
+ ProfilesWithPackageNestingTest.class,
+ DiagramSpecificElementTypesGenerationBug461717Test.class })
+public class AllTests {
+ // Nothing required
+}
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/BaseElementTypes.java b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/BaseElementTypes.java
new file mode 100644
index 00000000000..491af910aaa
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/BaseElementTypes.java
@@ -0,0 +1,31 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.profile.types.generator.tests;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Annotates a test case or suite class with the ID of the base element types set for model generation.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.METHOD, ElementType.TYPE })
+public @interface BaseElementTypes {
+ /**
+ * The ID of the base element types set configuration model.
+ */
+ String value();
+}
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/BasicElementTypesGenerationTest.java b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/BasicElementTypesGenerationTest.java
new file mode 100644
index 00000000000..ff95df9d1ab
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/BasicElementTypesGenerationTest.java
@@ -0,0 +1,110 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.profile.types.generator.tests;
+
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.isEmpty;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.List;
+
+import org.eclipse.papyrus.infra.types.IconEntry;
+import org.eclipse.papyrus.infra.types.SpecializationTypeConfiguration;
+import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.service.types.element.UMLElementTypes;
+import org.eclipse.papyrus.uml.types.core.advices.applystereotype.ApplyStereotypeAdviceConfiguration;
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherConfiguration;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.edit.UMLEditPlugin;
+import org.eclipse.xtext.xbase.lib.Pair;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+/**
+ * Test cases for the basics of element types generation for UML profiles.
+ */
+@PluginResource("/resources/j2ee.profile.uml")
+public class BasicElementTypesGenerationTest extends AbstractPapyrusTest {
+
+ @ClassRule
+ public static final ModelGenFixture fixture = new ModelGenFixture();
+
+ public BasicElementTypesGenerationTest() {
+ super();
+ }
+
+ @Test
+ public void elementTypesGenerated() {
+ Pair<Stereotype, Class> beanClass = fixture.getMetaclassExtension("Bean", "Class");
+ fixture.assertSpecializationType(beanClass);
+ assertThat(fixture.getElementTypeSet().getMetamodelNsURI(), is(UMLPackage.eNS_URI));
+ }
+
+ /**
+ * Verifies that non-diagram-specific element types are generated with only a semantic parent (no visual parent).
+ *
+ * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=461717
+ */
+ @Test
+ public void elementTypeSpecializedTypes_bug461717() {
+ Pair<Stereotype, Class> beanClass = fixture.getMetaclassExtension("Bean", "Class");
+ SpecializationTypeConfiguration specialization = fixture.assertSpecializationType(beanClass);
+
+ assertThat(specialization.getIdentifier(), is(fixture.prefix + ".Bean"));
+
+ List<String> specializedTypeIDs = specialization.getSpecializedTypesID();
+ assertThat(specializedTypeIDs.size(), is(1));
+ assertThat(specializedTypeIDs.get(0), is(UMLElementTypes.CLASS.getId()));
+ }
+
+ @Test
+ public void multipleElementTypesForOneStereotypeGenerated() {
+ Pair<Stereotype, Class> accessClass = fixture.getMetaclassExtension("AccessControlled", "Class");
+ Pair<Stereotype, Class> accessProperty = fixture.getMetaclassExtension("AccessControlled", "Property");
+ assertThat(fixture.assertSpecializationType(accessClass), not(fixture.assertSpecializationType(accessProperty)));
+ }
+
+ @Test
+ public void iconGenerated() {
+ Pair<Stereotype, Class> beanClass = fixture.getMetaclassExtension("Bean", "Class");
+ SpecializationTypeConfiguration type = fixture.assertSpecializationType(beanClass);
+ IconEntry icon = type.getIconEntry();
+ assertThat(icon.getBundleId(), is(UMLEditPlugin.getPlugin().getSymbolicName()));
+ assertThat(icon.getIconPath(), containsString("obj16/Class.gif"));
+ }
+
+ @Test
+ public void stereotypeMatcherGenerated() {
+ Pair<Stereotype, Class> beanClass = fixture.getMetaclassExtension("Bean", "Class");
+ SpecializationTypeConfiguration type = fixture.assertSpecializationType(beanClass);
+ StereotypeApplicationMatcherConfiguration matcher = fixture.assertStereotypeMatcher(type);
+ assertThat(matcher.getStereotypesQualifiedNames(), hasItem("j2ee::Bean"));
+ }
+
+ @Test
+ public void stereotypeAdviceGenerated() {
+ Pair<Stereotype, Class> beanClass = fixture.getMetaclassExtension("Bean", "Class");
+ ApplyStereotypeAdviceConfiguration advice = fixture.assertApplyStereotypeAdvice(beanClass);
+ assertThat(advice.getTarget(), is(fixture.getElementTypeConfiguration(beanClass)));
+ assertThat(advice.getStereotypesToApply(), not(isEmpty()));
+ assertThat(advice.getStereotypesToApply().get(0).getRequiredProfiles(), hasItem("j2ee"));
+ assertThat(advice.getStereotypesToApply().get(0).getStereotypeQualifiedName(), is("j2ee::Bean"));
+ }
+}
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/DiagramSpecificElementTypesGenerationBug461717Test.java b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/DiagramSpecificElementTypesGenerationBug461717Test.java
new file mode 100644
index 00000000000..6f1d6c1bc2e
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/DiagramSpecificElementTypesGenerationBug461717Test.java
@@ -0,0 +1,107 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.profile.types.generator.tests;
+
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.isEmpty;
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.regexContains;
+import static org.eclipse.papyrus.uml.profile.types.generator.tests.GenOption.SUPPRESS_SEMANTIC_SUPERTYPE;
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.startsWith;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.List;
+
+import org.eclipse.papyrus.infra.types.SpecializationTypeConfiguration;
+import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.types.core.advices.applystereotype.ApplyStereotypeAdviceConfiguration;
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherConfiguration;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.xtext.xbase.lib.Pair;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+/**
+ * Test cases for diagram-specific element types generation for UML profiles with the option to suppress the generation
+ * of the semantic supertype reference.
+ *
+ * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=461717
+ */
+@PluginResource("/resources/j2ee.profile.uml")
+@BaseElementTypes("org.eclipse.papyrus.uml.diagram.usecase.elementTypeSet")
+@GenOptions(SUPPRESS_SEMANTIC_SUPERTYPE)
+public class DiagramSpecificElementTypesGenerationBug461717Test extends AbstractPapyrusTest {
+
+ @ClassRule
+ public static final ModelGenFixture fixture = new ModelGenFixture();
+
+ public DiagramSpecificElementTypesGenerationBug461717Test() {
+ super();
+ }
+
+ /**
+ * Verifies that diagram-specific element types are generated with only the visual parent
+ * when the semantic parent is suppressed.
+ */
+ @Test
+ public void elementTypeSpecializedTypes() {
+ Pair<Stereotype, Class> userActor = fixture.getMetaclassExtension("User", "Actor");
+ List<SpecializationTypeConfiguration> specializationTypes = fixture.assertAllSpecializationTypes(userActor);
+ assertThat("No specialization types generated", specializationTypes, not(isEmpty()));
+
+ String idPrefix = fixture.prefix + ".User_";
+
+ for (SpecializationTypeConfiguration next : specializationTypes) {
+ assertThat(next.getIdentifier(), startsWith(idPrefix));
+
+ List<String> specializedTypeIDs = next.getSpecializedTypesID();
+ assertThat(specializedTypeIDs.size(), is(1));
+ assertThat(specializedTypeIDs.get(0), regexContains("Actor_\\d{4}$")); // a visual ID
+ }
+ }
+
+ /**
+ * Verifies that diagram-specific element types are generated with stereotype matchers
+ * when the semantic parent is suppressed.
+ */
+ @Test
+ public void stereotypeMatcherGenerated() {
+ Pair<Stereotype, Class> userActor = fixture.getMetaclassExtension("User", "Actor");
+ List<SpecializationTypeConfiguration> types = fixture.assertAllSpecializationTypes(userActor);
+ for (SpecializationTypeConfiguration type : types) {
+ StereotypeApplicationMatcherConfiguration matcher = fixture.assertStereotypeMatcher(type);
+ assertThat(matcher.getStereotypesQualifiedNames(), hasItem("j2ee::User"));
+ }
+ }
+
+ /**
+ * Verifies that diagram-specific element types are generated with apply-stereotype advice
+ * when the semantic parent is suppressed.
+ */
+ @Test
+ public void stereotypeAdviceGenerated() {
+ Pair<Stereotype, Class> userActor = fixture.getMetaclassExtension("User", "Actor");
+ List<ApplyStereotypeAdviceConfiguration> advices = fixture.assertAllApplyStereotypeAdvices(userActor);
+ for (ApplyStereotypeAdviceConfiguration advice : advices) {
+ String visualID = advice.getIdentifier().substring(advice.getIdentifier().lastIndexOf('_') + 1);
+ assertThat(advice.getTarget(), is(fixture.getElementTypeConfiguration(userActor, visualID)));
+ assertThat(advice.getStereotypesToApply(), not(isEmpty()));
+ assertThat(advice.getStereotypesToApply().get(0).getRequiredProfiles(), hasItem("j2ee"));
+ assertThat(advice.getStereotypesToApply().get(0).getStereotypeQualifiedName(), is("j2ee::User"));
+ }
+ }
+}
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/DiagramSpecificElementTypesGenerationTest.java b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/DiagramSpecificElementTypesGenerationTest.java
new file mode 100644
index 00000000000..5abfb7028de
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/DiagramSpecificElementTypesGenerationTest.java
@@ -0,0 +1,125 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.profile.types.generator.tests;
+
+import static com.google.common.collect.Iterables.transform;
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.isEmpty;
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.regexContains;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.hasItems;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.startsWith;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.papyrus.infra.emf.utils.EMFFunctions;
+import org.eclipse.papyrus.infra.types.ElementTypesConfigurationsPackage;
+import org.eclipse.papyrus.infra.types.IconEntry;
+import org.eclipse.papyrus.infra.types.SpecializationTypeConfiguration;
+import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.edit.UMLEditPlugin;
+import org.eclipse.xtext.xbase.lib.Pair;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+import com.google.common.collect.ImmutableSet;
+
+/**
+ * Test cases for diagram-specific element types generation for UML profiles.
+ */
+@PluginResource("/resources/j2ee.profile.uml")
+@BaseElementTypes("org.eclipse.papyrus.uml.diagram.usecase.elementTypeSet")
+public class DiagramSpecificElementTypesGenerationTest extends AbstractPapyrusTest {
+
+ @ClassRule
+ public static final ModelGenFixture fixture = new ModelGenFixture();
+
+ public DiagramSpecificElementTypesGenerationTest() {
+ super();
+ }
+
+ @Test
+ public void elementTypesGenerated() {
+ Pair<Stereotype, Class> userActor = fixture.getMetaclassExtension("User", "Actor");
+ fixture.assertAllSpecializationTypes(userActor);
+ assertThat(fixture.getElementTypeSet().getMetamodelNsURI(), is(UMLPackage.eNS_URI));
+ }
+
+ /**
+ * Verifies that diagram-specific element types are generated with both a semantic parent and a visual parent.
+ *
+ * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=461717
+ */
+ @Test
+ public void elementTypeSpecializedTypes_bug461717() {
+ Pair<Stereotype, Class> userActor = fixture.getMetaclassExtension("User", "Actor");
+ List<SpecializationTypeConfiguration> specializationTypes = fixture.assertAllSpecializationTypes(userActor);
+ assertThat("No specialization types generated", specializationTypes, not(isEmpty()));
+
+ String semanticParentID = fixture.prefix + ".User";
+ String idPrefix = semanticParentID + "_";
+
+ for (SpecializationTypeConfiguration next : specializationTypes) {
+ assertThat(next.getIdentifier(), startsWith(idPrefix));
+
+ List<String> specializedTypeIDs = next.getSpecializedTypesID();
+ assertThat(specializedTypeIDs.size(), is(2));
+ assertThat(specializedTypeIDs.get(0), is(semanticParentID));
+ assertThat(specializedTypeIDs.get(1), regexContains("Actor_\\d{4}$")); // a visual ID
+ }
+ }
+
+ @Test
+ public void distinctHintsGenerated() {
+ Pair<Stereotype, Class> userActor = fixture.getMetaclassExtension("User", "Actor");
+ List<SpecializationTypeConfiguration> types = fixture.assertAllSpecializationTypes(userActor);
+ Set<String> hints = ImmutableSet.copyOf(transform(types, EMFFunctions.getFeature(ElementTypesConfigurationsPackage.Literals.ELEMENT_TYPE_CONFIGURATION__HINT, String.class)));
+ assertThat(hints, hasItems("2011", "2012"));
+ }
+
+ @Test
+ public void iconGenerated() {
+ Pair<Stereotype, Class> userActor = fixture.getMetaclassExtension("User", "Actor");
+ List<SpecializationTypeConfiguration> types = fixture.assertAllSpecializationTypes(userActor);
+ for (SpecializationTypeConfiguration type : types) {
+ IconEntry icon = type.getIconEntry();
+ assertThat(icon.getBundleId(), is(UMLEditPlugin.getPlugin().getSymbolicName()));
+ assertThat(icon.getIconPath(), containsString("obj16/Actor.gif"));
+ }
+ }
+
+ @Test
+ public void stereotypeMatcherNotGenerated() {
+ Pair<Stereotype, Class> userActor = fixture.getMetaclassExtension("User", "Actor");
+ List<SpecializationTypeConfiguration> types = fixture.assertAllSpecializationTypes(userActor);
+ for (SpecializationTypeConfiguration type : types) {
+ // Stereotype matchers are not required where they are inherited from semantic supertype
+ fixture.assertNoStereotypeMatcher(type);
+ }
+ }
+
+ @Test
+ public void stereotypeAdviceNotGenerated() {
+ Pair<Stereotype, Class> userActor = fixture.getMetaclassExtension("User", "Actor");
+ // Apply-stereotype advice is not required where it is inherited from semantic supertype
+ fixture.assertNoApplyStereotypeAdvice(userActor);
+ }
+}
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/GenOption.java b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/GenOption.java
new file mode 100644
index 00000000000..a0bb865c9f9
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/GenOption.java
@@ -0,0 +1,21 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.profile.types.generator.tests;
+
+/**
+ * Test fixture model generation options.
+ */
+public enum GenOption {
+ SUPPRESS_SEMANTIC_SUPERTYPE;
+}
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/GenOptions.java b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/GenOptions.java
new file mode 100644
index 00000000000..7b2cc26335e
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/GenOptions.java
@@ -0,0 +1,31 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.profile.types.generator.tests;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Annotates a test case or suite class with model generation options.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.METHOD, ElementType.TYPE })
+public @interface GenOptions {
+ /**
+ * The model generation options.
+ */
+ GenOption[] value();
+}
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/ModelGenFixture.java b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/ModelGenFixture.java
new file mode 100644
index 00000000000..1161cfdb57a
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/ModelGenFixture.java
@@ -0,0 +1,314 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.profile.types.generator.tests;
+
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.isEmpty;
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.lessThan;
+import static org.eclipse.papyrus.uml.profile.types.generator.tests.GenOption.SUPPRESS_SEMANTIC_SUPERTYPE;
+import static org.eclipse.uml2.common.util.UML2Util.getValidJavaIdentifier;
+import static org.hamcrest.CoreMatchers.everyItem;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Set;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.papyrus.infra.types.AbstractAdviceBindingConfiguration;
+import org.eclipse.papyrus.infra.types.AbstractMatcherConfiguration;
+import org.eclipse.papyrus.infra.types.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.types.ElementTypeSetConfiguration;
+import org.eclipse.papyrus.infra.types.SpecializationTypeConfiguration;
+import org.eclipse.papyrus.infra.types.core.registries.ElementTypeSetConfigurationRegistry;
+import org.eclipse.papyrus.junit.utils.JUnitUtils;
+import org.eclipse.papyrus.junit.utils.rules.ResourceSetFixture;
+import org.eclipse.papyrus.uml.profile.types.generator.ElementTypesGenerator;
+import org.eclipse.papyrus.uml.profile.types.generator.Identifiers;
+import org.eclipse.papyrus.uml.types.core.advices.applystereotype.ApplyStereotypeAdviceConfiguration;
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherConfiguration;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.xtext.xbase.lib.Pair;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+import org.hamcrest.CoreMatchers;
+import org.junit.runner.Description;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Iterators;
+import com.google.common.collect.Lists;
+
+/**
+ * A test fixture for orchestration of model transformations and verification of transformation results.
+ */
+public class ModelGenFixture extends ResourceSetFixture {
+ private static final String UML_ELEMENT_TYPES = "org.eclipse.papyrus.uml.service.types.UMLElementTypeSet";
+
+ protected final String prefix = "org.eclipse.papyrus.test";
+
+ private String baseElementTypesSet = UML_ELEMENT_TYPES;
+
+ private Set<GenOption> genOptions = EnumSet.noneOf(GenOption.class);
+
+ public ModelGenFixture() {
+ super();
+ }
+
+ public URI getElementTypesResourceURI() {
+ URI inputURI = getModelResourceURI();
+ String basename = inputURI.lastSegment();
+ basename = basename.substring(0, basename.indexOf('.'));
+
+ return inputURI.trimSegments(1).appendSegment(basename).appendFileExtension("elementtypesconfiguration");
+ }
+
+ public ElementTypeSetConfiguration getElementTypeSet() {
+ Resource resource = getResourceSet().getResource(getElementTypesResourceURI(), true);
+ return (ElementTypeSetConfiguration) resource.getContents().get(0);
+ }
+
+ static Predicate<NamedElement> named(final String name) {
+ return new Predicate<NamedElement>() {
+ @Override
+ public boolean apply(NamedElement input) {
+ return Objects.equal(name, input.getName());
+ }
+ };
+ }
+
+ public Pair<Stereotype, org.eclipse.uml2.uml.Class> getMetaclassExtension(final String stereotypeName, final String metaclassName) {
+ Pair<Stereotype, org.eclipse.uml2.uml.Class> result = null;
+ Stereotype stereotype = Iterators.find(Iterators.filter(getModel().eAllContents(), Stereotype.class), named(stereotypeName));
+ if (stereotype != null) {
+ org.eclipse.uml2.uml.Class metaclass = Iterables.find(stereotype.getAllExtendedMetaclasses(), named(metaclassName));
+ if (metaclass != null) {
+ result = Pair.of(stereotype, metaclass);
+ }
+ }
+
+ return result;
+ }
+
+ public <C extends ElementTypeConfiguration> C getElementTypeConfiguration(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension, Class<C> type) {
+ ElementTypeConfiguration result = getElementTypeConfiguration(metaclassExtension);
+ assertThat("not a " + type.getSimpleName(), result, instanceOf(type));
+ return type.cast(result);
+ }
+
+ public ElementTypeConfiguration getElementTypeConfiguration(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension) {
+ return getElementTypeConfiguration(getElementTypeID(metaclassExtension, false));
+ }
+
+ public ElementTypeConfiguration getElementTypeConfiguration(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension, String visualID) {
+ return getElementTypeConfiguration(String.format("%s_%s", getElementTypeID(metaclassExtension, false), visualID));
+ }
+
+ protected String getElementTypeID(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension, boolean initialLower) {
+ String metaclassName = getValidJavaIdentifier(metaclassExtension.getValue().getName());
+ if (initialLower) {
+ metaclassName = StringExtensions.toFirstLower(metaclassName);
+ }
+ String stereotypeName = getValidJavaIdentifier(metaclassExtension.getKey().getName());
+ if (initialLower) {
+ stereotypeName = StringExtensions.toFirstLower(stereotypeName);
+ }
+
+ return (metaclassExtension.getKey().getExtendedMetaclasses().size() > 1)
+ ? String.format("%s.%s_%s", prefix, stereotypeName, metaclassName)
+ : String.format("%s.%s", prefix, stereotypeName);
+ }
+
+ protected String getElementTypeID(org.eclipse.uml2.uml.Class metaclass) {
+ String metaclassName = getValidJavaIdentifier(metaclass.getName());
+ return baseElementTypesSet.equals(UML_ELEMENT_TYPES) ? "org.eclipse.papyrus.uml." + metaclassName : baseElementTypesSet.replaceFirst("\\w+$", metaclassName);
+ }
+
+ public ElementTypeConfiguration getElementTypeConfiguration(String id) {
+ ElementTypeConfiguration result = null;
+
+ for (ElementTypeConfiguration next : getElementTypeSet().getElementTypeConfigurations()) {
+ if (id.equals(next.getIdentifier())) {
+ result = next;
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ public <C extends ElementTypeConfiguration> List<C> getAllElementTypeConfigurations(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension, Class<C> type) {
+ List<ElementTypeConfiguration> result = getAllElementTypeConfigurations(metaclassExtension);
+ assertThat("not " + type.getSimpleName(), result, everyItem(CoreMatchers.<ElementTypeConfiguration> instanceOf(type)));
+
+ @SuppressWarnings("unchecked")
+ List<C> resultAsC = (List<C>) result;
+ return resultAsC;
+ }
+
+ public List<ElementTypeConfiguration> getAllElementTypeConfigurations(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension) {
+ return getAllElementTypeConfigurations(Pattern.compile(String.format("%s($|_\\w+)", Pattern.quote(getElementTypeID(metaclassExtension, false)))));
+ }
+
+ public List<ElementTypeConfiguration> getAllElementTypeConfigurations(Pattern idPattern) {
+ List<ElementTypeConfiguration> result = Lists.newArrayListWithExpectedSize(3);
+
+ for (ElementTypeConfiguration next : getElementTypeSet().getElementTypeConfigurations()) {
+ if (idPattern.matcher(next.getIdentifier()).find()) {
+ result.add(next);
+ }
+ }
+
+ return result;
+ }
+
+ public SpecializationTypeConfiguration assertSpecializationType(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension) {
+ SpecializationTypeConfiguration result = getElementTypeConfiguration(metaclassExtension, SpecializationTypeConfiguration.class);
+ return result;
+ }
+
+ public List<SpecializationTypeConfiguration> assertAllSpecializationTypes(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension) {
+ List<SpecializationTypeConfiguration> result = getAllElementTypeConfigurations(metaclassExtension, SpecializationTypeConfiguration.class);
+ return result;
+ }
+
+ public StereotypeApplicationMatcherConfiguration assertStereotypeMatcher(SpecializationTypeConfiguration specializationType) {
+ AbstractMatcherConfiguration result = specializationType.getMatcherConfiguration();
+ assertThat("not a stereotype matcher", result, instanceOf(StereotypeApplicationMatcherConfiguration.class));
+ return (StereotypeApplicationMatcherConfiguration) result;
+ }
+
+ public void assertNoStereotypeMatcher(SpecializationTypeConfiguration specializationType) {
+ AbstractMatcherConfiguration matcher = specializationType.getMatcherConfiguration();
+ assertThat("has a stereotype matcher", matcher, not(instanceOf(StereotypeApplicationMatcherConfiguration.class)));
+ }
+
+ public <C extends AbstractAdviceBindingConfiguration> C getAdviceBindingConfiguration(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension, Class<C> type) {
+ AbstractAdviceBindingConfiguration result = getAdviceBindingConfiguration(metaclassExtension);
+ assertThat("not a " + type.getSimpleName(), result, instanceOf(type));
+ return type.cast(result);
+ }
+
+ public AbstractAdviceBindingConfiguration getAdviceBindingConfiguration(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension) {
+ return getAdviceBindingConfiguration(getElementTypeID(metaclassExtension, true));
+ }
+
+ public AbstractAdviceBindingConfiguration getAdviceBindingConfiguration(String id) {
+ AbstractAdviceBindingConfiguration result = null;
+
+ for (AbstractAdviceBindingConfiguration next : getElementTypeSet().getAdviceBindingsConfigurations()) {
+ if (id.equals(next.getIdentifier())) {
+ result = next;
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ public <C extends AbstractAdviceBindingConfiguration> List<C> getAllAdviceBindingConfigurations(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension, Class<C> type) {
+ List<AbstractAdviceBindingConfiguration> result = getAllAdviceBindingConfigurations(metaclassExtension);
+ assertThat("not " + type.getSimpleName(), result, everyItem(CoreMatchers.<AbstractAdviceBindingConfiguration> instanceOf(type)));
+
+ @SuppressWarnings("unchecked")
+ List<C> resultAsC = (List<C>) result;
+ return resultAsC;
+ }
+
+ public List<AbstractAdviceBindingConfiguration> getAllAdviceBindingConfigurations(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension) {
+ return getAllAdviceBindingConfigurations(Pattern.compile(String.format("%s($|_\\w+)", Pattern.quote(getElementTypeID(metaclassExtension, true)))));
+ }
+
+ public List<AbstractAdviceBindingConfiguration> getAllAdviceBindingConfigurations(Pattern idPattern) {
+ List<AbstractAdviceBindingConfiguration> result = Lists.newArrayListWithExpectedSize(3);
+
+ for (AbstractAdviceBindingConfiguration next : getElementTypeSet().getAdviceBindingsConfigurations()) {
+ if (idPattern.matcher(next.getIdentifier()).find()) {
+ result.add(next);
+ }
+ }
+
+ return result;
+ }
+
+ public ApplyStereotypeAdviceConfiguration assertApplyStereotypeAdvice(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension) {
+ ApplyStereotypeAdviceConfiguration result = getAdviceBindingConfiguration(metaclassExtension, ApplyStereotypeAdviceConfiguration.class);
+ return result;
+ }
+
+ public List<ApplyStereotypeAdviceConfiguration> assertAllApplyStereotypeAdvices(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension) {
+ List<ApplyStereotypeAdviceConfiguration> result = getAllAdviceBindingConfigurations(metaclassExtension, ApplyStereotypeAdviceConfiguration.class);
+ return result;
+ }
+
+ public void assertNoApplyStereotypeAdvice(Pair<Stereotype, org.eclipse.uml2.uml.Class> metaclassExtension) {
+ List<ApplyStereotypeAdviceConfiguration> advice = getAllAdviceBindingConfigurations(metaclassExtension, ApplyStereotypeAdviceConfiguration.class);
+ assertThat("has apply-stereotype advice", advice, isEmpty());
+ }
+
+ /**
+ * Extends the inherited method to run the profile-to-elementtypes transformation.
+ *
+ * @see #generateElementTypesConfiguration()
+ */
+ @Override
+ protected void starting(Description description) {
+ super.starting(description);
+
+ // Get some configuration details
+ BaseElementTypes basedOn = JUnitUtils.getAnnotation(description, BaseElementTypes.class);
+ if (basedOn != null) {
+ baseElementTypesSet = basedOn.value();
+ }
+
+ GenOptions options = JUnitUtils.getAnnotation(description, GenOptions.class);
+ if (options != null) {
+ genOptions = EnumSet.copyOf(Arrays.asList(options.value()));
+ }
+
+ // Ensure the registration of the element types that we need
+ ElementTypeSetConfigurationRegistry.getInstance();
+
+ generateModel();
+ }
+
+ private void generateModel() {
+ Identifiers identifiers = new Identifiers();
+ identifiers.setPrefix(prefix);
+ identifiers.setBaseElementTypesSet(getBaseElementTypesSet());
+ identifiers.setSuppressSemanticSuperElementTypes(genOptions.contains(SUPPRESS_SEMANTIC_SUPERTYPE));
+
+ generateModel(identifiers);
+ }
+
+ protected void generateModel(Identifiers identifiers) {
+ generateElementTypesConfiguration(identifiers);
+ }
+
+ protected String getBaseElementTypesSet() {
+ return baseElementTypesSet;
+ }
+
+ private void generateElementTypesConfiguration(Identifiers identifiers) {
+ ElementTypesGenerator elementTypesGenerator = new ElementTypesGenerator(identifiers);
+ IStatus status = elementTypesGenerator.generate(getModelURI(), getElementTypesResourceURI());
+ assertThat(status.getMessage(), status.getSeverity(), lessThan(IStatus.ERROR));
+ }
+}
diff --git a/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/ProfilesWithPackageNestingTest.java b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/ProfilesWithPackageNestingTest.java
new file mode 100644
index 00000000000..78b9e7ebb9d
--- /dev/null
+++ b/tests/junit/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.types.generator.tests/src/org/eclipse/papyrus/uml/profile/types/generator/tests/ProfilesWithPackageNestingTest.java
@@ -0,0 +1,144 @@
+/*****************************************************************************
+ * Copyright (c) 2015 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.profile.types.generator.tests;
+
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.isEmpty;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import org.eclipse.papyrus.infra.types.IconEntry;
+import org.eclipse.papyrus.infra.types.SpecializationTypeConfiguration;
+import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.types.core.advices.applystereotype.ApplyStereotypeAdviceConfiguration;
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherConfiguration;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.edit.UMLEditPlugin;
+import org.eclipse.xtext.xbase.lib.Pair;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+/**
+ * Test cases for element types generation for UML profiles that have nested packages and profiles.
+ */
+@PluginResource("/resources/nesting.profile.uml")
+public class ProfilesWithPackageNestingTest extends AbstractPapyrusTest {
+
+ @ClassRule
+ public static final ModelGenFixture fixture = new ModelGenFixture();
+
+ public ProfilesWithPackageNestingTest() {
+ super();
+ }
+
+ @Test
+ public void elementTypesGenerated() {
+ Pair<Stereotype, Class> s11Class = fixture.getMetaclassExtension("S1_1", "Class");
+ Pair<Stereotype, Class> s21Class = fixture.getMetaclassExtension("S2_1", "Class");
+ Pair<Stereotype, Class> s12Generalization = fixture.getMetaclassExtension("S1_2", "Generalization");
+ Pair<Stereotype, Class> s22Generalization = fixture.getMetaclassExtension("S2_2", "Generalization");
+ fixture.assertSpecializationType(s11Class);
+ fixture.assertSpecializationType(s21Class);
+ fixture.assertSpecializationType(s12Generalization);
+ fixture.assertSpecializationType(s22Generalization);
+ }
+
+ @Test
+ public void iconGenerated() {
+ Pair<Stereotype, Class> s11Class = fixture.getMetaclassExtension("S1_1", "Class");
+ Pair<Stereotype, Class> s21Class = fixture.getMetaclassExtension("S2_1", "Class");
+ Pair<Stereotype, Class> s12Generalization = fixture.getMetaclassExtension("S1_2", "Generalization");
+ Pair<Stereotype, Class> s22Generalization = fixture.getMetaclassExtension("S2_2", "Generalization");
+
+ SpecializationTypeConfiguration type = fixture.assertSpecializationType(s11Class);
+ IconEntry icon = type.getIconEntry();
+ assertThat(icon.getBundleId(), is(UMLEditPlugin.getPlugin().getSymbolicName()));
+ assertThat(icon.getIconPath(), containsString("obj16/Class.gif"));
+
+ type = fixture.assertSpecializationType(s21Class);
+ icon = type.getIconEntry();
+ assertThat(icon.getBundleId(), is(UMLEditPlugin.getPlugin().getSymbolicName()));
+ assertThat(icon.getIconPath(), containsString("obj16/Class.gif"));
+
+ type = fixture.assertSpecializationType(s12Generalization);
+ icon = type.getIconEntry();
+ assertThat(icon.getBundleId(), is(UMLEditPlugin.getPlugin().getSymbolicName()));
+ assertThat(icon.getIconPath(), containsString("obj16/Generalization.gif"));
+
+ type = fixture.assertSpecializationType(s22Generalization);
+ icon = type.getIconEntry();
+ assertThat(icon.getBundleId(), is(UMLEditPlugin.getPlugin().getSymbolicName()));
+ assertThat(icon.getIconPath(), containsString("obj16/Generalization.gif"));
+ }
+
+ @Test
+ public void stereotypeMatcherGenerated() {
+ Pair<Stereotype, Class> s11Class = fixture.getMetaclassExtension("S1_1", "Class");
+ Pair<Stereotype, Class> s21Class = fixture.getMetaclassExtension("S2_1", "Class");
+ Pair<Stereotype, Class> s12Generalization = fixture.getMetaclassExtension("S1_2", "Generalization");
+ Pair<Stereotype, Class> s22Generalization = fixture.getMetaclassExtension("S2_2", "Generalization");
+
+ SpecializationTypeConfiguration type = fixture.assertSpecializationType(s11Class);
+ StereotypeApplicationMatcherConfiguration matcher = fixture.assertStereotypeMatcher(type);
+ assertThat(matcher.getStereotypesQualifiedNames(), hasItem("root::nestedProfile::S1_1"));
+
+ type = fixture.assertSpecializationType(s21Class);
+ matcher = fixture.assertStereotypeMatcher(type);
+ assertThat(matcher.getStereotypesQualifiedNames(), hasItem("root::nestedPackage::S2_1"));
+
+ type = fixture.assertSpecializationType(s12Generalization);
+ matcher = fixture.assertStereotypeMatcher(type);
+ assertThat(matcher.getStereotypesQualifiedNames(), hasItem("root::nestedProfile::S1_2"));
+
+ type = fixture.assertSpecializationType(s22Generalization);
+ matcher = fixture.assertStereotypeMatcher(type);
+ assertThat(matcher.getStereotypesQualifiedNames(), hasItem("root::nestedPackage::S2_2"));
+ }
+
+ @Test
+ public void stereotypeAdviceGenerated() {
+ Pair<Stereotype, Class> s11Class = fixture.getMetaclassExtension("S1_1", "Class");
+ Pair<Stereotype, Class> s21Class = fixture.getMetaclassExtension("S2_1", "Class");
+ Pair<Stereotype, Class> s12Generalization = fixture.getMetaclassExtension("S1_2", "Generalization");
+ Pair<Stereotype, Class> s22Generalization = fixture.getMetaclassExtension("S2_2", "Generalization");
+
+ ApplyStereotypeAdviceConfiguration advice = fixture.assertApplyStereotypeAdvice(s11Class);
+ assertThat(advice.getTarget(), is(fixture.getElementTypeConfiguration(s11Class)));
+ assertThat(advice.getStereotypesToApply(), not(isEmpty()));
+ assertThat(advice.getStereotypesToApply().get(0).getRequiredProfiles(), hasItem("root::nestedProfile"));
+ assertThat(advice.getStereotypesToApply().get(0).getStereotypeQualifiedName(), is("root::nestedProfile::S1_1"));
+
+ advice = fixture.assertApplyStereotypeAdvice(s12Generalization);
+ assertThat(advice.getTarget(), is(fixture.getElementTypeConfiguration(s12Generalization)));
+ assertThat(advice.getStereotypesToApply(), not(isEmpty()));
+ assertThat(advice.getStereotypesToApply().get(0).getRequiredProfiles(), hasItem("root::nestedProfile"));
+ assertThat(advice.getStereotypesToApply().get(0).getStereotypeQualifiedName(), is("root::nestedProfile::S1_2"));
+
+ advice = fixture.assertApplyStereotypeAdvice(s21Class);
+ assertThat(advice.getTarget(), is(fixture.getElementTypeConfiguration(s21Class)));
+ assertThat(advice.getStereotypesToApply(), not(isEmpty()));
+ assertThat(advice.getStereotypesToApply().get(0).getRequiredProfiles(), hasItem("root"));
+ assertThat(advice.getStereotypesToApply().get(0).getStereotypeQualifiedName(), is("root::nestedPackage::S2_1"));
+
+ advice = fixture.assertApplyStereotypeAdvice(s22Generalization);
+ assertThat(advice.getTarget(), is(fixture.getElementTypeConfiguration(s22Generalization)));
+ assertThat(advice.getStereotypesToApply(), not(isEmpty()));
+ assertThat(advice.getStereotypesToApply().get(0).getRequiredProfiles(), hasItem("root"));
+ assertThat(advice.getStereotypesToApply().get(0).getStereotypeQualifiedName(), is("root::nestedPackage::S2_2"));
+ }
+}

Back to the top