diff options
author | Ed.Willink | 2013-05-11 14:02:52 +0000 |
---|---|---|
committer | Ed.Willink | 2013-05-11 17:39:26 +0000 |
commit | 1988586d87a173d10f079a495d20c69e940163a1 (patch) | |
tree | b82149c55d12eff8a858aca499274d28b61cbae0 | |
parent | a705a81627ffa8a1f98329125b2976e00203eb19 (diff) | |
download | org.eclipse.qvtd-1988586d87a173d10f079a495d20c69e940163a1.tar.gz org.eclipse.qvtd-1988586d87a173d10f079a495d20c69e940163a1.tar.xz org.eclipse.qvtd-1988586d87a173d10f079a495d20c69e940163a1.zip |
[unrelated] Introduce QVTi Code Generator
80 files changed, 14934 insertions, 28 deletions
diff --git a/plugins/org.eclipse.qvtd.codegen/.classpath b/plugins/org.eclipse.qvtd.codegen/.classpath new file mode 100644 index 000000000..f273e98ee --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/.classpath @@ -0,0 +1,8 @@ +<?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.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="emf-gen"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.qvtd.codegen/.gitignore b/plugins/org.eclipse.qvtd.codegen/.gitignore new file mode 100644 index 000000000..1c6056ea3 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/.gitignore @@ -0,0 +1,2 @@ +/bin +/text diff --git a/plugins/org.eclipse.qvtd.codegen/.project b/plugins/org.eclipse.qvtd.codegen/.project new file mode 100644 index 000000000..2b82723fb --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/.project @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.qvtd.codegen</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> + <buildCommand> + <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 000000000..5a0ad22d2 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +line.separator=\n diff --git a/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..83233b4ba --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,355 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=error +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=error +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=20 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=20 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=20 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=20 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=20 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=53 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=53 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=20 +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_selector_in_method_invocation=20 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=33 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=17 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=33 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=17 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=33 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=0 +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1 +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_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=80 +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.format_guardian_clause_on_one_line=false +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=true +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_opening_brace_in_array_initializer=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_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=do not 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_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_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=do not 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_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=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=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=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_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=do not 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_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_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.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=80 +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=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true diff --git a/plugins/org.eclipse.qvtd.codegen/META-INF/MANIFEST.MF b/plugins/org.eclipse.qvtd.codegen/META-INF/MANIFEST.MF new file mode 100644 index 000000000..5c2ce00cc --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.qvtd.codegen;singleton:=true +Bundle-Version: 0.10.0.qualifier +Bundle-ClassPath: . +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.ocl.examples.codegen;visibility:=reexport, + org.eclipse.qvtd.pivot.qvtimperative;visibility:=reexport +Bundle-ActivationPolicy: lazy +Export-Package: org.eclipse.qvtd.codegen.qvti, + org.eclipse.qvtd.codegen.qvticgmodel, + org.eclipse.qvtd.codegen.qvticgmodel.impl, + org.eclipse.qvtd.codegen.qvticgmodel.util diff --git a/plugins/org.eclipse.qvtd.codegen/about.html b/plugins/org.eclipse.qvtd.codegen/about.html new file mode 100644 index 000000000..87b2a5068 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/about.html @@ -0,0 +1,43 @@ +<!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> + +<pem>September 21, 2008</em></p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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> + + + <h3>Third Party Content</h3> + <p>The Content includes items that have been sourced from third parties as set out below. If you + did not receive this Content directly from the Eclipse Foundation, the following is provided + for informational purposes only, and you should look to the Redistributor's license for + terms and conditions of use.</p> + <p><em> + <br><br> + <strong>OMG QVT 1.0 specification (08-04-03)</strong> <br> + <ul> + <li><a href="http://www.omg.org/spec/QVT/1.0/">QVT 1.0 main page</a></li> + <li><a href="http://www.omg.org/docs/formal/08-04-03.pdf">QVT 1.0 specification</a></li> + <li><a href="http://www.omg.org/">OMG site</a></li> + </ul> + <br> + </em></p> + <p>A detailed list of fixes and clarifications with respect to those specifications may be found in <a href="QVTBaseCompliance.html">QVTBaseCompliance.html</a>.</p> +</body></html>
\ No newline at end of file diff --git a/plugins/org.eclipse.qvtd.codegen/build.properties b/plugins/org.eclipse.qvtd.codegen/build.properties new file mode 100644 index 000000000..a817531a1 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/build.properties @@ -0,0 +1,25 @@ +# <copyright> +# +# Copyright (c) 2013 E.D.Willink 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: +# E.D.Willink - Initial API and implementation +# +# </copyright> + +bin.includes = .,\ + model/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties,\ + about.html +jars.compile.order = . +source.. = emf-gen/,\ + src/ +output.. = bin/ +src.includes = about.html +additional.bundles = org.eclipse.jdt.annotation
\ No newline at end of file diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/.gitignore b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/.gitignore new file mode 100644 index 000000000..182664756 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/.gitignore @@ -0,0 +1 @@ +/validation diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcorePropertyAssignment.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcorePropertyAssignment.java new file mode 100644 index 000000000..b10fe5481 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcorePropertyAssignment.java @@ -0,0 +1,62 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.emf.ecore.EStructuralFeature; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Ecore Property Assignment</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment#getEStructuralFeature <em>EStructural Feature</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGEcorePropertyAssignment() + * @model + * @generated + */ +public interface CGEcorePropertyAssignment extends CGPropertyAssignment { + /** + * Returns the value of the '<em><b>EStructural Feature</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>EStructural Feature</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>EStructural Feature</em>' reference. + * @see #setEStructuralFeature(EStructuralFeature) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGEcorePropertyAssignment_EStructuralFeature() + * @model resolveProxies="false" required="true" + * @generated + */ + EStructuralFeature getEStructuralFeature(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment#getEStructuralFeature <em>EStructural Feature</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>EStructural Feature</em>' reference. + * @see #getEStructuralFeature() + * @generated + */ + void setEStructuralFeature(EStructuralFeature value); + +} // CGEcorePropertyAssignment diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcoreRealizedVariable.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcoreRealizedVariable.java new file mode 100644 index 000000000..6a5ce5b41 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGEcoreRealizedVariable.java @@ -0,0 +1,62 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.emf.ecore.EClassifier; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Ecore Realized Variable</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable#getEClassifier <em>EClassifier</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGEcoreRealizedVariable() + * @model + * @generated + */ +public interface CGEcoreRealizedVariable extends CGRealizedVariable { + /** + * Returns the value of the '<em><b>EClassifier</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>EClassifier</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>EClassifier</em>' reference. + * @see #setEClassifier(EClassifier) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGEcoreRealizedVariable_EClassifier() + * @model resolveProxies="false" required="true" + * @generated + */ + EClassifier getEClassifier(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable#getEClassifier <em>EClassifier</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>EClassifier</em>' reference. + * @see #getEClassifier() + * @generated + */ + void setEClassifier(EClassifier value); + +} // CGEcoreRealizedVariable diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunction.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunction.java new file mode 100644 index 000000000..436a663f0 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunction.java @@ -0,0 +1,30 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Function</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunction() + * @model + * @generated + */ +public interface CGFunction extends CGOperation { +} // CGFunction diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionCallExp.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionCallExp.java new file mode 100644 index 000000000..e6c4fe10b --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionCallExp.java @@ -0,0 +1,62 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGOperationCallExp; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Function Call Exp</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp#getFunction <em>Function</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunctionCallExp() + * @model + * @generated + */ +public interface CGFunctionCallExp extends CGOperationCallExp { + /** + * Returns the value of the '<em><b>Function</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Function</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Function</em>' reference. + * @see #setFunction(CGFunction) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunctionCallExp_Function() + * @model resolveProxies="false" required="true" + * @generated + */ + CGFunction getFunction(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp#getFunction <em>Function</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Function</em>' reference. + * @see #getFunction() + * @generated + */ + void setFunction(CGFunction value); + +} // CGFunctionCallExp diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionParameter.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionParameter.java new file mode 100644 index 000000000..a6cfd62df --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGFunctionParameter.java @@ -0,0 +1,62 @@ +/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG Function Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunctionParameter()
+ * @model
+ * @generated
+ */
+public interface CGFunctionParameter extends CGParameter {
+ /**
+ * Returns the value of the '<em><b>Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function</em>' reference.
+ * @see #setFunction(CGFunction)
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGFunctionParameter_Function()
+ * @model resolveProxies="false" required="true"
+ * @generated
+ */
+ CGFunction getFunction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter#getFunction <em>Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Function</em>' reference.
+ * @see #getFunction()
+ * @generated
+ */
+ void setFunction(CGFunction value);
+
+} // CGFunctionParameter
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGGuardVariable.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGGuardVariable.java new file mode 100644 index 000000000..a68c06377 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGGuardVariable.java @@ -0,0 +1,91 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Guard Variable</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getTypedModel <em>Typed Model</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGGuardVariable() + * @model + * @generated + */ +public interface CGGuardVariable extends CGParameter { + /** + * Returns the value of the '<em><b>Mapping</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables <em>Guard Variables</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping</em>' container reference. + * @see #setMapping(CGMapping) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGGuardVariable_Mapping() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables + * @model opposite="guardVariables" resolveProxies="false" required="true" transient="false" + * @generated + */ + CGMapping getMapping(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping <em>Mapping</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mapping</em>' container reference. + * @see #getMapping() + * @generated + */ + void setMapping(CGMapping value); + + /** + * Returns the value of the '<em><b>Typed Model</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Typed Model</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Typed Model</em>' reference. + * @see #setTypedModel(CGTypedModel) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGGuardVariable_TypedModel() + * @model resolveProxies="false" required="true" + * @generated + */ + CGTypedModel getTypedModel(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getTypedModel <em>Typed Model</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Typed Model</em>' reference. + * @see #getTypedModel() + * @generated + */ + void setTypedModel(CGTypedModel value); + +} // CGGuardVariable diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMapping.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMapping.java new file mode 100644 index 000000000..25eff5acf --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMapping.java @@ -0,0 +1,160 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import java.util.List; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGTypedElement; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Mapping</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation <em>Transformation</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables <em>Guard Variables</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates <em>Predicates</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables <em>Realized Variables</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments <em>Assignments</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls <em>Mapping Calls</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping() + * @model + * @generated + */ +public interface CGMapping extends CGTypedElement { + + /** + * Returns the value of the '<em><b>Transformation</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings <em>Mappings</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Transformation</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Transformation</em>' container reference. + * @see #setTransformation(CGTransformation) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_Transformation() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings + * @model opposite="mappings" resolveProxies="false" required="true" transient="false" + * @generated + */ + CGTransformation getTransformation(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation <em>Transformation</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Transformation</em>' container reference. + * @see #getTransformation() + * @generated + */ + void setTransformation(CGTransformation value); + + /** + * Returns the value of the '<em><b>Guard Variables</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * The parameters of this operation, with 'self' as the first parameter. + * <!-- end-model-doc --> + * @return the value of the '<em>Guard Variables</em>' containment reference list. + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_GuardVariables() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping + * @model opposite="mapping" containment="true" ordered="false" + * @generated + */ + List<CGGuardVariable> getGuardVariables(); + + /** + * Returns the value of the '<em><b>Predicates</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Predicates</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Predicates</em>' containment reference list. + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_Predicates() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping + * @model opposite="mapping" containment="true" + * @generated + */ + List<CGPredicate> getPredicates(); + + /** + * Returns the value of the '<em><b>Mapping Calls</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping Calls</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping Calls</em>' containment reference list. + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_MappingCalls() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping + * @model opposite="mapping" containment="true" + * @generated + */ + List<CGMappingCall> getMappingCalls(); + + /** + * Returns the value of the '<em><b>Realized Variables</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Realized Variables</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Realized Variables</em>' containment reference list. + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_RealizedVariables() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping + * @model opposite="mapping" containment="true" + * @generated + */ + List<CGRealizedVariable> getRealizedVariables(); + + /** + * Returns the value of the '<em><b>Assignments</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Assignments</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Assignments</em>' containment reference list. + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMapping_Assignments() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping + * @model opposite="mapping" containment="true" + * @generated + */ + List<CGPropertyAssignment> getAssignments(); +} // CGMapping diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCall.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCall.java new file mode 100644 index 000000000..163f665f8 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCall.java @@ -0,0 +1,82 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import java.util.List; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Mapping Call</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMappingCallBindings <em>Mapping Call Bindings</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCall() + * @model + * @generated + */ +public interface CGMappingCall extends CGValuedElement { + + /** + * Returns the value of the '<em><b>Mapping</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls <em>Mapping Calls</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping</em>' container reference. + * @see #setMapping(CGMapping) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCall_Mapping() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls + * @model opposite="mappingCalls" resolveProxies="false" required="true" transient="false" + * @generated + */ + CGMapping getMapping(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping <em>Mapping</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mapping</em>' container reference. + * @see #getMapping() + * @generated + */ + void setMapping(CGMapping value); + + /** + * Returns the value of the '<em><b>Mapping Call Bindings</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping Call Bindings</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping Call Bindings</em>' containment reference list. + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCall_MappingCallBindings() + * @model containment="true" + * @generated + */ + List<CGMappingCallBinding> getMappingCallBindings(); +} // CGMappingCall diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCallBinding.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCallBinding.java new file mode 100644 index 000000000..33d948466 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGMappingCallBinding.java @@ -0,0 +1,90 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Mapping Call Binding</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#getValueOrValues <em>Value Or Values</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#isLoop <em>Loop</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCallBinding() + * @model + * @generated + */ +public interface CGMappingCallBinding extends CGValuedElement { + /** + * Returns the value of the '<em><b>Value Or Values</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Value Or Values</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Value Or Values</em>' containment reference. + * @see #setValueOrValues(CGValuedElement) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCallBinding_ValueOrValues() + * @model containment="true" required="true" + * @generated + */ + CGValuedElement getValueOrValues(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#getValueOrValues <em>Value Or Values</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value Or Values</em>' containment reference. + * @see #getValueOrValues() + * @generated + */ + void setValueOrValues(CGValuedElement value); + + /** + * Returns the value of the '<em><b>Loop</b></em>' attribute. + * The default value is <code>"false"</code>. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Loop</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Loop</em>' attribute. + * @see #setLoop(boolean) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGMappingCallBinding_Loop() + * @model default="false" required="true" + * @generated + */ + boolean isLoop(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#isLoop <em>Loop</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Loop</em>' attribute. + * @see #isLoop() + * @generated + */ + void setLoop(boolean value); + +} // CGMappingCallBinding diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPredicate.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPredicate.java new file mode 100644 index 000000000..abd399eb8 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPredicate.java @@ -0,0 +1,91 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Predicate</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getConditionExpression <em>Condition Expression</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPredicate() + * @model + * @generated + */ +public interface CGPredicate extends CGValuedElement { + /** + * Returns the value of the '<em><b>Mapping</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates <em>Predicates</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping</em>' container reference. + * @see #setMapping(CGMapping) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPredicate_Mapping() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates + * @model opposite="predicates" resolveProxies="false" required="true" transient="false" + * @generated + */ + CGMapping getMapping(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping <em>Mapping</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mapping</em>' container reference. + * @see #getMapping() + * @generated + */ + void setMapping(CGMapping value); + + /** + * Returns the value of the '<em><b>Condition Expression</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Condition Expression</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Condition Expression</em>' containment reference. + * @see #setConditionExpression(CGValuedElement) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPredicate_ConditionExpression() + * @model containment="true" required="true" + * @generated + */ + CGValuedElement getConditionExpression(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getConditionExpression <em>Condition Expression</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Condition Expression</em>' containment reference. + * @see #getConditionExpression() + * @generated + */ + void setConditionExpression(CGValuedElement value); + +} // CGPredicate diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPropertyAssignment.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPropertyAssignment.java new file mode 100644 index 000000000..d44eae76b --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGPropertyAssignment.java @@ -0,0 +1,146 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.pivot.Property; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Assignment</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getSlotValue <em>Slot Value</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getReferredProperty <em>Referred Property</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getInitValue <em>Init Value</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment() + * @model + * @generated + */ +public interface CGPropertyAssignment extends CGValuedElement { + /** + * Returns the value of the '<em><b>Mapping</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments <em>Assignments</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping</em>' container reference. + * @see #setMapping(CGMapping) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment_Mapping() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments + * @model opposite="assignments" resolveProxies="false" required="true" transient="false" + * @generated + */ + CGMapping getMapping(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping <em>Mapping</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mapping</em>' container reference. + * @see #getMapping() + * @generated + */ + void setMapping(CGMapping value); + + /** + * Returns the value of the '<em><b>Slot Value</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Slot Value</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Slot Value</em>' containment reference. + * @see #setSlotValue(CGValuedElement) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment_SlotValue() + * @model containment="true" required="true" + * @generated + */ + CGValuedElement getSlotValue(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getSlotValue <em>Slot Value</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Slot Value</em>' containment reference. + * @see #getSlotValue() + * @generated + */ + void setSlotValue(CGValuedElement value); + + /** + * Returns the value of the '<em><b>Referred Property</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Referred Property</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Referred Property</em>' attribute. + * @see #setReferredProperty(Property) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment_ReferredProperty() + * @model dataType="org.eclipse.ocl.examples.codegen.cgmodel.Property" required="true" + * @generated + */ + Property getReferredProperty(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getReferredProperty <em>Referred Property</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Referred Property</em>' attribute. + * @see #getReferredProperty() + * @generated + */ + void setReferredProperty(Property value); + + /** + * Returns the value of the '<em><b>Init Value</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Init Value</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Init Value</em>' containment reference. + * @see #setInitValue(CGValuedElement) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGPropertyAssignment_InitValue() + * @model containment="true" required="true" + * @generated + */ + CGValuedElement getInitValue(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getInitValue <em>Init Value</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Init Value</em>' containment reference. + * @see #getInitValue() + * @generated + */ + void setInitValue(CGValuedElement value); + +} // CGAssignment diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGRealizedVariable.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGRealizedVariable.java new file mode 100644 index 000000000..ddcfb364f --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGRealizedVariable.java @@ -0,0 +1,91 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Realized Variable</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getTypedModel <em>Typed Model</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGRealizedVariable() + * @model + * @generated + */ +public interface CGRealizedVariable extends CGVariable { + + /** + * Returns the value of the '<em><b>Mapping</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables <em>Realized Variables</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping</em>' container reference. + * @see #setMapping(CGMapping) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGRealizedVariable_Mapping() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables + * @model opposite="realizedVariables" resolveProxies="false" required="true" transient="false" + * @generated + */ + CGMapping getMapping(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping <em>Mapping</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mapping</em>' container reference. + * @see #getMapping() + * @generated + */ + void setMapping(CGMapping value); + + /** + * Returns the value of the '<em><b>Typed Model</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Typed Model</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Typed Model</em>' reference. + * @see #setTypedModel(CGTypedModel) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGRealizedVariable_TypedModel() + * @model resolveProxies="false" required="true" + * @generated + */ + CGTypedModel getTypedModel(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getTypedModel <em>Typed Model</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Typed Model</em>' reference. + * @see #getTypedModel() + * @generated + */ + void setTypedModel(CGTypedModel value); +} // CGRealizedVariable diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTransformation.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTransformation.java new file mode 100644 index 000000000..b4dc2f28a --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTransformation.java @@ -0,0 +1,74 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import java.util.List; +import org.eclipse.ocl.examples.codegen.cgmodel.CGClass; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Transformation</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings <em>Mappings</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels <em>Typed Models</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTransformation() + * @model + * @generated + */ +public interface CGTransformation extends CGClass { + + /** + * Returns the value of the '<em><b>Mappings</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation <em>Transformation</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mappings</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mappings</em>' containment reference list. + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTransformation_Mappings() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation + * @model opposite="transformation" containment="true" required="true" + * @generated + */ + List<CGMapping> getMappings(); + + /** + * Returns the value of the '<em><b>Typed Models</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation <em>Transformation</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Typed Models</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Typed Models</em>' containment reference list. + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTransformation_TypedModels() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation + * @model opposite="transformation" containment="true" + * @generated + */ + List<CGTypedModel> getTypedModels(); +} // CGTransformation diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTypedModel.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTypedModel.java new file mode 100644 index 000000000..8eb39e6fa --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGTypedModel.java @@ -0,0 +1,91 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>CG Typed Model</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation <em>Transformation</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getModelIndex <em>Model Index</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTypedModel() + * @model + * @generated + */ +public interface CGTypedModel extends CGNamedElement { + /** + * Returns the value of the '<em><b>Transformation</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels <em>Typed Models</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Transformation</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Transformation</em>' container reference. + * @see #setTransformation(CGTransformation) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTypedModel_Transformation() + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels + * @model opposite="typedModels" resolveProxies="false" required="true" transient="false" + * @generated + */ + CGTransformation getTransformation(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation <em>Transformation</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Transformation</em>' container reference. + * @see #getTransformation() + * @generated + */ + void setTransformation(CGTransformation value); + + /** + * Returns the value of the '<em><b>Model Index</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Model Index</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Model Index</em>' attribute. + * @see #setModelIndex(int) + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGTypedModel_ModelIndex() + * @model + * @generated + */ + int getModelIndex(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getModelIndex <em>Model Index</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Model Index</em>' attribute. + * @see #getModelIndex() + * @generated + */ + void setModelIndex(int value); + +} // CGTypedModel diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java new file mode 100644 index 000000000..55983620c --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java @@ -0,0 +1,172 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.emf.ecore.EFactory; +import org.eclipse.jdt.annotation.NonNull; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage + * @generated + */ +public interface QVTiCGModelFactory extends EFactory { + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @NonNull QVTiCGModelFactory eINSTANCE = org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelFactoryImpl.init(); + + /** + * Returns a new object of class '<em>CG Ecore Property Assignment</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Ecore Property Assignment</em>'. + * @generated + */ + @NonNull CGEcorePropertyAssignment createCGEcorePropertyAssignment(); + + /** + * Returns a new object of class '<em>CG Ecore Realized Variable</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Ecore Realized Variable</em>'. + * @generated + */ + @NonNull CGEcoreRealizedVariable createCGEcoreRealizedVariable(); + + /** + * Returns a new object of class '<em>CG Function</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Function</em>'. + * @generated + */ + @NonNull CGFunction createCGFunction(); + + /** + * Returns a new object of class '<em>CG Function Call Exp</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Function Call Exp</em>'. + * @generated + */ + @NonNull CGFunctionCallExp createCGFunctionCallExp(); + + /** + * Returns a new object of class '<em>CG Function Parameter</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Function Parameter</em>'. + * @generated + */ + @NonNull CGFunctionParameter createCGFunctionParameter(); + + /** + * Returns a new object of class '<em>CG Guard Variable</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Guard Variable</em>'. + * @generated + */ + @NonNull CGGuardVariable createCGGuardVariable(); + + /** + * Returns a new object of class '<em>CG Property Assignment</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Property Assignment</em>'. + * @generated + */ + @NonNull CGPropertyAssignment createCGPropertyAssignment(); + + /** + * Returns a new object of class '<em>CG Mapping</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Mapping</em>'. + * @generated + */ + @NonNull CGMapping createCGMapping(); + + /** + * Returns a new object of class '<em>CG Transformation</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Transformation</em>'. + * @generated + */ + @NonNull CGTransformation createCGTransformation(); + + /** + * Returns a new object of class '<em>CG Typed Model</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Typed Model</em>'. + * @generated + */ + @NonNull CGTypedModel createCGTypedModel(); + + /** + * Returns a new object of class '<em>CG Mapping Call</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Mapping Call</em>'. + * @generated + */ + @NonNull CGMappingCall createCGMappingCall(); + + /** + * Returns a new object of class '<em>CG Mapping Call Binding</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Mapping Call Binding</em>'. + * @generated + */ + @NonNull CGMappingCallBinding createCGMappingCallBinding(); + + /** + * Returns a new object of class '<em>CG Predicate</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Predicate</em>'. + * @generated + */ + @NonNull CGPredicate createCGPredicate(); + + /** + * Returns a new object of class '<em>CG Realized Variable</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>CG Realized Variable</em>'. + * @generated + */ + @NonNull CGRealizedVariable createCGRealizedVariable(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + @NonNull QVTiCGModelPackage getQVTiCGModelPackage(); + +} //QVTiCGmodelFactory diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java new file mode 100644 index 000000000..fccb928fb --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java @@ -0,0 +1,4212 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.CGModelPackage; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * The CGModel provides a Code Generation friendly form of the OCL Pivot model, with distinct classes + * such as LibraryPropertyCallExp and EcorePropertyCallExp for distinct purposes. Additional classes + * such as BoxExpr, CatchExpr and CastParameter support rewrite optimizations. + * <p> + * References to the Pivot model are expressed as attributes with datatype values in order to avoid + * confusion as to whether the new or old pivot mosdel is in use while code generating the pivot model. + * <!-- end-model-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelFactory + * @model kind="package" + * annotation="http://www.eclipse.org/OCL/Import ecore='http://www.eclipse.org/emf/2002/Ecore#/'" + * @generated + */ +public interface QVTiCGModelPackage extends EPackage { + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @NonNull String eNAME = "qvticgmodel"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @NonNull String eNS_URI = "http://www.eclipse.org/qvti/1.0.0/CG"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @NonNull String eNS_PREFIX = "qvticg"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("null") + @NonNull QVTiCGModelPackage eINSTANCE = org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl <em>CG Property Assignment</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPropertyAssignment() + * @generated + */ + int CG_PROPERTY_ASSIGNMENT = 10; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__PARENT = CGModelPackage.CG_VALUED_ELEMENT__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__NAME = CGModelPackage.CG_VALUED_ELEMENT__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__PIVOT = CGModelPackage.CG_VALUED_ELEMENT__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__PIVOT_TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__REQUIRED = CGModelPackage.CG_VALUED_ELEMENT__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__BOXED = CGModelPackage.CG_VALUED_ELEMENT__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__CAUGHT = CGModelPackage.CG_VALUED_ELEMENT__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__CONSTANT = CGModelPackage.CG_VALUED_ELEMENT__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__DEPENDS_ON = CGModelPackage.CG_VALUED_ELEMENT__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__FALSE = CGModelPackage.CG_VALUED_ELEMENT__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__GLOBAL = CGModelPackage.CG_VALUED_ELEMENT__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__INLINEABLE = CGModelPackage.CG_VALUED_ELEMENT__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__INVALID = CGModelPackage.CG_VALUED_ELEMENT__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__NULL = CGModelPackage.CG_VALUED_ELEMENT__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__NON_NULL = CGModelPackage.CG_VALUED_ELEMENT__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VALUED_ELEMENT__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__SETTABLE = CGModelPackage.CG_VALUED_ELEMENT__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__TRUE = CGModelPackage.CG_VALUED_ELEMENT__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__UNBOXED = CGModelPackage.CG_VALUED_ELEMENT__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__VALUE = CGModelPackage.CG_VALUED_ELEMENT__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__VALUE_NAME = CGModelPackage.CG_VALUED_ELEMENT__VALUE_NAME; + + /** + * The feature id for the '<em><b>Mapping</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__MAPPING = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Slot Value</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__SLOT_VALUE = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the '<em><b>Referred Property</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Init Value</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT__INIT_VALUE = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the '<em>CG Property Assignment</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT___SET_NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT___SET_NON_NULL = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Property Assignment</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PROPERTY_ASSIGNMENT_OPERATION_COUNT = CGModelPackage.CG_VALUED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl <em>CG Ecore Property Assignment</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcorePropertyAssignment() + * @generated + */ + int CG_ECORE_PROPERTY_ASSIGNMENT = 0; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__PARENT = CG_PROPERTY_ASSIGNMENT__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__NAME = CG_PROPERTY_ASSIGNMENT__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__PIVOT = CG_PROPERTY_ASSIGNMENT__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__PIVOT_TYPE_ID = CG_PROPERTY_ASSIGNMENT__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__TYPE_ID = CG_PROPERTY_ASSIGNMENT__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__REQUIRED = CG_PROPERTY_ASSIGNMENT__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__BOXED = CG_PROPERTY_ASSIGNMENT__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__CAUGHT = CG_PROPERTY_ASSIGNMENT__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__CONSTANT = CG_PROPERTY_ASSIGNMENT__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__DEPENDS_ON = CG_PROPERTY_ASSIGNMENT__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__FALSE = CG_PROPERTY_ASSIGNMENT__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__GLOBAL = CG_PROPERTY_ASSIGNMENT__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__INLINEABLE = CG_PROPERTY_ASSIGNMENT__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__INVALID = CG_PROPERTY_ASSIGNMENT__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__NULL = CG_PROPERTY_ASSIGNMENT__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__NON_INVALID = CG_PROPERTY_ASSIGNMENT__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__NON_NULL = CG_PROPERTY_ASSIGNMENT__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__REFERRED_VALUED_ELEMENT = CG_PROPERTY_ASSIGNMENT__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__SETTABLE = CG_PROPERTY_ASSIGNMENT__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__TRUE = CG_PROPERTY_ASSIGNMENT__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__UNBOXED = CG_PROPERTY_ASSIGNMENT__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__VALUE = CG_PROPERTY_ASSIGNMENT__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__VALUE_NAME = CG_PROPERTY_ASSIGNMENT__VALUE_NAME; + + /** + * The feature id for the '<em><b>Mapping</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__MAPPING = CG_PROPERTY_ASSIGNMENT__MAPPING; + + /** + * The feature id for the '<em><b>Slot Value</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__SLOT_VALUE = CG_PROPERTY_ASSIGNMENT__SLOT_VALUE; + + /** + * The feature id for the '<em><b>Referred Property</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY = CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY; + + /** + * The feature id for the '<em><b>Init Value</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__INIT_VALUE = CG_PROPERTY_ASSIGNMENT__INIT_VALUE; + + /** + * The feature id for the '<em><b>EStructural Feature</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE = CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>CG Ecore Property Assignment</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT_FEATURE_COUNT = CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT___SET_NON_INVALID = CG_PROPERTY_ASSIGNMENT___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT___SET_NON_NULL = CG_PROPERTY_ASSIGNMENT___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Ecore Property Assignment</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_PROPERTY_ASSIGNMENT_OPERATION_COUNT = CG_PROPERTY_ASSIGNMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl <em>CG Mapping</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMapping() + * @generated + */ + int CG_MAPPING = 6; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl <em>CG Transformation</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTransformation() + * @generated + */ + int CG_TRANSFORMATION = 12; + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment <em>CG Ecore Property Assignment</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Ecore Property Assignment</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment + * @generated + */ + EClass getCGEcorePropertyAssignment(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment#getEStructuralFeature <em>EStructural Feature</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>EStructural Feature</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment#getEStructuralFeature() + * @see #getCGEcorePropertyAssignment() + * @generated + */ + EReference getCGEcorePropertyAssignment_EStructuralFeature(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable <em>CG Ecore Realized Variable</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Ecore Realized Variable</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable + * @generated + */ + EClass getCGEcoreRealizedVariable(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable#getEClassifier <em>EClassifier</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>EClassifier</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable#getEClassifier() + * @see #getCGEcoreRealizedVariable() + * @generated + */ + EReference getCGEcoreRealizedVariable_EClassifier(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunction <em>CG Function</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Function</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunction + * @generated + */ + EClass getCGFunction(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp <em>CG Function Call Exp</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Function Call Exp</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp + * @generated + */ + EClass getCGFunctionCallExp(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp#getFunction <em>Function</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Function</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp#getFunction() + * @see #getCGFunctionCallExp() + * @generated + */ + EReference getCGFunctionCallExp_Function(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter <em>CG Function Parameter</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Function Parameter</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter + * @generated + */ + EClass getCGFunctionParameter(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter#getFunction <em>Function</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Function</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter#getFunction() + * @see #getCGFunctionParameter() + * @generated + */ + EReference getCGFunctionParameter_Function(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable <em>CG Guard Variable</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Guard Variable</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable + * @generated + */ + EClass getCGGuardVariable(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Mapping</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getMapping() + * @see #getCGGuardVariable() + * @generated + */ + EReference getCGGuardVariable_Mapping(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getTypedModel <em>Typed Model</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Typed Model</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable#getTypedModel() + * @see #getCGGuardVariable() + * @generated + */ + EReference getCGGuardVariable_TypedModel(); + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl <em>CG Mapping Call</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCall() + * @generated + */ + int CG_MAPPING_CALL = 7; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl <em>CG Mapping Call Binding</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCallBinding() + * @generated + */ + int CG_MAPPING_CALL_BINDING = 8; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl <em>CG Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPredicate() + * @generated + */ + int CG_PREDICATE = 9; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl <em>CG Realized Variable</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGRealizedVariable() + * @generated + */ + int CG_REALIZED_VARIABLE = 11; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__PARENT = CGModelPackage.CG_VARIABLE__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__NAME = CGModelPackage.CG_VARIABLE__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__PIVOT = CGModelPackage.CG_VARIABLE__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__PIVOT_TYPE_ID = CGModelPackage.CG_VARIABLE__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__TYPE_ID = CGModelPackage.CG_VARIABLE__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__REQUIRED = CGModelPackage.CG_VARIABLE__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__BOXED = CGModelPackage.CG_VARIABLE__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__CAUGHT = CGModelPackage.CG_VARIABLE__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__CONSTANT = CGModelPackage.CG_VARIABLE__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__DEPENDS_ON = CGModelPackage.CG_VARIABLE__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__FALSE = CGModelPackage.CG_VARIABLE__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__GLOBAL = CGModelPackage.CG_VARIABLE__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__INLINEABLE = CGModelPackage.CG_VARIABLE__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__INVALID = CGModelPackage.CG_VARIABLE__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__NULL = CGModelPackage.CG_VARIABLE__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__NON_INVALID = CGModelPackage.CG_VARIABLE__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__NON_NULL = CGModelPackage.CG_VARIABLE__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VARIABLE__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__SETTABLE = CGModelPackage.CG_VARIABLE__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__TRUE = CGModelPackage.CG_VARIABLE__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__UNBOXED = CGModelPackage.CG_VARIABLE__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__VALUE = CGModelPackage.CG_VARIABLE__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__VALUE_NAME = CGModelPackage.CG_VARIABLE__VALUE_NAME; + + /** + * The feature id for the '<em><b>Init</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__INIT = CGModelPackage.CG_VARIABLE__INIT; + + /** + * The feature id for the '<em><b>Mapping</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__MAPPING = CGModelPackage.CG_VARIABLE_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Typed Model</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE__TYPED_MODEL = CGModelPackage.CG_VARIABLE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>CG Realized Variable</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE_FEATURE_COUNT = CGModelPackage.CG_VARIABLE_FEATURE_COUNT + 2; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE___SET_NON_INVALID = CGModelPackage.CG_VARIABLE___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE___SET_NON_NULL = CGModelPackage.CG_VARIABLE___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Realized Variable</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_REALIZED_VARIABLE_OPERATION_COUNT = CGModelPackage.CG_VARIABLE_OPERATION_COUNT + 0; + + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl <em>CG Ecore Realized Variable</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcoreRealizedVariable() + * @generated + */ + int CG_ECORE_REALIZED_VARIABLE = 1; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__PARENT = CG_REALIZED_VARIABLE__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__NAME = CG_REALIZED_VARIABLE__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__PIVOT = CG_REALIZED_VARIABLE__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__PIVOT_TYPE_ID = CG_REALIZED_VARIABLE__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__TYPE_ID = CG_REALIZED_VARIABLE__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__REQUIRED = CG_REALIZED_VARIABLE__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__BOXED = CG_REALIZED_VARIABLE__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__CAUGHT = CG_REALIZED_VARIABLE__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__CONSTANT = CG_REALIZED_VARIABLE__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__DEPENDS_ON = CG_REALIZED_VARIABLE__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__FALSE = CG_REALIZED_VARIABLE__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__GLOBAL = CG_REALIZED_VARIABLE__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__INLINEABLE = CG_REALIZED_VARIABLE__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__INVALID = CG_REALIZED_VARIABLE__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__NULL = CG_REALIZED_VARIABLE__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__NON_INVALID = CG_REALIZED_VARIABLE__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__NON_NULL = CG_REALIZED_VARIABLE__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__REFERRED_VALUED_ELEMENT = CG_REALIZED_VARIABLE__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__SETTABLE = CG_REALIZED_VARIABLE__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__TRUE = CG_REALIZED_VARIABLE__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__UNBOXED = CG_REALIZED_VARIABLE__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__VALUE = CG_REALIZED_VARIABLE__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__VALUE_NAME = CG_REALIZED_VARIABLE__VALUE_NAME; + + /** + * The feature id for the '<em><b>Init</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__INIT = CG_REALIZED_VARIABLE__INIT; + + /** + * The feature id for the '<em><b>Mapping</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__MAPPING = CG_REALIZED_VARIABLE__MAPPING; + + /** + * The feature id for the '<em><b>Typed Model</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__TYPED_MODEL = CG_REALIZED_VARIABLE__TYPED_MODEL; + + /** + * The feature id for the '<em><b>EClassifier</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER = CG_REALIZED_VARIABLE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>CG Ecore Realized Variable</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE_FEATURE_COUNT = CG_REALIZED_VARIABLE_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE___SET_NON_INVALID = CG_REALIZED_VARIABLE___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE___SET_NON_NULL = CG_REALIZED_VARIABLE___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Ecore Realized Variable</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_ECORE_REALIZED_VARIABLE_OPERATION_COUNT = CG_REALIZED_VARIABLE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionImpl <em>CG Function</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunction() + * @generated + */ + int CG_FUNCTION = 2; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__PARENT = CGModelPackage.CG_OPERATION__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__NAME = CGModelPackage.CG_OPERATION__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__PIVOT = CGModelPackage.CG_OPERATION__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__PIVOT_TYPE_ID = CGModelPackage.CG_OPERATION__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__TYPE_ID = CGModelPackage.CG_OPERATION__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__REQUIRED = CGModelPackage.CG_OPERATION__REQUIRED; + + /** + * The feature id for the '<em><b>Parameters</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__PARAMETERS = CGModelPackage.CG_OPERATION__PARAMETERS; + + /** + * The feature id for the '<em><b>Body</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__BODY = CGModelPackage.CG_OPERATION__BODY; + + /** + * The feature id for the '<em><b>Preconditions</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__PRECONDITIONS = CGModelPackage.CG_OPERATION__PRECONDITIONS; + + /** + * The feature id for the '<em><b>Postconditions</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__POSTCONDITIONS = CGModelPackage.CG_OPERATION__POSTCONDITIONS; + + /** + * The feature id for the '<em><b>Containing Class</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION__CONTAINING_CLASS = CGModelPackage.CG_OPERATION__CONTAINING_CLASS; + + /** + * The number of structural features of the '<em>CG Function</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_FEATURE_COUNT = CGModelPackage.CG_OPERATION_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>CG Function</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_OPERATION_COUNT = CGModelPackage.CG_OPERATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl <em>CG Function Call Exp</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionCallExp() + * @generated + */ + int CG_FUNCTION_CALL_EXP = 3; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__PARENT = CGModelPackage.CG_OPERATION_CALL_EXP__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__NAME = CGModelPackage.CG_OPERATION_CALL_EXP__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__PIVOT = CGModelPackage.CG_OPERATION_CALL_EXP__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__PIVOT_TYPE_ID = CGModelPackage.CG_OPERATION_CALL_EXP__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__TYPE_ID = CGModelPackage.CG_OPERATION_CALL_EXP__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__REQUIRED = CGModelPackage.CG_OPERATION_CALL_EXP__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__BOXED = CGModelPackage.CG_OPERATION_CALL_EXP__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__CAUGHT = CGModelPackage.CG_OPERATION_CALL_EXP__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__CONSTANT = CGModelPackage.CG_OPERATION_CALL_EXP__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__DEPENDS_ON = CGModelPackage.CG_OPERATION_CALL_EXP__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__FALSE = CGModelPackage.CG_OPERATION_CALL_EXP__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__GLOBAL = CGModelPackage.CG_OPERATION_CALL_EXP__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__INLINEABLE = CGModelPackage.CG_OPERATION_CALL_EXP__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__INVALID = CGModelPackage.CG_OPERATION_CALL_EXP__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__NULL = CGModelPackage.CG_OPERATION_CALL_EXP__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__NON_INVALID = CGModelPackage.CG_OPERATION_CALL_EXP__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__NON_NULL = CGModelPackage.CG_OPERATION_CALL_EXP__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_OPERATION_CALL_EXP__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__SETTABLE = CGModelPackage.CG_OPERATION_CALL_EXP__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__TRUE = CGModelPackage.CG_OPERATION_CALL_EXP__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__UNBOXED = CGModelPackage.CG_OPERATION_CALL_EXP__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__VALUE = CGModelPackage.CG_OPERATION_CALL_EXP__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__VALUE_NAME = CGModelPackage.CG_OPERATION_CALL_EXP__VALUE_NAME; + + /** + * The feature id for the '<em><b>Invalidating</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__INVALIDATING = CGModelPackage.CG_OPERATION_CALL_EXP__INVALIDATING; + + /** + * The feature id for the '<em><b>Validating</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__VALIDATING = CGModelPackage.CG_OPERATION_CALL_EXP__VALIDATING; + + /** + * The feature id for the '<em><b>Source</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__SOURCE = CGModelPackage.CG_OPERATION_CALL_EXP__SOURCE; + + /** + * The feature id for the '<em><b>Referred Operation</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__REFERRED_OPERATION = CGModelPackage.CG_OPERATION_CALL_EXP__REFERRED_OPERATION; + + /** + * The feature id for the '<em><b>Arguments</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__ARGUMENTS = CGModelPackage.CG_OPERATION_CALL_EXP__ARGUMENTS; + + /** + * The feature id for the '<em><b>Function</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP__FUNCTION = CGModelPackage.CG_OPERATION_CALL_EXP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>CG Function Call Exp</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP_FEATURE_COUNT = CGModelPackage.CG_OPERATION_CALL_EXP_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP___SET_NON_INVALID = CGModelPackage.CG_OPERATION_CALL_EXP___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP___SET_NON_NULL = CGModelPackage.CG_OPERATION_CALL_EXP___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Function Call Exp</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_CALL_EXP_OPERATION_COUNT = CGModelPackage.CG_OPERATION_CALL_EXP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl <em>CG Function Parameter</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionParameter() + * @generated + */ + int CG_FUNCTION_PARAMETER = 4; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__PARENT = CGModelPackage.CG_PARAMETER__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__NAME = CGModelPackage.CG_PARAMETER__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__PIVOT = CGModelPackage.CG_PARAMETER__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__PIVOT_TYPE_ID = CGModelPackage.CG_PARAMETER__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__TYPE_ID = CGModelPackage.CG_PARAMETER__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__REQUIRED = CGModelPackage.CG_PARAMETER__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__BOXED = CGModelPackage.CG_PARAMETER__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__CAUGHT = CGModelPackage.CG_PARAMETER__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__CONSTANT = CGModelPackage.CG_PARAMETER__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__DEPENDS_ON = CGModelPackage.CG_PARAMETER__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__FALSE = CGModelPackage.CG_PARAMETER__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__GLOBAL = CGModelPackage.CG_PARAMETER__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__INLINEABLE = CGModelPackage.CG_PARAMETER__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__INVALID = CGModelPackage.CG_PARAMETER__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__NULL = CGModelPackage.CG_PARAMETER__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__NON_INVALID = CGModelPackage.CG_PARAMETER__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__NON_NULL = CGModelPackage.CG_PARAMETER__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_PARAMETER__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__SETTABLE = CGModelPackage.CG_PARAMETER__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__TRUE = CGModelPackage.CG_PARAMETER__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__UNBOXED = CGModelPackage.CG_PARAMETER__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__VALUE = CGModelPackage.CG_PARAMETER__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__VALUE_NAME = CGModelPackage.CG_PARAMETER__VALUE_NAME; + + /** + * The feature id for the '<em><b>Init</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__INIT = CGModelPackage.CG_PARAMETER__INIT; + + /** + * The feature id for the '<em><b>Operation</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__OPERATION = CGModelPackage.CG_PARAMETER__OPERATION; + + /** + * The feature id for the '<em><b>Function</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER__FUNCTION = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>CG Function Parameter</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER_FEATURE_COUNT = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER___SET_NON_INVALID = CGModelPackage.CG_PARAMETER___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER___SET_NON_NULL = CGModelPackage.CG_PARAMETER___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Function Parameter</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_FUNCTION_PARAMETER_OPERATION_COUNT = CGModelPackage.CG_PARAMETER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl <em>CG Guard Variable</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGGuardVariable() + * @generated + */ + int CG_GUARD_VARIABLE = 5; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__PARENT = CGModelPackage.CG_PARAMETER__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__NAME = CGModelPackage.CG_PARAMETER__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__PIVOT = CGModelPackage.CG_PARAMETER__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__PIVOT_TYPE_ID = CGModelPackage.CG_PARAMETER__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__TYPE_ID = CGModelPackage.CG_PARAMETER__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__REQUIRED = CGModelPackage.CG_PARAMETER__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__BOXED = CGModelPackage.CG_PARAMETER__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__CAUGHT = CGModelPackage.CG_PARAMETER__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__CONSTANT = CGModelPackage.CG_PARAMETER__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__DEPENDS_ON = CGModelPackage.CG_PARAMETER__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__FALSE = CGModelPackage.CG_PARAMETER__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__GLOBAL = CGModelPackage.CG_PARAMETER__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__INLINEABLE = CGModelPackage.CG_PARAMETER__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__INVALID = CGModelPackage.CG_PARAMETER__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__NULL = CGModelPackage.CG_PARAMETER__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__NON_INVALID = CGModelPackage.CG_PARAMETER__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__NON_NULL = CGModelPackage.CG_PARAMETER__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_PARAMETER__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__SETTABLE = CGModelPackage.CG_PARAMETER__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__TRUE = CGModelPackage.CG_PARAMETER__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__UNBOXED = CGModelPackage.CG_PARAMETER__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__VALUE = CGModelPackage.CG_PARAMETER__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__VALUE_NAME = CGModelPackage.CG_PARAMETER__VALUE_NAME; + + /** + * The feature id for the '<em><b>Init</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__INIT = CGModelPackage.CG_PARAMETER__INIT; + + /** + * The feature id for the '<em><b>Operation</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__OPERATION = CGModelPackage.CG_PARAMETER__OPERATION; + + /** + * The feature id for the '<em><b>Mapping</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__MAPPING = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Typed Model</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE__TYPED_MODEL = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>CG Guard Variable</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE_FEATURE_COUNT = CGModelPackage.CG_PARAMETER_FEATURE_COUNT + 2; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE___SET_NON_INVALID = CGModelPackage.CG_PARAMETER___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE___SET_NON_NULL = CGModelPackage.CG_PARAMETER___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Guard Variable</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_GUARD_VARIABLE_OPERATION_COUNT = CGModelPackage.CG_PARAMETER_OPERATION_COUNT + 0; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__PARENT = CGModelPackage.CG_TYPED_ELEMENT__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__NAME = CGModelPackage.CG_TYPED_ELEMENT__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__PIVOT = CGModelPackage.CG_TYPED_ELEMENT__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__PIVOT_TYPE_ID = CGModelPackage.CG_TYPED_ELEMENT__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__TYPE_ID = CGModelPackage.CG_TYPED_ELEMENT__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__REQUIRED = CGModelPackage.CG_TYPED_ELEMENT__REQUIRED; + + /** + * The feature id for the '<em><b>Transformation</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__TRANSFORMATION = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Guard Variables</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__GUARD_VARIABLES = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the '<em><b>Predicates</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__PREDICATES = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Realized Variables</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__REALIZED_VARIABLES = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the '<em><b>Assignments</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__ASSIGNMENTS = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the '<em><b>Mapping Calls</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING__MAPPING_CALLS = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 5; + + /** + * The number of structural features of the '<em>CG Mapping</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_FEATURE_COUNT = CGModelPackage.CG_TYPED_ELEMENT_FEATURE_COUNT + 6; + + /** + * The number of operations of the '<em>CG Mapping</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_OPERATION_COUNT = CGModelPackage.CG_TYPED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__PARENT = CGModelPackage.CG_VALUED_ELEMENT__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__NAME = CGModelPackage.CG_VALUED_ELEMENT__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__PIVOT = CGModelPackage.CG_VALUED_ELEMENT__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__PIVOT_TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__REQUIRED = CGModelPackage.CG_VALUED_ELEMENT__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__BOXED = CGModelPackage.CG_VALUED_ELEMENT__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__CAUGHT = CGModelPackage.CG_VALUED_ELEMENT__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__CONSTANT = CGModelPackage.CG_VALUED_ELEMENT__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__DEPENDS_ON = CGModelPackage.CG_VALUED_ELEMENT__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__FALSE = CGModelPackage.CG_VALUED_ELEMENT__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__GLOBAL = CGModelPackage.CG_VALUED_ELEMENT__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__INLINEABLE = CGModelPackage.CG_VALUED_ELEMENT__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__INVALID = CGModelPackage.CG_VALUED_ELEMENT__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__NULL = CGModelPackage.CG_VALUED_ELEMENT__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__NON_NULL = CGModelPackage.CG_VALUED_ELEMENT__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VALUED_ELEMENT__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__SETTABLE = CGModelPackage.CG_VALUED_ELEMENT__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__TRUE = CGModelPackage.CG_VALUED_ELEMENT__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__UNBOXED = CGModelPackage.CG_VALUED_ELEMENT__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__VALUE = CGModelPackage.CG_VALUED_ELEMENT__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__VALUE_NAME = CGModelPackage.CG_VALUED_ELEMENT__VALUE_NAME; + + /** + * The feature id for the '<em><b>Mapping</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__MAPPING = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Mapping Call Bindings</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL__MAPPING_CALL_BINDINGS = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>CG Mapping Call</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_FEATURE_COUNT = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL___SET_NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL___SET_NON_NULL = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Mapping Call</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_OPERATION_COUNT = CGModelPackage.CG_VALUED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__PARENT = CGModelPackage.CG_VALUED_ELEMENT__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__NAME = CGModelPackage.CG_VALUED_ELEMENT__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__PIVOT = CGModelPackage.CG_VALUED_ELEMENT__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__PIVOT_TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__REQUIRED = CGModelPackage.CG_VALUED_ELEMENT__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__BOXED = CGModelPackage.CG_VALUED_ELEMENT__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__CAUGHT = CGModelPackage.CG_VALUED_ELEMENT__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__CONSTANT = CGModelPackage.CG_VALUED_ELEMENT__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__DEPENDS_ON = CGModelPackage.CG_VALUED_ELEMENT__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__FALSE = CGModelPackage.CG_VALUED_ELEMENT__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__GLOBAL = CGModelPackage.CG_VALUED_ELEMENT__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__INLINEABLE = CGModelPackage.CG_VALUED_ELEMENT__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__INVALID = CGModelPackage.CG_VALUED_ELEMENT__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__NULL = CGModelPackage.CG_VALUED_ELEMENT__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__NON_NULL = CGModelPackage.CG_VALUED_ELEMENT__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VALUED_ELEMENT__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__SETTABLE = CGModelPackage.CG_VALUED_ELEMENT__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__TRUE = CGModelPackage.CG_VALUED_ELEMENT__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__UNBOXED = CGModelPackage.CG_VALUED_ELEMENT__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__VALUE = CGModelPackage.CG_VALUED_ELEMENT__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__VALUE_NAME = CGModelPackage.CG_VALUED_ELEMENT__VALUE_NAME; + + /** + * The feature id for the '<em><b>Value Or Values</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Loop</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING__LOOP = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>CG Mapping Call Binding</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING_FEATURE_COUNT = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING___SET_NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING___SET_NON_NULL = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Mapping Call Binding</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_MAPPING_CALL_BINDING_OPERATION_COUNT = CGModelPackage.CG_VALUED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__PARENT = CGModelPackage.CG_VALUED_ELEMENT__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__NAME = CGModelPackage.CG_VALUED_ELEMENT__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__PIVOT = CGModelPackage.CG_VALUED_ELEMENT__PIVOT; + + /** + * The feature id for the '<em><b>Pivot Type Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__PIVOT_TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__PIVOT_TYPE_ID; + + /** + * The feature id for the '<em><b>Type Id</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__TYPE_ID = CGModelPackage.CG_VALUED_ELEMENT__TYPE_ID; + + /** + * The feature id for the '<em><b>Required</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__REQUIRED = CGModelPackage.CG_VALUED_ELEMENT__REQUIRED; + + /** + * The feature id for the '<em><b>Boxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__BOXED = CGModelPackage.CG_VALUED_ELEMENT__BOXED; + + /** + * The feature id for the '<em><b>Caught</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__CAUGHT = CGModelPackage.CG_VALUED_ELEMENT__CAUGHT; + + /** + * The feature id for the '<em><b>Constant</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__CONSTANT = CGModelPackage.CG_VALUED_ELEMENT__CONSTANT; + + /** + * The feature id for the '<em><b>Depends On</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__DEPENDS_ON = CGModelPackage.CG_VALUED_ELEMENT__DEPENDS_ON; + + /** + * The feature id for the '<em><b>False</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__FALSE = CGModelPackage.CG_VALUED_ELEMENT__FALSE; + + /** + * The feature id for the '<em><b>Global</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__GLOBAL = CGModelPackage.CG_VALUED_ELEMENT__GLOBAL; + + /** + * The feature id for the '<em><b>Inlineable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__INLINEABLE = CGModelPackage.CG_VALUED_ELEMENT__INLINEABLE; + + /** + * The feature id for the '<em><b>Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__INVALID = CGModelPackage.CG_VALUED_ELEMENT__INVALID; + + /** + * The feature id for the '<em><b>Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__NULL = CGModelPackage.CG_VALUED_ELEMENT__NULL; + + /** + * The feature id for the '<em><b>Non Invalid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT__NON_INVALID; + + /** + * The feature id for the '<em><b>Non Null</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__NON_NULL = CGModelPackage.CG_VALUED_ELEMENT__NON_NULL; + + /** + * The feature id for the '<em><b>Referred Valued Element</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__REFERRED_VALUED_ELEMENT = CGModelPackage.CG_VALUED_ELEMENT__REFERRED_VALUED_ELEMENT; + + /** + * The feature id for the '<em><b>Settable</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__SETTABLE = CGModelPackage.CG_VALUED_ELEMENT__SETTABLE; + + /** + * The feature id for the '<em><b>True</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__TRUE = CGModelPackage.CG_VALUED_ELEMENT__TRUE; + + /** + * The feature id for the '<em><b>Unboxed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__UNBOXED = CGModelPackage.CG_VALUED_ELEMENT__UNBOXED; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__VALUE = CGModelPackage.CG_VALUED_ELEMENT__VALUE; + + /** + * The feature id for the '<em><b>Value Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__VALUE_NAME = CGModelPackage.CG_VALUED_ELEMENT__VALUE_NAME; + + /** + * The feature id for the '<em><b>Mapping</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__MAPPING = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Condition Expression</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE__CONDITION_EXPRESSION = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>CG Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE_FEATURE_COUNT = CGModelPackage.CG_VALUED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the '<em>Set Non Invalid</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE___SET_NON_INVALID = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_INVALID; + + /** + * The operation id for the '<em>Set Non Null</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE___SET_NON_NULL = CGModelPackage.CG_VALUED_ELEMENT___SET_NON_NULL; + + /** + * The number of operations of the '<em>CG Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_PREDICATE_OPERATION_COUNT = CGModelPackage.CG_VALUED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION__PARENT = CGModelPackage.CG_CLASS__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION__NAME = CGModelPackage.CG_CLASS__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION__PIVOT = CGModelPackage.CG_CLASS__PIVOT; + + /** + * The feature id for the '<em><b>Containing Package</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION__CONTAINING_PACKAGE = CGModelPackage.CG_CLASS__CONTAINING_PACKAGE; + + /** + * The feature id for the '<em><b>Operations</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION__OPERATIONS = CGModelPackage.CG_CLASS__OPERATIONS; + + /** + * The feature id for the '<em><b>Properties</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION__PROPERTIES = CGModelPackage.CG_CLASS__PROPERTIES; + + /** + * The feature id for the '<em><b>Invariants</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION__INVARIANTS = CGModelPackage.CG_CLASS__INVARIANTS; + + /** + * The feature id for the '<em><b>Mappings</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION__MAPPINGS = CGModelPackage.CG_CLASS_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Typed Models</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION__TYPED_MODELS = CGModelPackage.CG_CLASS_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>CG Transformation</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION_FEATURE_COUNT = CGModelPackage.CG_CLASS_FEATURE_COUNT + 2; + + /** + * The number of operations of the '<em>CG Transformation</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TRANSFORMATION_OPERATION_COUNT = CGModelPackage.CG_CLASS_OPERATION_COUNT + 0; + + + /** + * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl <em>CG Typed Model</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTypedModel() + * @generated + */ + int CG_TYPED_MODEL = 13; + + /** + * The feature id for the '<em><b>Parent</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TYPED_MODEL__PARENT = CGModelPackage.CG_NAMED_ELEMENT__PARENT; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TYPED_MODEL__NAME = CGModelPackage.CG_NAMED_ELEMENT__NAME; + + /** + * The feature id for the '<em><b>Pivot</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TYPED_MODEL__PIVOT = CGModelPackage.CG_NAMED_ELEMENT__PIVOT; + + /** + * The feature id for the '<em><b>Transformation</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TYPED_MODEL__TRANSFORMATION = CGModelPackage.CG_NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Model Index</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TYPED_MODEL__MODEL_INDEX = CGModelPackage.CG_NAMED_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>CG Typed Model</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TYPED_MODEL_FEATURE_COUNT = CGModelPackage.CG_NAMED_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of operations of the '<em>CG Typed Model</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CG_TYPED_MODEL_OPERATION_COUNT = CGModelPackage.CG_NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment <em>CG Property Assignment</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Property Assignment</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment + * @generated + */ + EClass getCGPropertyAssignment(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Mapping</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getMapping() + * @see #getCGPropertyAssignment() + * @generated + */ + EReference getCGPropertyAssignment_Mapping(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getSlotValue <em>Slot Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Slot Value</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getSlotValue() + * @see #getCGPropertyAssignment() + * @generated + */ + EReference getCGPropertyAssignment_SlotValue(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getReferredProperty <em>Referred Property</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Referred Property</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getReferredProperty() + * @see #getCGPropertyAssignment() + * @generated + */ + EAttribute getCGPropertyAssignment_ReferredProperty(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getInitValue <em>Init Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Init Value</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment#getInitValue() + * @see #getCGPropertyAssignment() + * @generated + */ + EReference getCGPropertyAssignment_InitValue(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping <em>CG Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Mapping</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping + * @generated + */ + EClass getCGMapping(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation <em>Transformation</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Transformation</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getTransformation() + * @see #getCGMapping() + * @generated + */ + EReference getCGMapping_Transformation(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables <em>Guard Variables</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Guard Variables</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getGuardVariables() + * @see #getCGMapping() + * @generated + */ + EReference getCGMapping_GuardVariables(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates <em>Predicates</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Predicates</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getPredicates() + * @see #getCGMapping() + * @generated + */ + EReference getCGMapping_Predicates(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls <em>Mapping Calls</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Mapping Calls</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getMappingCalls() + * @see #getCGMapping() + * @generated + */ + EReference getCGMapping_MappingCalls(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables <em>Realized Variables</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Realized Variables</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getRealizedVariables() + * @see #getCGMapping() + * @generated + */ + EReference getCGMapping_RealizedVariables(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments <em>Assignments</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Assignments</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping#getAssignments() + * @see #getCGMapping() + * @generated + */ + EReference getCGMapping_Assignments(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation <em>CG Transformation</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Transformation</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation + * @generated + */ + EClass getCGTransformation(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings <em>Mappings</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Mappings</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getMappings() + * @see #getCGTransformation() + * @generated + */ + EReference getCGTransformation_Mappings(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels <em>Typed Models</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Typed Models</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation#getTypedModels() + * @see #getCGTransformation() + * @generated + */ + EReference getCGTransformation_TypedModels(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel <em>CG Typed Model</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Typed Model</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel + * @generated + */ + EClass getCGTypedModel(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation <em>Transformation</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Transformation</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getTransformation() + * @see #getCGTypedModel() + * @generated + */ + EReference getCGTypedModel_Transformation(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getModelIndex <em>Model Index</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Model Index</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel#getModelIndex() + * @see #getCGTypedModel() + * @generated + */ + EAttribute getCGTypedModel_ModelIndex(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall <em>CG Mapping Call</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Mapping Call</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall + * @generated + */ + EClass getCGMappingCall(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Mapping</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMapping() + * @see #getCGMappingCall() + * @generated + */ + EReference getCGMappingCall_Mapping(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMappingCallBindings <em>Mapping Call Bindings</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Mapping Call Bindings</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall#getMappingCallBindings() + * @see #getCGMappingCall() + * @generated + */ + EReference getCGMappingCall_MappingCallBindings(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding <em>CG Mapping Call Binding</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Mapping Call Binding</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding + * @generated + */ + EClass getCGMappingCallBinding(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#getValueOrValues <em>Value Or Values</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Value Or Values</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#getValueOrValues() + * @see #getCGMappingCallBinding() + * @generated + */ + EReference getCGMappingCallBinding_ValueOrValues(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#isLoop <em>Loop</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Loop</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding#isLoop() + * @see #getCGMappingCallBinding() + * @generated + */ + EAttribute getCGMappingCallBinding_Loop(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate <em>CG Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Predicate</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate + * @generated + */ + EClass getCGPredicate(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Mapping</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getMapping() + * @see #getCGPredicate() + * @generated + */ + EReference getCGPredicate_Mapping(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getConditionExpression <em>Condition Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Condition Expression</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate#getConditionExpression() + * @see #getCGPredicate() + * @generated + */ + EReference getCGPredicate_ConditionExpression(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable <em>CG Realized Variable</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>CG Realized Variable</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable + * @generated + */ + EClass getCGRealizedVariable(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping <em>Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Mapping</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getMapping() + * @see #getCGRealizedVariable() + * @generated + */ + EReference getCGRealizedVariable_Mapping(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getTypedModel <em>Typed Model</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Typed Model</em>'. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable#getTypedModel() + * @see #getCGRealizedVariable() + * @generated + */ + EReference getCGRealizedVariable_TypedModel(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + QVTiCGModelFactory getQVTiCGModelFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl <em>CG Ecore Property Assignment</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcorePropertyAssignment() + * @generated + */ + EClass CG_ECORE_PROPERTY_ASSIGNMENT = eINSTANCE.getCGEcorePropertyAssignment(); + + /** + * The meta object literal for the '<em><b>EStructural Feature</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE = eINSTANCE.getCGEcorePropertyAssignment_EStructuralFeature(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl <em>CG Ecore Realized Variable</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcoreRealizedVariable() + * @generated + */ + EClass CG_ECORE_REALIZED_VARIABLE = eINSTANCE.getCGEcoreRealizedVariable(); + + /** + * The meta object literal for the '<em><b>EClassifier</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER = eINSTANCE.getCGEcoreRealizedVariable_EClassifier(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionImpl <em>CG Function</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunction() + * @generated + */ + EClass CG_FUNCTION = eINSTANCE.getCGFunction(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl <em>CG Function Call Exp</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionCallExp() + * @generated + */ + EClass CG_FUNCTION_CALL_EXP = eINSTANCE.getCGFunctionCallExp(); + + /** + * The meta object literal for the '<em><b>Function</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_FUNCTION_CALL_EXP__FUNCTION = eINSTANCE.getCGFunctionCallExp_Function(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl <em>CG Function Parameter</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionParameter() + * @generated + */ + EClass CG_FUNCTION_PARAMETER = eINSTANCE.getCGFunctionParameter(); + + /** + * The meta object literal for the '<em><b>Function</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_FUNCTION_PARAMETER__FUNCTION = eINSTANCE.getCGFunctionParameter_Function(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl <em>CG Guard Variable</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGGuardVariable() + * @generated + */ + EClass CG_GUARD_VARIABLE = eINSTANCE.getCGGuardVariable(); + + /** + * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_GUARD_VARIABLE__MAPPING = eINSTANCE.getCGGuardVariable_Mapping(); + + /** + * The meta object literal for the '<em><b>Typed Model</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_GUARD_VARIABLE__TYPED_MODEL = eINSTANCE.getCGGuardVariable_TypedModel(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl <em>CG Property Assignment</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPropertyAssignment() + * @generated + */ + EClass CG_PROPERTY_ASSIGNMENT = eINSTANCE.getCGPropertyAssignment(); + + /** + * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_PROPERTY_ASSIGNMENT__MAPPING = eINSTANCE.getCGPropertyAssignment_Mapping(); + + /** + * The meta object literal for the '<em><b>Slot Value</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_PROPERTY_ASSIGNMENT__SLOT_VALUE = eINSTANCE.getCGPropertyAssignment_SlotValue(); + + /** + * The meta object literal for the '<em><b>Referred Property</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY = eINSTANCE.getCGPropertyAssignment_ReferredProperty(); + + /** + * The meta object literal for the '<em><b>Init Value</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_PROPERTY_ASSIGNMENT__INIT_VALUE = eINSTANCE.getCGPropertyAssignment_InitValue(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl <em>CG Mapping</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMapping() + * @generated + */ + EClass CG_MAPPING = eINSTANCE.getCGMapping(); + + /** + * The meta object literal for the '<em><b>Transformation</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_MAPPING__TRANSFORMATION = eINSTANCE.getCGMapping_Transformation(); + + /** + * The meta object literal for the '<em><b>Guard Variables</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_MAPPING__GUARD_VARIABLES = eINSTANCE.getCGMapping_GuardVariables(); + + /** + * The meta object literal for the '<em><b>Predicates</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_MAPPING__PREDICATES = eINSTANCE.getCGMapping_Predicates(); + + /** + * The meta object literal for the '<em><b>Mapping Calls</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_MAPPING__MAPPING_CALLS = eINSTANCE.getCGMapping_MappingCalls(); + + /** + * The meta object literal for the '<em><b>Realized Variables</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_MAPPING__REALIZED_VARIABLES = eINSTANCE.getCGMapping_RealizedVariables(); + + /** + * The meta object literal for the '<em><b>Assignments</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_MAPPING__ASSIGNMENTS = eINSTANCE.getCGMapping_Assignments(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl <em>CG Transformation</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTransformation() + * @generated + */ + EClass CG_TRANSFORMATION = eINSTANCE.getCGTransformation(); + + /** + * The meta object literal for the '<em><b>Mappings</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_TRANSFORMATION__MAPPINGS = eINSTANCE.getCGTransformation_Mappings(); + + /** + * The meta object literal for the '<em><b>Typed Models</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_TRANSFORMATION__TYPED_MODELS = eINSTANCE.getCGTransformation_TypedModels(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl <em>CG Typed Model</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTypedModel() + * @generated + */ + EClass CG_TYPED_MODEL = eINSTANCE.getCGTypedModel(); + + /** + * The meta object literal for the '<em><b>Transformation</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_TYPED_MODEL__TRANSFORMATION = eINSTANCE.getCGTypedModel_Transformation(); + + /** + * The meta object literal for the '<em><b>Model Index</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute CG_TYPED_MODEL__MODEL_INDEX = eINSTANCE.getCGTypedModel_ModelIndex(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl <em>CG Mapping Call</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCall() + * @generated + */ + EClass CG_MAPPING_CALL = eINSTANCE.getCGMappingCall(); + + /** + * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_MAPPING_CALL__MAPPING = eINSTANCE.getCGMappingCall_Mapping(); + + /** + * The meta object literal for the '<em><b>Mapping Call Bindings</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_MAPPING_CALL__MAPPING_CALL_BINDINGS = eINSTANCE.getCGMappingCall_MappingCallBindings(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl <em>CG Mapping Call Binding</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCallBinding() + * @generated + */ + EClass CG_MAPPING_CALL_BINDING = eINSTANCE.getCGMappingCallBinding(); + + /** + * The meta object literal for the '<em><b>Value Or Values</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES = eINSTANCE.getCGMappingCallBinding_ValueOrValues(); + + /** + * The meta object literal for the '<em><b>Loop</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute CG_MAPPING_CALL_BINDING__LOOP = eINSTANCE.getCGMappingCallBinding_Loop(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl <em>CG Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPredicate() + * @generated + */ + EClass CG_PREDICATE = eINSTANCE.getCGPredicate(); + + /** + * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_PREDICATE__MAPPING = eINSTANCE.getCGPredicate_Mapping(); + + /** + * The meta object literal for the '<em><b>Condition Expression</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_PREDICATE__CONDITION_EXPRESSION = eINSTANCE.getCGPredicate_ConditionExpression(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl <em>CG Realized Variable</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl + * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGRealizedVariable() + * @generated + */ + EClass CG_REALIZED_VARIABLE = eINSTANCE.getCGRealizedVariable(); + + /** + * The meta object literal for the '<em><b>Mapping</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_REALIZED_VARIABLE__MAPPING = eINSTANCE.getCGRealizedVariable_Mapping(); + + /** + * The meta object literal for the '<em><b>Typed Model</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference CG_REALIZED_VARIABLE__TYPED_MODEL = eINSTANCE.getCGRealizedVariable_TypedModel(); + + } + +} //QVTiCGmodelPackage diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java new file mode 100644 index 000000000..d89d559cb --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java @@ -0,0 +1,154 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Ecore Property Assignment</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl#getEStructuralFeature <em>EStructural Feature</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGEcorePropertyAssignmentImpl extends CGPropertyAssignmentImpl implements CGEcorePropertyAssignment { + /** + * The cached value of the '{@link #getEStructuralFeature() <em>EStructural Feature</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEStructuralFeature() + * @generated + * @ordered + */ + protected EStructuralFeature eStructuralFeature; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGEcorePropertyAssignmentImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_ECORE_PROPERTY_ASSIGNMENT; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EStructuralFeature getEStructuralFeature() { + return eStructuralFeature; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setEStructuralFeature(EStructuralFeature newEStructuralFeature) { + EStructuralFeature oldEStructuralFeature = eStructuralFeature; + eStructuralFeature = newEStructuralFeature; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE, oldEStructuralFeature, eStructuralFeature)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE: + return getEStructuralFeature(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE: + setEStructuralFeature((EStructuralFeature)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE: + setEStructuralFeature((EStructuralFeature)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE: + return eStructuralFeature != null; + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGEcorePropertyAssignment(this); + } + +} //CGEcorePropertyAssignmentImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java new file mode 100644 index 000000000..581eec809 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java @@ -0,0 +1,154 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Ecore Realized Variable</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcoreRealizedVariableImpl#getEClassifier <em>EClassifier</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGEcoreRealizedVariableImpl extends CGRealizedVariableImpl implements CGEcoreRealizedVariable { + /** + * The cached value of the '{@link #getEClassifier() <em>EClassifier</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEClassifier() + * @generated + * @ordered + */ + protected EClassifier eClassifier; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGEcoreRealizedVariableImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_ECORE_REALIZED_VARIABLE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClassifier getEClassifier() { + return eClassifier; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setEClassifier(EClassifier newEClassifier) { + EClassifier oldEClassifier = eClassifier; + eClassifier = newEClassifier; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER, oldEClassifier, eClassifier)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER: + return getEClassifier(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER: + setEClassifier((EClassifier)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER: + setEClassifier((EClassifier)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER: + return eClassifier != null; + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGEcoreRealizedVariable(this); + } + +} //CGEcoreRealizedVariableImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionCallExpImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionCallExpImpl.java new file mode 100644 index 000000000..2f111d4ed --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionCallExpImpl.java @@ -0,0 +1,164 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGOperationCallExpImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Function Call Exp</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionCallExpImpl#getFunction <em>Function</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGFunctionCallExpImpl extends CGOperationCallExpImpl implements CGFunctionCallExp { + /** + * The cached value of the '{@link #getFunction() <em>Function</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFunction() + * @generated + * @ordered + */ + protected CGFunction function; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGFunctionCallExpImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_FUNCTION_CALL_EXP; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGFunction getFunction() { + return function; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFunction(CGFunction newFunction) { + CGFunction oldFunction = function; + function = newFunction; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION, oldFunction, function)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION: + return getFunction(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION: + setFunction((CGFunction)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION: + setFunction((CGFunction)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP__FUNCTION: + return function != null; + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGFunctionCallExp(this); + } + + @Override + public boolean isBoxed() { + return false; + } + + @Override + public boolean isUnboxed() { + return true; + } +} //CGFunctionCallExpImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionImpl.java new file mode 100644 index 000000000..83f1af615 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionImpl.java @@ -0,0 +1,58 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGOperationImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Function</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class CGFunctionImpl extends CGOperationImpl implements CGFunction { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGFunctionImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_FUNCTION; + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGFunction(this); + } +} //CGFunctionImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionParameterImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionParameterImpl.java new file mode 100644 index 000000000..49214b69e --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGFunctionParameterImpl.java @@ -0,0 +1,164 @@ +/**
+ * <copyright>
+ *
+ * Copyright (c) 2013 E.D.Willink 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:
+ * E.D.Willink - Initial API and implementation
+ *
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGParameterImpl;
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG Function Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGFunctionParameterImpl#getFunction <em>Function</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CGFunctionParameterImpl extends CGParameterImpl implements CGFunctionParameter {
+ /**
+ * The cached value of the '{@link #getFunction() <em>Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunction()
+ * @generated
+ * @ordered
+ */
+ protected CGFunction function;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CGFunctionParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QVTiCGModelPackage.Literals.CG_FUNCTION_PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CGFunction getFunction() {
+ return function;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFunction(CGFunction newFunction) {
+ CGFunction oldFunction = function;
+ function = newFunction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION, oldFunction, function));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION:
+ return getFunction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION:
+ setFunction((CGFunction)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION:
+ setFunction((CGFunction)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QVTiCGModelPackage.CG_FUNCTION_PARAMETER__FUNCTION:
+ return function != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+ return ((QVTiCGModelVisitor<R>)visitor).visitCGFunctionParameter(this);
+ }
+
+ @Override
+ public boolean isBoxed() {
+ return false;
+ }
+
+ @Override
+ public boolean isUnboxed() {
+ return true;
+ }
+} //CGFunctionParameterImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGGuardVariableImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGGuardVariableImpl.java new file mode 100644 index 000000000..206de4fb0 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGGuardVariableImpl.java @@ -0,0 +1,274 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGParameterImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Guard Variable</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGGuardVariableImpl#getTypedModel <em>Typed Model</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGGuardVariableImpl extends CGParameterImpl implements CGGuardVariable { + /** + * The cached value of the '{@link #getTypedModel() <em>Typed Model</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedModel() + * @generated + * @ordered + */ + protected CGTypedModel typedModel; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGGuardVariableImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_GUARD_VARIABLE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGMapping getMapping() { + if (eContainerFeatureID() != QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING) return null; + return (CGMapping)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMapping(CGMapping newMapping) { + if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING && newMapping != null)) { + if (EcoreUtil.isAncestor(this, newMapping)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newMapping != null) + msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES, CGMapping.class, msgs); + msgs = basicSetMapping(newMapping, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING, newMapping, newMapping)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGTypedModel getTypedModel() { + return typedModel; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedModel(CGTypedModel newTypedModel) { + CGTypedModel oldTypedModel = typedModel; + typedModel = newTypedModel; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL, oldTypedModel, typedModel)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetMapping((CGMapping)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING: + return basicSetMapping(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING: + return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES, CGMapping.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING: + return getMapping(); + case QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL: + return getTypedModel(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING: + setMapping((CGMapping)newValue); + return; + case QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL: + setTypedModel((CGTypedModel)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING: + setMapping((CGMapping)null); + return; + case QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL: + setTypedModel((CGTypedModel)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING: + return getMapping() != null; + case QVTiCGModelPackage.CG_GUARD_VARIABLE__TYPED_MODEL: + return typedModel != null; + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGGuardVariable(this); + } + + @Override + public boolean isBoxed() { + return false; + } + + @Override + public boolean isNonNull() { + return true; + } + + @Override + public boolean isNull() { + return false; + } + + @Override + public boolean isUnboxed() { + return true; + } +} //CGGuardVariableImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallBindingImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallBindingImpl.java new file mode 100644 index 000000000..e5fa5b243 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallBindingImpl.java @@ -0,0 +1,253 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Mapping Call Binding</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl#getValueOrValues <em>Value Or Values</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl#isLoop <em>Loop</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGMappingCallBindingImpl extends CGValuedElementImpl implements CGMappingCallBinding { + /** + * The cached value of the '{@link #getValueOrValues() <em>Value Or Values</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValueOrValues() + * @generated + * @ordered + */ + protected CGValuedElement valueOrValues; + + /** + * The default value of the '{@link #isLoop() <em>Loop</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isLoop() + * @generated + * @ordered + */ + protected static final boolean LOOP_EDEFAULT = false; + /** + * The cached value of the '{@link #isLoop() <em>Loop</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isLoop() + * @generated + * @ordered + */ + protected boolean loop = LOOP_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGMappingCallBindingImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_MAPPING_CALL_BINDING; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGValuedElement getValueOrValues() { + return valueOrValues; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetValueOrValues(CGValuedElement newValueOrValues, NotificationChain msgs) { + CGValuedElement oldValueOrValues = valueOrValues; + valueOrValues = newValueOrValues; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES, oldValueOrValues, newValueOrValues); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setValueOrValues(CGValuedElement newValueOrValues) { + if (newValueOrValues != valueOrValues) { + NotificationChain msgs = null; + if (valueOrValues != null) + msgs = ((InternalEObject)valueOrValues).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES, null, msgs); + if (newValueOrValues != null) + msgs = ((InternalEObject)newValueOrValues).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES, null, msgs); + msgs = basicSetValueOrValues(newValueOrValues, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES, newValueOrValues, newValueOrValues)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isLoop() { + return loop; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLoop(boolean newLoop) { + boolean oldLoop = loop; + loop = newLoop; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP, oldLoop, loop)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES: + return basicSetValueOrValues(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES: + return getValueOrValues(); + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP: + return isLoop(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES: + setValueOrValues((CGValuedElement)newValue); + return; + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP: + setLoop((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES: + setValueOrValues((CGValuedElement)null); + return; + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP: + setLoop(LOOP_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES: + return valueOrValues != null; + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING__LOOP: + return loop != LOOP_EDEFAULT; + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGMappingCallBinding(this); + } + + @Override + public @NonNull CGValuedElement getReferredValuedElement() { + return valueOrValues != null ? valueOrValues : this; + } + + @Override + public String toString() { + return super.toString(); + } +} //CGMappingCallBindingImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallImpl.java new file mode 100644 index 000000000..25fade748 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingCallImpl.java @@ -0,0 +1,254 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import java.util.Collection; +import java.util.List; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Mapping Call</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallImpl#getMappingCallBindings <em>Mapping Call Bindings</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGMappingCallImpl extends CGValuedElementImpl implements CGMappingCall { + /** + * The cached value of the '{@link #getMappingCallBindings() <em>Mapping Call Bindings</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMappingCallBindings() + * @generated + * @ordered + */ + protected EList<CGMappingCallBinding> mappingCallBindings; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGMappingCallImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_MAPPING_CALL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGMapping getMapping() { + if (eContainerFeatureID() != QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING) return null; + return (CGMapping)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMapping(CGMapping newMapping) { + if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING && newMapping != null)) { + if (EcoreUtil.isAncestor(this, newMapping)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newMapping != null) + msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS, CGMapping.class, msgs); + msgs = basicSetMapping(newMapping, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING, newMapping, newMapping)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<CGMappingCallBinding> getMappingCallBindings() { + if (mappingCallBindings == null) { + mappingCallBindings = new EObjectContainmentEList<CGMappingCallBinding>(CGMappingCallBinding.class, this, QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS); + } + return mappingCallBindings; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetMapping((CGMapping)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING: + return basicSetMapping(null, msgs); + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS: + return ((InternalEList<?>)getMappingCallBindings()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING: + return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS, CGMapping.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING: + return getMapping(); + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS: + return getMappingCallBindings(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING: + setMapping((CGMapping)newValue); + return; + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS: + getMappingCallBindings().clear(); + getMappingCallBindings().addAll((Collection<? extends CGMappingCallBinding>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING: + setMapping((CGMapping)null); + return; + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS: + getMappingCallBindings().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING: + return getMapping() != null; + case QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING_CALL_BINDINGS: + return mappingCallBindings != null && !mappingCallBindings.isEmpty(); + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGMappingCall(this); + } +} //CGMappingCallImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingImpl.java new file mode 100644 index 000000000..ea9c04a29 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGMappingImpl.java @@ -0,0 +1,414 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGTypedElementImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Mapping</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getTransformation <em>Transformation</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getGuardVariables <em>Guard Variables</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getPredicates <em>Predicates</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getRealizedVariables <em>Realized Variables</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getAssignments <em>Assignments</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingImpl#getMappingCalls <em>Mapping Calls</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGMappingImpl extends CGTypedElementImpl implements CGMapping { + /** + * The cached value of the '{@link #getGuardVariables() <em>Guard Variables</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getGuardVariables() + * @generated + * @ordered + */ + protected EList<CGGuardVariable> guardVariables; + + /** + * The cached value of the '{@link #getPredicates() <em>Predicates</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPredicates() + * @generated + * @ordered + */ + protected EList<CGPredicate> predicates; + + /** + * The cached value of the '{@link #getRealizedVariables() <em>Realized Variables</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRealizedVariables() + * @generated + * @ordered + */ + protected EList<CGRealizedVariable> realizedVariables; + + /** + * The cached value of the '{@link #getAssignments() <em>Assignments</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getAssignments() + * @generated + * @ordered + */ + protected EList<CGPropertyAssignment> assignments; + + /** + * The cached value of the '{@link #getMappingCalls() <em>Mapping Calls</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMappingCalls() + * @generated + * @ordered + */ + protected EList<CGMappingCall> mappingCalls; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGMappingImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_MAPPING; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGTransformation getTransformation() { + if (eContainerFeatureID() != QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION) return null; + return (CGTransformation)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetTransformation(CGTransformation newTransformation, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newTransformation, QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTransformation(CGTransformation newTransformation) { + if (newTransformation != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION && newTransformation != null)) { + if (EcoreUtil.isAncestor(this, newTransformation)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newTransformation != null) + msgs = ((InternalEObject)newTransformation).eInverseAdd(this, QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS, CGTransformation.class, msgs); + msgs = basicSetTransformation(newTransformation, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION, newTransformation, newTransformation)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<CGGuardVariable> getGuardVariables() { + if (guardVariables == null) { + guardVariables = new EObjectContainmentWithInverseEList<CGGuardVariable>(CGGuardVariable.class, this, QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES, QVTiCGModelPackage.CG_GUARD_VARIABLE__MAPPING); + } + return guardVariables; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<CGPredicate> getPredicates() { + if (predicates == null) { + predicates = new EObjectContainmentWithInverseEList<CGPredicate>(CGPredicate.class, this, QVTiCGModelPackage.CG_MAPPING__PREDICATES, QVTiCGModelPackage.CG_PREDICATE__MAPPING); + } + return predicates; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<CGMappingCall> getMappingCalls() { + if (mappingCalls == null) { + mappingCalls = new EObjectContainmentWithInverseEList<CGMappingCall>(CGMappingCall.class, this, QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS, QVTiCGModelPackage.CG_MAPPING_CALL__MAPPING); + } + return mappingCalls; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetTransformation((CGTransformation)otherEnd, msgs); + case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getGuardVariables()).basicAdd(otherEnd, msgs); + case QVTiCGModelPackage.CG_MAPPING__PREDICATES: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getPredicates()).basicAdd(otherEnd, msgs); + case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getRealizedVariables()).basicAdd(otherEnd, msgs); + case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getAssignments()).basicAdd(otherEnd, msgs); + case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getMappingCalls()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<CGRealizedVariable> getRealizedVariables() { + if (realizedVariables == null) { + realizedVariables = new EObjectContainmentWithInverseEList<CGRealizedVariable>(CGRealizedVariable.class, this, QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES, QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING); + } + return realizedVariables; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<CGPropertyAssignment> getAssignments() { + if (assignments == null) { + assignments = new EObjectContainmentWithInverseEList<CGPropertyAssignment>(CGPropertyAssignment.class, this, QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING); + } + return assignments; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION: + return basicSetTransformation(null, msgs); + case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES: + return ((InternalEList<?>)getGuardVariables()).basicRemove(otherEnd, msgs); + case QVTiCGModelPackage.CG_MAPPING__PREDICATES: + return ((InternalEList<?>)getPredicates()).basicRemove(otherEnd, msgs); + case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES: + return ((InternalEList<?>)getRealizedVariables()).basicRemove(otherEnd, msgs); + case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS: + return ((InternalEList<?>)getAssignments()).basicRemove(otherEnd, msgs); + case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS: + return ((InternalEList<?>)getMappingCalls()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION: + return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS, CGTransformation.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION: + return getTransformation(); + case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES: + return getGuardVariables(); + case QVTiCGModelPackage.CG_MAPPING__PREDICATES: + return getPredicates(); + case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES: + return getRealizedVariables(); + case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS: + return getAssignments(); + case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS: + return getMappingCalls(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION: + setTransformation((CGTransformation)newValue); + return; + case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES: + getGuardVariables().clear(); + getGuardVariables().addAll((Collection<? extends CGGuardVariable>)newValue); + return; + case QVTiCGModelPackage.CG_MAPPING__PREDICATES: + getPredicates().clear(); + getPredicates().addAll((Collection<? extends CGPredicate>)newValue); + return; + case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES: + getRealizedVariables().clear(); + getRealizedVariables().addAll((Collection<? extends CGRealizedVariable>)newValue); + return; + case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS: + getAssignments().clear(); + getAssignments().addAll((Collection<? extends CGPropertyAssignment>)newValue); + return; + case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS: + getMappingCalls().clear(); + getMappingCalls().addAll((Collection<? extends CGMappingCall>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION: + setTransformation((CGTransformation)null); + return; + case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES: + getGuardVariables().clear(); + return; + case QVTiCGModelPackage.CG_MAPPING__PREDICATES: + getPredicates().clear(); + return; + case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES: + getRealizedVariables().clear(); + return; + case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS: + getAssignments().clear(); + return; + case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS: + getMappingCalls().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION: + return getTransformation() != null; + case QVTiCGModelPackage.CG_MAPPING__GUARD_VARIABLES: + return guardVariables != null && !guardVariables.isEmpty(); + case QVTiCGModelPackage.CG_MAPPING__PREDICATES: + return predicates != null && !predicates.isEmpty(); + case QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES: + return realizedVariables != null && !realizedVariables.isEmpty(); + case QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS: + return assignments != null && !assignments.isEmpty(); + case QVTiCGModelPackage.CG_MAPPING__MAPPING_CALLS: + return mappingCalls != null && !mappingCalls.isEmpty(); + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGMapping(this); + } +} //CGMappingImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPredicateImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPredicateImpl.java new file mode 100644 index 000000000..faed630d4 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPredicateImpl.java @@ -0,0 +1,333 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl#getConditionExpression <em>Condition Expression</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGPredicateImpl extends CGValuedElementImpl implements CGPredicate { + /** + * The cached value of the '{@link #getConditionExpression() <em>Condition Expression</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getConditionExpression() + * @generated + * @ordered + */ + protected CGValuedElement conditionExpression; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGPredicateImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGMapping getMapping() { + if (eContainerFeatureID() != QVTiCGModelPackage.CG_PREDICATE__MAPPING) return null; + return (CGMapping)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_PREDICATE__MAPPING, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMapping(CGMapping newMapping) { + if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_PREDICATE__MAPPING && newMapping != null)) { + if (EcoreUtil.isAncestor(this, newMapping)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newMapping != null) + msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__PREDICATES, CGMapping.class, msgs); + msgs = basicSetMapping(newMapping, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PREDICATE__MAPPING, newMapping, newMapping)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGValuedElement getConditionExpression() { + return conditionExpression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetConditionExpression(CGValuedElement newConditionExpression, NotificationChain msgs) { + CGValuedElement oldConditionExpression = conditionExpression; + conditionExpression = newConditionExpression; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION, oldConditionExpression, newConditionExpression); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setConditionExpression(CGValuedElement newConditionExpression) { + if (newConditionExpression != conditionExpression) { + NotificationChain msgs = null; + if (conditionExpression != null) + msgs = ((InternalEObject)conditionExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION, null, msgs); + if (newConditionExpression != null) + msgs = ((InternalEObject)newConditionExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION, null, msgs); + msgs = basicSetConditionExpression(newConditionExpression, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION, newConditionExpression, newConditionExpression)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_PREDICATE__MAPPING: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetMapping((CGMapping)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_PREDICATE__MAPPING: + return basicSetMapping(null, msgs); + case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION: + return basicSetConditionExpression(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case QVTiCGModelPackage.CG_PREDICATE__MAPPING: + return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__PREDICATES, CGMapping.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_PREDICATE__MAPPING: + return getMapping(); + case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION: + return getConditionExpression(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_PREDICATE__MAPPING: + setMapping((CGMapping)newValue); + return; + case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION: + setConditionExpression((CGValuedElement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_PREDICATE__MAPPING: + setMapping((CGMapping)null); + return; + case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION: + setConditionExpression((CGValuedElement)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_PREDICATE__MAPPING: + return getMapping() != null; + case QVTiCGModelPackage.CG_PREDICATE__CONDITION_EXPRESSION: + return conditionExpression != null; + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGPredicate(this); + } + + @Override + public @NonNull CGValuedElement getReferredValuedElement() { + return this; + } + + @Override + public boolean isBoxed() { + return true; + } + + @Override + public boolean isCaught() { + return true; + } + + @Override + public boolean isFalse() { + return (conditionExpression != null) && conditionExpression.isConstant() && !conditionExpression.isTrue(); + } + + @Override + public boolean isGlobal() { + return false; + } + + @Override + public boolean isInvalid() { + return false; + } + + @Override + public boolean isNonInvalid() { + return true; + } + + @Override + public boolean isNonNull() { + return true; + } + + @Override + public boolean isNull() { + return false; + } + + @Override + public boolean isTrue() { + return (conditionExpression != null) && conditionExpression.isTrue(); + } + + @Override + public boolean isUnboxed() { + return true; + } +} //CGPredicateImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPropertyAssignmentImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPropertyAssignmentImpl.java new file mode 100644 index 000000000..397854ee1 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGPropertyAssignmentImpl.java @@ -0,0 +1,415 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.ocl.examples.pivot.Property; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Assignment</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl#getSlotValue <em>Slot Value</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl#getReferredProperty <em>Referred Property</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl#getInitValue <em>Init Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGPropertyAssignmentImpl extends CGValuedElementImpl implements CGPropertyAssignment { + /** + * The cached value of the '{@link #getSlotValue() <em>Slot Value</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSlotValue() + * @generated + * @ordered + */ + protected CGValuedElement slotValue; + /** + * The default value of the '{@link #getReferredProperty() <em>Referred Property</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getReferredProperty() + * @generated + * @ordered + */ + protected static final Property REFERRED_PROPERTY_EDEFAULT = null; + /** + * The cached value of the '{@link #getReferredProperty() <em>Referred Property</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getReferredProperty() + * @generated + * @ordered + */ + protected Property referredProperty = REFERRED_PROPERTY_EDEFAULT; + /** + * The cached value of the '{@link #getInitValue() <em>Init Value</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInitValue() + * @generated + * @ordered + */ + protected CGValuedElement initValue; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGPropertyAssignmentImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_PROPERTY_ASSIGNMENT; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGMapping getMapping() { + if (eContainerFeatureID() != QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING) return null; + return (CGMapping)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMapping(CGMapping newMapping) { + if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING && newMapping != null)) { + if (EcoreUtil.isAncestor(this, newMapping)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newMapping != null) + msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS, CGMapping.class, msgs); + msgs = basicSetMapping(newMapping, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING, newMapping, newMapping)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGValuedElement getSlotValue() { + return slotValue; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetSlotValue(CGValuedElement newSlotValue, NotificationChain msgs) { + CGValuedElement oldSlotValue = slotValue; + slotValue = newSlotValue; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE, oldSlotValue, newSlotValue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSlotValue(CGValuedElement newSlotValue) { + if (newSlotValue != slotValue) { + NotificationChain msgs = null; + if (slotValue != null) + msgs = ((InternalEObject)slotValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE, null, msgs); + if (newSlotValue != null) + msgs = ((InternalEObject)newSlotValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE, null, msgs); + msgs = basicSetSlotValue(newSlotValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE, newSlotValue, newSlotValue)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Property getReferredProperty() { + return referredProperty; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setReferredProperty(Property newReferredProperty) { + Property oldReferredProperty = referredProperty; + referredProperty = newReferredProperty; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY, oldReferredProperty, referredProperty)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGValuedElement getInitValue() { + return initValue; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetInitValue(CGValuedElement newInitValue, NotificationChain msgs) { + CGValuedElement oldInitValue = initValue; + initValue = newInitValue; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE, oldInitValue, newInitValue); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setInitValue(CGValuedElement newInitValue) { + if (newInitValue != initValue) { + NotificationChain msgs = null; + if (initValue != null) + msgs = ((InternalEObject)initValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE, null, msgs); + if (newInitValue != null) + msgs = ((InternalEObject)newInitValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE, null, msgs); + msgs = basicSetInitValue(newInitValue, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE, newInitValue, newInitValue)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetMapping((CGMapping)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING: + return basicSetMapping(null, msgs); + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE: + return basicSetSlotValue(null, msgs); + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE: + return basicSetInitValue(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING: + return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__ASSIGNMENTS, CGMapping.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING: + return getMapping(); + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE: + return getSlotValue(); + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY: + return getReferredProperty(); + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE: + return getInitValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING: + setMapping((CGMapping)newValue); + return; + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE: + setSlotValue((CGValuedElement)newValue); + return; + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY: + setReferredProperty((Property)newValue); + return; + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE: + setInitValue((CGValuedElement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING: + setMapping((CGMapping)null); + return; + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE: + setSlotValue((CGValuedElement)null); + return; + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY: + setReferredProperty(REFERRED_PROPERTY_EDEFAULT); + return; + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE: + setInitValue((CGValuedElement)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__MAPPING: + return getMapping() != null; + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__SLOT_VALUE: + return slotValue != null; + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY: + return REFERRED_PROPERTY_EDEFAULT == null ? referredProperty != null : !REFERRED_PROPERTY_EDEFAULT.equals(referredProperty); + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT__INIT_VALUE: + return initValue != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (referredProperty: "); + result.append(referredProperty); + result.append(')'); + return result.toString(); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGPropertyAssignment(this); + } + + @Override + public @NonNull CGValuedElement getReferredValuedElement() { + return initValue != null ? initValue : this; + } +} //CGAssignmentImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGRealizedVariableImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGRealizedVariableImpl.java new file mode 100644 index 000000000..f7bb62504 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGRealizedVariableImpl.java @@ -0,0 +1,270 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGVariableImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Realized Variable</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl#getMapping <em>Mapping</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl#getTypedModel <em>Typed Model</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGRealizedVariableImpl extends CGVariableImpl implements CGRealizedVariable { + /** + * The cached value of the '{@link #getTypedModel() <em>Typed Model</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedModel() + * @generated + * @ordered + */ + protected CGTypedModel typedModel; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGRealizedVariableImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_REALIZED_VARIABLE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGMapping getMapping() { + if (eContainerFeatureID() != QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING) return null; + return (CGMapping)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetMapping(CGMapping newMapping, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newMapping, QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMapping(CGMapping newMapping) { + if (newMapping != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING && newMapping != null)) { + if (EcoreUtil.isAncestor(this, newMapping)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newMapping != null) + msgs = ((InternalEObject)newMapping).eInverseAdd(this, QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES, CGMapping.class, msgs); + msgs = basicSetMapping(newMapping, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING, newMapping, newMapping)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGTypedModel getTypedModel() { + return typedModel; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedModel(CGTypedModel newTypedModel) { + CGTypedModel oldTypedModel = typedModel; + typedModel = newTypedModel; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL, oldTypedModel, typedModel)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetMapping((CGMapping)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING: + return basicSetMapping(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING: + return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_MAPPING__REALIZED_VARIABLES, CGMapping.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING: + return getMapping(); + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL: + return getTypedModel(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING: + setMapping((CGMapping)newValue); + return; + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL: + setTypedModel((CGTypedModel)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING: + setMapping((CGMapping)null); + return; + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL: + setTypedModel((CGTypedModel)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__MAPPING: + return getMapping() != null; + case QVTiCGModelPackage.CG_REALIZED_VARIABLE__TYPED_MODEL: + return typedModel != null; + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGRealizedVariable(this); + } + + @Override + public @NonNull CGValuedElement getReferredValuedElement() { + return this; + } + + @Override + public boolean isBoxed() { + return false; + } + + @Override + public boolean isUnboxed() { + return true; + } +} //CGRealizedVariableImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTransformationImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTransformationImpl.java new file mode 100644 index 000000000..27408de0f --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTransformationImpl.java @@ -0,0 +1,219 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGClassImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Transformation</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl#getMappings <em>Mappings</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl#getTypedModels <em>Typed Models</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGTransformationImpl extends CGClassImpl implements CGTransformation { + /** + * The cached value of the '{@link #getMappings() <em>Mappings</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMappings() + * @generated + * @ordered + */ + protected EList<CGMapping> mappings; + /** + * The cached value of the '{@link #getTypedModels() <em>Typed Models</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedModels() + * @generated + * @ordered + */ + protected EList<CGTypedModel> typedModels; + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGTransformationImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_TRANSFORMATION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<CGMapping> getMappings() { + if (mappings == null) { + mappings = new EObjectContainmentWithInverseEList<CGMapping>(CGMapping.class, this, QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS, QVTiCGModelPackage.CG_MAPPING__TRANSFORMATION); + } + return mappings; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<CGTypedModel> getTypedModels() { + if (typedModels == null) { + typedModels = new EObjectContainmentWithInverseEList<CGTypedModel>(CGTypedModel.class, this, QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS, QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION); + } + return typedModels; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getMappings()).basicAdd(otherEnd, msgs); + case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getTypedModels()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS: + return ((InternalEList<?>)getMappings()).basicRemove(otherEnd, msgs); + case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS: + return ((InternalEList<?>)getTypedModels()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS: + return getMappings(); + case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS: + return getTypedModels(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS: + getMappings().clear(); + getMappings().addAll((Collection<? extends CGMapping>)newValue); + return; + case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS: + getTypedModels().clear(); + getTypedModels().addAll((Collection<? extends CGTypedModel>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS: + getMappings().clear(); + return; + case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS: + getTypedModels().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_TRANSFORMATION__MAPPINGS: + return mappings != null && !mappings.isEmpty(); + case QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS: + return typedModels != null && !typedModels.isEmpty(); + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGTransformation(this); + } +} //CGTransformationImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTypedModelImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTypedModelImpl.java new file mode 100644 index 000000000..5e8dd607a --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGTypedModelImpl.java @@ -0,0 +1,268 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGNamedElementImpl; +import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>CG Typed Model</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl#getTransformation <em>Transformation</em>}</li> + * <li>{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTypedModelImpl#getModelIndex <em>Model Index</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CGTypedModelImpl extends CGNamedElementImpl implements CGTypedModel { + /** + * The default value of the '{@link #getModelIndex() <em>Model Index</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getModelIndex() + * @generated + * @ordered + */ + protected static final int MODEL_INDEX_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getModelIndex() <em>Model Index</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getModelIndex() + * @generated + * @ordered + */ + protected int modelIndex = MODEL_INDEX_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CGTypedModelImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return QVTiCGModelPackage.Literals.CG_TYPED_MODEL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CGTransformation getTransformation() { + if (eContainerFeatureID() != QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION) return null; + return (CGTransformation)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetTransformation(CGTransformation newTransformation, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newTransformation, QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTransformation(CGTransformation newTransformation) { + if (newTransformation != eInternalContainer() || (eContainerFeatureID() != QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION && newTransformation != null)) { + if (EcoreUtil.isAncestor(this, newTransformation)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newTransformation != null) + msgs = ((InternalEObject)newTransformation).eInverseAdd(this, QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS, CGTransformation.class, msgs); + msgs = basicSetTransformation(newTransformation, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION, newTransformation, newTransformation)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getModelIndex() { + return modelIndex; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setModelIndex(int newModelIndex) { + int oldModelIndex = modelIndex; + modelIndex = newModelIndex; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX, oldModelIndex, modelIndex)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetTransformation((CGTransformation)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION: + return basicSetTransformation(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION: + return eInternalContainer().eInverseRemove(this, QVTiCGModelPackage.CG_TRANSFORMATION__TYPED_MODELS, CGTransformation.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION: + return getTransformation(); + case QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX: + return getModelIndex(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION: + setTransformation((CGTransformation)newValue); + return; + case QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX: + setModelIndex((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION: + setTransformation((CGTransformation)null); + return; + case QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX: + setModelIndex(MODEL_INDEX_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case QVTiCGModelPackage.CG_TYPED_MODEL__TRANSFORMATION: + return getTransformation() != null; + case QVTiCGModelPackage.CG_TYPED_MODEL__MODEL_INDEX: + return modelIndex != MODEL_INDEX_EDEFAULT; + } + return super.eIsSet(featureID); + } + + @Override + public <R> R accept(@NonNull CGModelVisitor<R> visitor) { + return ((QVTiCGModelVisitor<R>)visitor).visitCGTypedModel(this); + } + + @Override + public String toString() { + return super.toString(); + } +} //CGTypedModelImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java new file mode 100644 index 000000000..9680701ea --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java @@ -0,0 +1,249 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.qvtd.codegen.qvticgmodel.*; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class QVTiCGModelFactoryImpl extends EFactoryImpl implements QVTiCGModelFactory { + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static @NonNull QVTiCGModelFactory init() { + try { + QVTiCGModelFactory theQVTiCGModelFactory = (QVTiCGModelFactory)EPackage.Registry.INSTANCE.getEFactory(QVTiCGModelPackage.eNS_URI); + if (theQVTiCGModelFactory != null) { + return theQVTiCGModelFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new QVTiCGModelFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public QVTiCGModelFactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT: return createCGEcorePropertyAssignment(); + case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE: return createCGEcoreRealizedVariable(); + case QVTiCGModelPackage.CG_FUNCTION: return createCGFunction(); + case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP: return createCGFunctionCallExp(); + case QVTiCGModelPackage.CG_FUNCTION_PARAMETER: return createCGFunctionParameter(); + case QVTiCGModelPackage.CG_GUARD_VARIABLE: return createCGGuardVariable(); + case QVTiCGModelPackage.CG_MAPPING: return createCGMapping(); + case QVTiCGModelPackage.CG_MAPPING_CALL: return createCGMappingCall(); + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING: return createCGMappingCallBinding(); + case QVTiCGModelPackage.CG_PREDICATE: return createCGPredicate(); + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT: return createCGPropertyAssignment(); + case QVTiCGModelPackage.CG_REALIZED_VARIABLE: return createCGRealizedVariable(); + case QVTiCGModelPackage.CG_TRANSFORMATION: return createCGTransformation(); + case QVTiCGModelPackage.CG_TYPED_MODEL: return createCGTypedModel(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGEcorePropertyAssignment createCGEcorePropertyAssignment() { + CGEcorePropertyAssignmentImpl cgEcorePropertyAssignment = new CGEcorePropertyAssignmentImpl(); + return cgEcorePropertyAssignment; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGEcoreRealizedVariable createCGEcoreRealizedVariable() { + CGEcoreRealizedVariableImpl cgEcoreRealizedVariable = new CGEcoreRealizedVariableImpl(); + return cgEcoreRealizedVariable; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGFunction createCGFunction() { + CGFunctionImpl cgFunction = new CGFunctionImpl(); + return cgFunction; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGFunctionCallExp createCGFunctionCallExp() { + CGFunctionCallExpImpl cgFunctionCallExp = new CGFunctionCallExpImpl(); + return cgFunctionCallExp; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGFunctionParameter createCGFunctionParameter() { + CGFunctionParameterImpl cgFunctionParameter = new CGFunctionParameterImpl(); + return cgFunctionParameter; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGGuardVariable createCGGuardVariable() { + CGGuardVariableImpl cgGuardVariable = new CGGuardVariableImpl(); + return cgGuardVariable; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGPropertyAssignment createCGPropertyAssignment() { + CGPropertyAssignmentImpl cgPropertyAssignment = new CGPropertyAssignmentImpl(); + return cgPropertyAssignment; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGMapping createCGMapping() { + CGMappingImpl cgMapping = new CGMappingImpl(); + return cgMapping; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGTransformation createCGTransformation() { + CGTransformationImpl cgTransformation = new CGTransformationImpl(); + return cgTransformation; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGTypedModel createCGTypedModel() { + CGTypedModelImpl cgTypedModel = new CGTypedModelImpl(); + return cgTypedModel; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGMappingCall createCGMappingCall() { + CGMappingCallImpl cgMappingCall = new CGMappingCallImpl(); + return cgMappingCall; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGMappingCallBinding createCGMappingCallBinding() { + CGMappingCallBindingImpl cgMappingCallBinding = new CGMappingCallBindingImpl(); + return cgMappingCallBinding; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGPredicate createCGPredicate() { + CGPredicateImpl cgPredicate = new CGPredicateImpl(); + return cgPredicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public @NonNull CGRealizedVariable createCGRealizedVariable() { + CGRealizedVariableImpl cgRealizedVariable = new CGRealizedVariableImpl(); + return cgRealizedVariable; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("null") + public @NonNull QVTiCGModelPackage getQVTiCGModelPackage() { + return (QVTiCGModelPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static @NonNull QVTiCGModelPackage getPackage() { + return QVTiCGModelPackage.eINSTANCE; + } + +} //QVTiCGmodelFactoryImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java new file mode 100644 index 000000000..d34f74b3c --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java @@ -0,0 +1,802 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGModelPackage; + +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelFactory; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class QVTiCGModelPackageImpl extends EPackageImpl implements QVTiCGModelPackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgEcorePropertyAssignmentEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgEcoreRealizedVariableEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgFunctionEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgFunctionCallExpEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgFunctionParameterEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgGuardVariableEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgPropertyAssignmentEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgMappingEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgTransformationEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgTypedModelEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgMappingCallEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgMappingCallBindingEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgPredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass cgRealizedVariableEClass = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#eNS_URI + * @see #init() + * @generated + */ + private QVTiCGModelPackageImpl() { + super(eNS_URI, QVTiCGModelFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link QVTiCGModelPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static QVTiCGModelPackage init() { + if (isInited) return (QVTiCGModelPackage)EPackage.Registry.INSTANCE.getEPackage(QVTiCGModelPackage.eNS_URI); + + // Obtain or create and register package + QVTiCGModelPackageImpl theQVTiCGModelPackage = (QVTiCGModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof QVTiCGModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new QVTiCGModelPackageImpl()); + + isInited = true; + + // Initialize simple dependencies + CGModelPackage.eINSTANCE.eClass(); + + // Create package meta-data objects + theQVTiCGModelPackage.createPackageContents(); + + // Initialize created meta-data + theQVTiCGModelPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theQVTiCGModelPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(QVTiCGModelPackage.eNS_URI, theQVTiCGModelPackage); + return theQVTiCGModelPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGEcorePropertyAssignment() { + return cgEcorePropertyAssignmentEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGEcorePropertyAssignment_EStructuralFeature() { + return (EReference)cgEcorePropertyAssignmentEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGEcoreRealizedVariable() { + return cgEcoreRealizedVariableEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGEcoreRealizedVariable_EClassifier() { + return (EReference)cgEcoreRealizedVariableEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGFunction() { + return cgFunctionEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGFunctionCallExp() { + return cgFunctionCallExpEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGFunctionCallExp_Function() { + return (EReference)cgFunctionCallExpEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGFunctionParameter() { + return cgFunctionParameterEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGFunctionParameter_Function() { + return (EReference)cgFunctionParameterEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGGuardVariable() { + return cgGuardVariableEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGGuardVariable_Mapping() { + return (EReference)cgGuardVariableEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGGuardVariable_TypedModel() { + return (EReference)cgGuardVariableEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGPropertyAssignment() { + return cgPropertyAssignmentEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGPropertyAssignment_Mapping() { + return (EReference)cgPropertyAssignmentEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGPropertyAssignment_SlotValue() { + return (EReference)cgPropertyAssignmentEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getCGPropertyAssignment_ReferredProperty() { + return (EAttribute)cgPropertyAssignmentEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGPropertyAssignment_InitValue() { + return (EReference)cgPropertyAssignmentEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGMapping() { + return cgMappingEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGMapping_Transformation() { + return (EReference)cgMappingEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGMapping_GuardVariables() { + return (EReference)cgMappingEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGMapping_Predicates() { + return (EReference)cgMappingEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGMapping_MappingCalls() { + return (EReference)cgMappingEClass.getEStructuralFeatures().get(5); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGMapping_RealizedVariables() { + return (EReference)cgMappingEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGMapping_Assignments() { + return (EReference)cgMappingEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGTransformation() { + return cgTransformationEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGTransformation_Mappings() { + return (EReference)cgTransformationEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGTransformation_TypedModels() { + return (EReference)cgTransformationEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGTypedModel() { + return cgTypedModelEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGTypedModel_Transformation() { + return (EReference)cgTypedModelEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getCGTypedModel_ModelIndex() { + return (EAttribute)cgTypedModelEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGMappingCall() { + return cgMappingCallEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGMappingCall_Mapping() { + return (EReference)cgMappingCallEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGMappingCall_MappingCallBindings() { + return (EReference)cgMappingCallEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGMappingCallBinding() { + return cgMappingCallBindingEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGMappingCallBinding_ValueOrValues() { + return (EReference)cgMappingCallBindingEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getCGMappingCallBinding_Loop() { + return (EAttribute)cgMappingCallBindingEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGPredicate() { + return cgPredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGPredicate_Mapping() { + return (EReference)cgPredicateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGPredicate_ConditionExpression() { + return (EReference)cgPredicateEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCGRealizedVariable() { + return cgRealizedVariableEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGRealizedVariable_Mapping() { + return (EReference)cgRealizedVariableEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getCGRealizedVariable_TypedModel() { + return (EReference)cgRealizedVariableEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public QVTiCGModelFactory getQVTiCGModelFactory() { + return (QVTiCGModelFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + cgEcorePropertyAssignmentEClass = createEClass(CG_ECORE_PROPERTY_ASSIGNMENT); + createEReference(cgEcorePropertyAssignmentEClass, CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE); + + cgEcoreRealizedVariableEClass = createEClass(CG_ECORE_REALIZED_VARIABLE); + createEReference(cgEcoreRealizedVariableEClass, CG_ECORE_REALIZED_VARIABLE__ECLASSIFIER); + + cgFunctionEClass = createEClass(CG_FUNCTION); + + cgFunctionCallExpEClass = createEClass(CG_FUNCTION_CALL_EXP); + createEReference(cgFunctionCallExpEClass, CG_FUNCTION_CALL_EXP__FUNCTION); + + cgFunctionParameterEClass = createEClass(CG_FUNCTION_PARAMETER); + createEReference(cgFunctionParameterEClass, CG_FUNCTION_PARAMETER__FUNCTION); + + cgGuardVariableEClass = createEClass(CG_GUARD_VARIABLE); + createEReference(cgGuardVariableEClass, CG_GUARD_VARIABLE__MAPPING); + createEReference(cgGuardVariableEClass, CG_GUARD_VARIABLE__TYPED_MODEL); + + cgMappingEClass = createEClass(CG_MAPPING); + createEReference(cgMappingEClass, CG_MAPPING__TRANSFORMATION); + createEReference(cgMappingEClass, CG_MAPPING__GUARD_VARIABLES); + createEReference(cgMappingEClass, CG_MAPPING__PREDICATES); + createEReference(cgMappingEClass, CG_MAPPING__REALIZED_VARIABLES); + createEReference(cgMappingEClass, CG_MAPPING__ASSIGNMENTS); + createEReference(cgMappingEClass, CG_MAPPING__MAPPING_CALLS); + + cgMappingCallEClass = createEClass(CG_MAPPING_CALL); + createEReference(cgMappingCallEClass, CG_MAPPING_CALL__MAPPING); + createEReference(cgMappingCallEClass, CG_MAPPING_CALL__MAPPING_CALL_BINDINGS); + + cgMappingCallBindingEClass = createEClass(CG_MAPPING_CALL_BINDING); + createEReference(cgMappingCallBindingEClass, CG_MAPPING_CALL_BINDING__VALUE_OR_VALUES); + createEAttribute(cgMappingCallBindingEClass, CG_MAPPING_CALL_BINDING__LOOP); + + cgPredicateEClass = createEClass(CG_PREDICATE); + createEReference(cgPredicateEClass, CG_PREDICATE__MAPPING); + createEReference(cgPredicateEClass, CG_PREDICATE__CONDITION_EXPRESSION); + + cgPropertyAssignmentEClass = createEClass(CG_PROPERTY_ASSIGNMENT); + createEReference(cgPropertyAssignmentEClass, CG_PROPERTY_ASSIGNMENT__MAPPING); + createEReference(cgPropertyAssignmentEClass, CG_PROPERTY_ASSIGNMENT__SLOT_VALUE); + createEAttribute(cgPropertyAssignmentEClass, CG_PROPERTY_ASSIGNMENT__REFERRED_PROPERTY); + createEReference(cgPropertyAssignmentEClass, CG_PROPERTY_ASSIGNMENT__INIT_VALUE); + + cgRealizedVariableEClass = createEClass(CG_REALIZED_VARIABLE); + createEReference(cgRealizedVariableEClass, CG_REALIZED_VARIABLE__MAPPING); + createEReference(cgRealizedVariableEClass, CG_REALIZED_VARIABLE__TYPED_MODEL); + + cgTransformationEClass = createEClass(CG_TRANSFORMATION); + createEReference(cgTransformationEClass, CG_TRANSFORMATION__MAPPINGS); + createEReference(cgTransformationEClass, CG_TRANSFORMATION__TYPED_MODELS); + + cgTypedModelEClass = createEClass(CG_TYPED_MODEL); + createEReference(cgTypedModelEClass, CG_TYPED_MODEL__TRANSFORMATION); + createEAttribute(cgTypedModelEClass, CG_TYPED_MODEL__MODEL_INDEX); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + CGModelPackage theCGModelPackage = (CGModelPackage)EPackage.Registry.INSTANCE.getEPackage(CGModelPackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + cgEcorePropertyAssignmentEClass.getESuperTypes().add(this.getCGPropertyAssignment()); + cgEcoreRealizedVariableEClass.getESuperTypes().add(this.getCGRealizedVariable()); + cgFunctionEClass.getESuperTypes().add(theCGModelPackage.getCGOperation()); + cgFunctionCallExpEClass.getESuperTypes().add(theCGModelPackage.getCGOperationCallExp()); + cgFunctionParameterEClass.getESuperTypes().add(theCGModelPackage.getCGParameter()); + cgGuardVariableEClass.getESuperTypes().add(theCGModelPackage.getCGParameter()); + cgMappingEClass.getESuperTypes().add(theCGModelPackage.getCGTypedElement()); + cgMappingCallEClass.getESuperTypes().add(theCGModelPackage.getCGValuedElement()); + cgMappingCallBindingEClass.getESuperTypes().add(theCGModelPackage.getCGValuedElement()); + cgPredicateEClass.getESuperTypes().add(theCGModelPackage.getCGValuedElement()); + cgPropertyAssignmentEClass.getESuperTypes().add(theCGModelPackage.getCGValuedElement()); + cgRealizedVariableEClass.getESuperTypes().add(theCGModelPackage.getCGVariable()); + cgTransformationEClass.getESuperTypes().add(theCGModelPackage.getCGClass()); + cgTypedModelEClass.getESuperTypes().add(theCGModelPackage.getCGNamedElement()); + + // Initialize classes, features, and operations; add parameters + initEClass(cgEcorePropertyAssignmentEClass, CGEcorePropertyAssignment.class, "CGEcorePropertyAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGEcorePropertyAssignment_EStructuralFeature(), ecorePackage.getEStructuralFeature(), null, "eStructuralFeature", null, 1, 1, CGEcorePropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgEcoreRealizedVariableEClass, CGEcoreRealizedVariable.class, "CGEcoreRealizedVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGEcoreRealizedVariable_EClassifier(), ecorePackage.getEClassifier(), null, "eClassifier", null, 1, 1, CGEcoreRealizedVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgFunctionEClass, CGFunction.class, "CGFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(cgFunctionCallExpEClass, CGFunctionCallExp.class, "CGFunctionCallExp", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGFunctionCallExp_Function(), this.getCGFunction(), null, "function", null, 1, 1, CGFunctionCallExp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgFunctionParameterEClass, CGFunctionParameter.class, "CGFunctionParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGFunctionParameter_Function(), this.getCGFunction(), null, "function", null, 1, 1, CGFunctionParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgGuardVariableEClass, CGGuardVariable.class, "CGGuardVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGGuardVariable_Mapping(), this.getCGMapping(), this.getCGMapping_GuardVariables(), "mapping", null, 1, 1, CGGuardVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGGuardVariable_TypedModel(), this.getCGTypedModel(), null, "typedModel", null, 1, 1, CGGuardVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgMappingEClass, CGMapping.class, "CGMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGMapping_Transformation(), this.getCGTransformation(), this.getCGTransformation_Mappings(), "transformation", null, 1, 1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGMapping_GuardVariables(), this.getCGGuardVariable(), this.getCGGuardVariable_Mapping(), "guardVariables", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getCGMapping_Predicates(), this.getCGPredicate(), this.getCGPredicate_Mapping(), "predicates", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGMapping_RealizedVariables(), this.getCGRealizedVariable(), this.getCGRealizedVariable_Mapping(), "realizedVariables", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGMapping_Assignments(), this.getCGPropertyAssignment(), this.getCGPropertyAssignment_Mapping(), "assignments", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGMapping_MappingCalls(), this.getCGMappingCall(), this.getCGMappingCall_Mapping(), "mappingCalls", null, 0, -1, CGMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgMappingCallEClass, CGMappingCall.class, "CGMappingCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGMappingCall_Mapping(), this.getCGMapping(), this.getCGMapping_MappingCalls(), "mapping", null, 1, 1, CGMappingCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGMappingCall_MappingCallBindings(), this.getCGMappingCallBinding(), null, "mappingCallBindings", null, 0, -1, CGMappingCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgMappingCallBindingEClass, CGMappingCallBinding.class, "CGMappingCallBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGMappingCallBinding_ValueOrValues(), theCGModelPackage.getCGValuedElement(), null, "valueOrValues", null, 1, 1, CGMappingCallBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getCGMappingCallBinding_Loop(), ecorePackage.getEBoolean(), "loop", "false", 1, 1, CGMappingCallBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgPredicateEClass, CGPredicate.class, "CGPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGPredicate_Mapping(), this.getCGMapping(), this.getCGMapping_Predicates(), "mapping", null, 1, 1, CGPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGPredicate_ConditionExpression(), theCGModelPackage.getCGValuedElement(), null, "conditionExpression", null, 1, 1, CGPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgPropertyAssignmentEClass, CGPropertyAssignment.class, "CGPropertyAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGPropertyAssignment_Mapping(), this.getCGMapping(), this.getCGMapping_Assignments(), "mapping", null, 1, 1, CGPropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGPropertyAssignment_SlotValue(), theCGModelPackage.getCGValuedElement(), null, "slotValue", null, 1, 1, CGPropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getCGPropertyAssignment_ReferredProperty(), theCGModelPackage.getProperty(), "referredProperty", null, 1, 1, CGPropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGPropertyAssignment_InitValue(), theCGModelPackage.getCGValuedElement(), null, "initValue", null, 1, 1, CGPropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgRealizedVariableEClass, CGRealizedVariable.class, "CGRealizedVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGRealizedVariable_Mapping(), this.getCGMapping(), this.getCGMapping_RealizedVariables(), "mapping", null, 1, 1, CGRealizedVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGRealizedVariable_TypedModel(), this.getCGTypedModel(), null, "typedModel", null, 1, 1, CGRealizedVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgTransformationEClass, CGTransformation.class, "CGTransformation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGTransformation_Mappings(), this.getCGMapping(), this.getCGMapping_Transformation(), "mappings", null, 1, -1, CGTransformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCGTransformation_TypedModels(), this.getCGTypedModel(), this.getCGTypedModel_Transformation(), "typedModels", null, 0, -1, CGTransformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(cgTypedModelEClass, CGTypedModel.class, "CGTypedModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCGTypedModel_Transformation(), this.getCGTransformation(), this.getCGTransformation_TypedModels(), "transformation", null, 1, 1, CGTypedModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getCGTypedModel_ModelIndex(), ecorePackage.getEInt(), "modelIndex", null, 0, 1, CGTypedModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + + // Create annotations + // http://www.eclipse.org/OCL/Import + createImportAnnotations(); + } + + /** + * Initializes the annotations for <b>http://www.eclipse.org/OCL/Import</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void createImportAnnotations() { + String source = "http://www.eclipse.org/OCL/Import"; + addAnnotation + (this, + source, + new String[] { + "ecore", "http://www.eclipse.org/emf/2002/Ecore#/" + }); + } + +} //QVTiCGmodelPackageImpl diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java new file mode 100644 index 000000000..8655ae12c --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java @@ -0,0 +1,120 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + * + * This code is auto-generated + * from: model/qvticgmodel.genmodel + * by: org.eclipse.ocl.examples.build.acceleo.GenerateVisitor + * defined by: org.eclipse.ocl.examples.build.acceleo.generateVisitors.mtl + * invoked by: org.eclipse.ocl.examples.build.utilities.* + * from: org.eclipse.ocl.examples.build.*.mwe2 + * + * Do not edit it. + * + * $Id$ + */ +package org.eclipse.qvtd.codegen.qvticgmodel.util; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; + +/** + * An AbstractExtendingQVTiCGModelVisitor provides a default implementation for each + * visitXxx method that delegates to the visitYyy method of the first + * super class, (or transitively its first super class first super class + * until a non-interface super-class is found). In the absence of any + * suitable first super class, the method delegates to visiting(). + */ +public abstract class AbstractExtendingQVTiCGModelVisitor<R, C> + extends org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractExtendingCGModelVisitor<R, C> + implements QVTiCGModelVisitor<R> +{ + /** + * Initializes me with an initial value for my result. + * + * @param context my initial result value + */ + protected AbstractExtendingQVTiCGModelVisitor(@NonNull C context) { + super(context); + } + + @Override + public @Nullable R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object) { + return visitCGPropertyAssignment(object); + } + + @Override + public @Nullable R visitCGEcoreRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable object) { + return visitCGRealizedVariable(object); + } + + @Override + public @Nullable R visitCGFunction(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunction object) { + return visitCGOperation(object); + } + + @Override + public @Nullable R visitCGFunctionCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp object) { + return visitCGOperationCallExp(object); + } + + @Override + public @Nullable R visitCGFunctionParameter(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter object) { + return visitCGParameter(object); + } + + @Override + public @Nullable R visitCGGuardVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable object) { + return visitCGParameter(object); + } + + @Override + public @Nullable R visitCGMapping(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMapping object) { + return visitCGTypedElement(object); + } + + @Override + public @Nullable R visitCGMappingCall(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall object) { + return visitCGValuedElement(object); + } + + @Override + public @Nullable R visitCGMappingCallBinding(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding object) { + return visitCGValuedElement(object); + } + + @Override + public @Nullable R visitCGPredicate(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate object) { + return visitCGValuedElement(object); + } + + @Override + public @Nullable R visitCGPropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment object) { + return visitCGValuedElement(object); + } + + @Override + public @Nullable R visitCGRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable object) { + return visitCGVariable(object); + } + + @Override + public @Nullable R visitCGTransformation(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation object) { + return visitCGClass(object); + } + + @Override + public @Nullable R visitCGTypedModel(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel object) { + return visitCGNamedElement(object); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java new file mode 100644 index 000000000..b1ae6a1fb --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java @@ -0,0 +1,102 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + * + * This code is auto-generated + * from: model/qvticgmodel.genmodel + * by: org.eclipse.ocl.examples.build.acceleo.GenerateVisitor + * defined by: org.eclipse.ocl.examples.build.acceleo.generateVisitors.mtl + * invoked by: org.eclipse.ocl.examples.build.utilities.* + * from: org.eclipse.ocl.examples.build.*.mwe2 + * + * Do not edit it. + * + * $Id$ + */ +package org.eclipse.qvtd.codegen.qvticgmodel.util; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; + +/** + * An AbstractNullQVTiCGModelVisitor provides a default implementation for each + * visitXxx method that returns null. + */ +public abstract class AbstractNullQVTiCGModelVisitor<R, C> + extends org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractNullCGModelVisitor<R, C> implements QVTiCGModelVisitor<R> +{ + /** + * Initializes me with an initial value for my result. + * + * @param context my initial result value + */ + protected AbstractNullQVTiCGModelVisitor(@NonNull C context) { + super(context); + } + + public @Nullable R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object) { + return null; + } + + public @Nullable R visitCGEcoreRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable object) { + return null; + } + + public @Nullable R visitCGFunction(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunction object) { + return null; + } + + public @Nullable R visitCGFunctionCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp object) { + return null; + } + + public @Nullable R visitCGFunctionParameter(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter object) { + return null; + } + + public @Nullable R visitCGGuardVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable object) { + return null; + } + + public @Nullable R visitCGMapping(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMapping object) { + return null; + } + + public @Nullable R visitCGMappingCall(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall object) { + return null; + } + + public @Nullable R visitCGMappingCallBinding(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding object) { + return null; + } + + public @Nullable R visitCGPredicate(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate object) { + return null; + } + + public @Nullable R visitCGPropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment object) { + return null; + } + + public @Nullable R visitCGRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable object) { + return null; + } + + public @Nullable R visitCGTransformation(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation object) { + return null; + } + + public @Nullable R visitCGTypedModel(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel object) { + return null; + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractQVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractQVTiCGModelVisitor.java new file mode 100644 index 000000000..6718b61ac --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractQVTiCGModelVisitor.java @@ -0,0 +1,44 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + * + * This code is auto-generated + * from: model/qvticgmodel.genmodel + * by: org.eclipse.ocl.examples.build.acceleo.GenerateVisitor + * defined by: org.eclipse.ocl.examples.build.acceleo.generateVisitors.mtl + * invoked by: org.eclipse.ocl.examples.build.utilities.* + * from: org.eclipse.ocl.examples.build.*.mwe2 + * + * Do not edit it. + * + * $Id$ + */ +package org.eclipse.qvtd.codegen.qvticgmodel.util; + +import org.eclipse.jdt.annotation.NonNull; + +/** + */ +public abstract class AbstractQVTiCGModelVisitor<R, C> + extends org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractCGModelVisitor<R, C> + implements QVTiCGModelVisitor<R> +{ + /** + * Initializes me with an initial value for my result. + * + * @param context my initial result value + */ + protected AbstractQVTiCGModelVisitor(@NonNull C context) { + super(context); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java new file mode 100644 index 000000000..87500e31f --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java @@ -0,0 +1,577 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGCallExp; +import org.eclipse.ocl.examples.codegen.cgmodel.CGClass; +import org.eclipse.ocl.examples.codegen.cgmodel.CGElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation; +import org.eclipse.ocl.examples.codegen.cgmodel.CGOperationCallExp; +import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter; +import org.eclipse.ocl.examples.codegen.cgmodel.CGTypedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable; + +import org.eclipse.ocl.examples.domain.elements.Nameable; + +import org.eclipse.qvtd.codegen.qvticgmodel.*; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage + * @generated + */ +public class QVTiCGModelAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static QVTiCGModelPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public QVTiCGModelAdapterFactory() { + if (modelPackage == null) { + modelPackage = QVTiCGModelPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected QVTiCGModelSwitch<Adapter> modelSwitch = + new QVTiCGModelSwitch<Adapter>() { + @Override + public Adapter caseCGEcorePropertyAssignment(CGEcorePropertyAssignment object) { + return createCGEcorePropertyAssignmentAdapter(); + } + @Override + public Adapter caseCGEcoreRealizedVariable(CGEcoreRealizedVariable object) { + return createCGEcoreRealizedVariableAdapter(); + } + @Override + public Adapter caseCGFunction(CGFunction object) { + return createCGFunctionAdapter(); + } + @Override + public Adapter caseCGFunctionCallExp(CGFunctionCallExp object) { + return createCGFunctionCallExpAdapter(); + } + @Override + public Adapter caseCGFunctionParameter(CGFunctionParameter object) { + return createCGFunctionParameterAdapter(); + } + @Override + public Adapter caseCGGuardVariable(CGGuardVariable object) { + return createCGGuardVariableAdapter(); + } + @Override + public Adapter caseCGMapping(CGMapping object) { + return createCGMappingAdapter(); + } + @Override + public Adapter caseCGMappingCall(CGMappingCall object) { + return createCGMappingCallAdapter(); + } + @Override + public Adapter caseCGMappingCallBinding(CGMappingCallBinding object) { + return createCGMappingCallBindingAdapter(); + } + @Override + public Adapter caseCGPredicate(CGPredicate object) { + return createCGPredicateAdapter(); + } + @Override + public Adapter caseCGPropertyAssignment(CGPropertyAssignment object) { + return createCGPropertyAssignmentAdapter(); + } + @Override + public Adapter caseCGRealizedVariable(CGRealizedVariable object) { + return createCGRealizedVariableAdapter(); + } + @Override + public Adapter caseCGTransformation(CGTransformation object) { + return createCGTransformationAdapter(); + } + @Override + public Adapter caseCGTypedModel(CGTypedModel object) { + return createCGTypedModelAdapter(); + } + @Override + public Adapter caseCGElement(CGElement object) { + return createCGElementAdapter(); + } + @Override + public Adapter caseNameable(Nameable object) { + return createNameableAdapter(); + } + @Override + public Adapter caseCGNamedElement(CGNamedElement object) { + return createCGNamedElementAdapter(); + } + @Override + public Adapter caseCGTypedElement(CGTypedElement object) { + return createCGTypedElementAdapter(); + } + @Override + public Adapter caseCGValuedElement(CGValuedElement object) { + return createCGValuedElementAdapter(); + } + @Override + public Adapter caseCGVariable(CGVariable object) { + return createCGVariableAdapter(); + } + @Override + public Adapter caseCGOperation(CGOperation object) { + return createCGOperationAdapter(); + } + @Override + public Adapter caseCGCallExp(CGCallExp object) { + return createCGCallExpAdapter(); + } + @Override + public Adapter caseCGOperationCallExp(CGOperationCallExp object) { + return createCGOperationCallExpAdapter(); + } + @Override + public Adapter caseCGParameter(CGParameter object) { + return createCGParameterAdapter(); + } + @Override + public Adapter caseCGClass(CGClass object) { + return createCGClassAdapter(); + } + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment <em>CG Ecore Property Assignment</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment + * @generated + */ + public Adapter createCGEcorePropertyAssignmentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable <em>CG Ecore Realized Variable</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable + * @generated + */ + public Adapter createCGEcoreRealizedVariableAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunction <em>CG Function</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunction + * @generated + */ + public Adapter createCGFunctionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp <em>CG Function Call Exp</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp + * @generated + */ + public Adapter createCGFunctionCallExpAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter <em>CG Function Parameter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter + * @generated + */ + public Adapter createCGFunctionParameterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable <em>CG Guard Variable</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable + * @generated + */ + public Adapter createCGGuardVariableAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment <em>CG Property Assignment</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment + * @generated + */ + public Adapter createCGPropertyAssignmentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMapping <em>CG Mapping</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMapping + * @generated + */ + public Adapter createCGMappingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation <em>CG Transformation</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation + * @generated + */ + public Adapter createCGTransformationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel <em>CG Typed Model</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel + * @generated + */ + public Adapter createCGTypedModelAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall <em>CG Mapping Call</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall + * @generated + */ + public Adapter createCGMappingCallAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding <em>CG Mapping Call Binding</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding + * @generated + */ + public Adapter createCGMappingCallBindingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate <em>CG Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate + * @generated + */ + public Adapter createCGPredicateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable <em>CG Realized Variable</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable + * @generated + */ + public Adapter createCGRealizedVariableAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGElement <em>CG Element</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGElement + * @generated + */ + public Adapter createCGElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.domain.elements.Nameable <em>Nameable</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.domain.elements.Nameable + * @generated + */ + public Adapter createNameableAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement <em>CG Named Element</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement + * @generated + */ + public Adapter createCGNamedElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGTypedElement <em>CG Typed Element</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGTypedElement + * @generated + */ + public Adapter createCGTypedElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement <em>CG Valued Element</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement + * @generated + */ + public Adapter createCGValuedElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGOperation <em>CG Operation</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGOperation + * @generated + */ + public Adapter createCGOperationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGCallExp <em>CG Call Exp</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGCallExp + * @generated + */ + public Adapter createCGCallExpAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGOperationCallExp <em>CG Operation Call Exp</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGOperationCallExp + * @generated + */ + public Adapter createCGOperationCallExpAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGParameter <em>CG Parameter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGParameter + * @generated + */ + public Adapter createCGParameterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGClass <em>CG Class</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGClass + * @generated + */ + public Adapter createCGClassAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGVariable <em>CG Variable</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.ocl.examples.codegen.cgmodel.CGVariable + * @generated + */ + public Adapter createCGVariableAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //QVTiCGModelAdapterFactory diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java new file mode 100644 index 000000000..0620f0f78 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java @@ -0,0 +1,649 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvticgmodel.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +import org.eclipse.ocl.examples.codegen.cgmodel.CGCallExp; +import org.eclipse.ocl.examples.codegen.cgmodel.CGClass; +import org.eclipse.ocl.examples.codegen.cgmodel.CGElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation; +import org.eclipse.ocl.examples.codegen.cgmodel.CGOperationCallExp; +import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter; +import org.eclipse.ocl.examples.codegen.cgmodel.CGTypedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable; + +import org.eclipse.ocl.examples.domain.elements.Nameable; + +import org.eclipse.qvtd.codegen.qvticgmodel.*; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage + * @generated + */ +public class QVTiCGModelSwitch<T> extends Switch<T> { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static QVTiCGModelPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public QVTiCGModelSwitch() { + if (modelPackage == null) { + modelPackage = QVTiCGModelPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @parameter ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT: { + CGEcorePropertyAssignment cgEcorePropertyAssignment = (CGEcorePropertyAssignment)theEObject; + T result = caseCGEcorePropertyAssignment(cgEcorePropertyAssignment); + if (result == null) result = caseCGPropertyAssignment(cgEcorePropertyAssignment); + if (result == null) result = caseCGValuedElement(cgEcorePropertyAssignment); + if (result == null) result = caseCGTypedElement(cgEcorePropertyAssignment); + if (result == null) result = caseCGNamedElement(cgEcorePropertyAssignment); + if (result == null) result = caseCGElement(cgEcorePropertyAssignment); + if (result == null) result = caseNameable(cgEcorePropertyAssignment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE: { + CGEcoreRealizedVariable cgEcoreRealizedVariable = (CGEcoreRealizedVariable)theEObject; + T result = caseCGEcoreRealizedVariable(cgEcoreRealizedVariable); + if (result == null) result = caseCGRealizedVariable(cgEcoreRealizedVariable); + if (result == null) result = caseCGVariable(cgEcoreRealizedVariable); + if (result == null) result = caseCGValuedElement(cgEcoreRealizedVariable); + if (result == null) result = caseCGTypedElement(cgEcoreRealizedVariable); + if (result == null) result = caseCGNamedElement(cgEcoreRealizedVariable); + if (result == null) result = caseCGElement(cgEcoreRealizedVariable); + if (result == null) result = caseNameable(cgEcoreRealizedVariable); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_FUNCTION: { + CGFunction cgFunction = (CGFunction)theEObject; + T result = caseCGFunction(cgFunction); + if (result == null) result = caseCGOperation(cgFunction); + if (result == null) result = caseCGTypedElement(cgFunction); + if (result == null) result = caseCGNamedElement(cgFunction); + if (result == null) result = caseCGElement(cgFunction); + if (result == null) result = caseNameable(cgFunction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_FUNCTION_CALL_EXP: { + CGFunctionCallExp cgFunctionCallExp = (CGFunctionCallExp)theEObject; + T result = caseCGFunctionCallExp(cgFunctionCallExp); + if (result == null) result = caseCGOperationCallExp(cgFunctionCallExp); + if (result == null) result = caseCGCallExp(cgFunctionCallExp); + if (result == null) result = caseCGValuedElement(cgFunctionCallExp); + if (result == null) result = caseCGTypedElement(cgFunctionCallExp); + if (result == null) result = caseCGNamedElement(cgFunctionCallExp); + if (result == null) result = caseCGElement(cgFunctionCallExp); + if (result == null) result = caseNameable(cgFunctionCallExp); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_FUNCTION_PARAMETER: { + CGFunctionParameter cgFunctionParameter = (CGFunctionParameter)theEObject; + T result = caseCGFunctionParameter(cgFunctionParameter); + if (result == null) result = caseCGParameter(cgFunctionParameter); + if (result == null) result = caseCGVariable(cgFunctionParameter); + if (result == null) result = caseCGValuedElement(cgFunctionParameter); + if (result == null) result = caseCGTypedElement(cgFunctionParameter); + if (result == null) result = caseCGNamedElement(cgFunctionParameter); + if (result == null) result = caseCGElement(cgFunctionParameter); + if (result == null) result = caseNameable(cgFunctionParameter); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_GUARD_VARIABLE: { + CGGuardVariable cgGuardVariable = (CGGuardVariable)theEObject; + T result = caseCGGuardVariable(cgGuardVariable); + if (result == null) result = caseCGParameter(cgGuardVariable); + if (result == null) result = caseCGVariable(cgGuardVariable); + if (result == null) result = caseCGValuedElement(cgGuardVariable); + if (result == null) result = caseCGTypedElement(cgGuardVariable); + if (result == null) result = caseCGNamedElement(cgGuardVariable); + if (result == null) result = caseCGElement(cgGuardVariable); + if (result == null) result = caseNameable(cgGuardVariable); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_MAPPING: { + CGMapping cgMapping = (CGMapping)theEObject; + T result = caseCGMapping(cgMapping); + if (result == null) result = caseCGTypedElement(cgMapping); + if (result == null) result = caseCGNamedElement(cgMapping); + if (result == null) result = caseCGElement(cgMapping); + if (result == null) result = caseNameable(cgMapping); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_MAPPING_CALL: { + CGMappingCall cgMappingCall = (CGMappingCall)theEObject; + T result = caseCGMappingCall(cgMappingCall); + if (result == null) result = caseCGValuedElement(cgMappingCall); + if (result == null) result = caseCGTypedElement(cgMappingCall); + if (result == null) result = caseCGNamedElement(cgMappingCall); + if (result == null) result = caseCGElement(cgMappingCall); + if (result == null) result = caseNameable(cgMappingCall); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_MAPPING_CALL_BINDING: { + CGMappingCallBinding cgMappingCallBinding = (CGMappingCallBinding)theEObject; + T result = caseCGMappingCallBinding(cgMappingCallBinding); + if (result == null) result = caseCGValuedElement(cgMappingCallBinding); + if (result == null) result = caseCGTypedElement(cgMappingCallBinding); + if (result == null) result = caseCGNamedElement(cgMappingCallBinding); + if (result == null) result = caseCGElement(cgMappingCallBinding); + if (result == null) result = caseNameable(cgMappingCallBinding); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_PREDICATE: { + CGPredicate cgPredicate = (CGPredicate)theEObject; + T result = caseCGPredicate(cgPredicate); + if (result == null) result = caseCGValuedElement(cgPredicate); + if (result == null) result = caseCGTypedElement(cgPredicate); + if (result == null) result = caseCGNamedElement(cgPredicate); + if (result == null) result = caseCGElement(cgPredicate); + if (result == null) result = caseNameable(cgPredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_PROPERTY_ASSIGNMENT: { + CGPropertyAssignment cgPropertyAssignment = (CGPropertyAssignment)theEObject; + T result = caseCGPropertyAssignment(cgPropertyAssignment); + if (result == null) result = caseCGValuedElement(cgPropertyAssignment); + if (result == null) result = caseCGTypedElement(cgPropertyAssignment); + if (result == null) result = caseCGNamedElement(cgPropertyAssignment); + if (result == null) result = caseCGElement(cgPropertyAssignment); + if (result == null) result = caseNameable(cgPropertyAssignment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_REALIZED_VARIABLE: { + CGRealizedVariable cgRealizedVariable = (CGRealizedVariable)theEObject; + T result = caseCGRealizedVariable(cgRealizedVariable); + if (result == null) result = caseCGVariable(cgRealizedVariable); + if (result == null) result = caseCGValuedElement(cgRealizedVariable); + if (result == null) result = caseCGTypedElement(cgRealizedVariable); + if (result == null) result = caseCGNamedElement(cgRealizedVariable); + if (result == null) result = caseCGElement(cgRealizedVariable); + if (result == null) result = caseNameable(cgRealizedVariable); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_TRANSFORMATION: { + CGTransformation cgTransformation = (CGTransformation)theEObject; + T result = caseCGTransformation(cgTransformation); + if (result == null) result = caseCGClass(cgTransformation); + if (result == null) result = caseCGNamedElement(cgTransformation); + if (result == null) result = caseCGElement(cgTransformation); + if (result == null) result = caseNameable(cgTransformation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case QVTiCGModelPackage.CG_TYPED_MODEL: { + CGTypedModel cgTypedModel = (CGTypedModel)theEObject; + T result = caseCGTypedModel(cgTypedModel); + if (result == null) result = caseCGNamedElement(cgTypedModel); + if (result == null) result = caseCGElement(cgTypedModel); + if (result == null) result = caseNameable(cgTypedModel); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Ecore Property Assignment</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Ecore Property Assignment</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGEcorePropertyAssignment(CGEcorePropertyAssignment object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Ecore Realized Variable</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Ecore Realized Variable</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGEcoreRealizedVariable(CGEcoreRealizedVariable object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Function</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Function</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGFunction(CGFunction object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Function Call Exp</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Function Call Exp</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGFunctionCallExp(CGFunctionCallExp object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Function Parameter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Function Parameter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGFunctionParameter(CGFunctionParameter object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Guard Variable</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Guard Variable</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGGuardVariable(CGGuardVariable object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Property Assignment</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Property Assignment</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGPropertyAssignment(CGPropertyAssignment object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Mapping</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Mapping</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGMapping(CGMapping object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Transformation</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Transformation</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGTransformation(CGTransformation object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Typed Model</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Typed Model</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGTypedModel(CGTypedModel object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Mapping Call</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Mapping Call</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGMappingCall(CGMappingCall object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Mapping Call Binding</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Mapping Call Binding</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGMappingCallBinding(CGMappingCallBinding object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGPredicate(CGPredicate object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Realized Variable</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Realized Variable</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGRealizedVariable(CGRealizedVariable object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Element</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Element</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGElement(CGElement object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Nameable</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Nameable</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNameable(Nameable object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Named Element</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Named Element</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGNamedElement(CGNamedElement object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Typed Element</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Typed Element</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGTypedElement(CGTypedElement object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Valued Element</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Valued Element</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGValuedElement(CGValuedElement object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Operation</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Operation</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGOperation(CGOperation object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Call Exp</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Call Exp</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGCallExp(CGCallExp object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Operation Call Exp</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Operation Call Exp</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGOperationCallExp(CGOperationCallExp object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Parameter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Parameter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGParameter(CGParameter object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Class</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Class</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGClass(CGClass object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>CG Variable</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>CG Variable</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCGVariable(CGVariable object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //QVTiCGModelSwitch diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java new file mode 100644 index 000000000..44f836029 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java @@ -0,0 +1,49 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + * + * This code is auto-generated + * from: model/qvticgmodel.genmodel + * by: org.eclipse.ocl.examples.build.acceleo.GenerateVisitor + * defined by: org.eclipse.ocl.examples.build.acceleo.generateVisitors.mtl + * invoked by: org.eclipse.ocl.examples.build.utilities.* + * from: org.eclipse.ocl.examples.build.*.mwe2 + * + * Do not edit it. + * + * $Id$ + */ +package org.eclipse.qvtd.codegen.qvticgmodel.util; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; + +/** + */ +public interface QVTiCGModelVisitor<R> extends org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor<R> +{ + @Nullable R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object); + @Nullable R visitCGEcoreRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable object); + @Nullable R visitCGFunction(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunction object); + @Nullable R visitCGFunctionCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp object); + @Nullable R visitCGFunctionParameter(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter object); + @Nullable R visitCGGuardVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable object); + @Nullable R visitCGMapping(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMapping object); + @Nullable R visitCGMappingCall(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall object); + @Nullable R visitCGMappingCallBinding(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding object); + @Nullable R visitCGPredicate(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate object); + @Nullable R visitCGPropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment object); + @Nullable R visitCGRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable object); + @Nullable R visitCGTransformation(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation object); + @Nullable R visitCGTypedModel(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel object); +} diff --git a/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore new file mode 100644 index 000000000..c6552fe1d --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="qvticgmodel" nsURI="http://www.eclipse.org/qvti/1.0.0/CG" nsPrefix="qvticg">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The CGModel provides a Code Generation friendly form of the OCL Pivot model, with distinct classes
such as LibraryPropertyCallExp and EcorePropertyCallExp for distinct purposes. Additional classes
such as BoxExpr, CatchExpr and CastParameter support rewrite optimizations.
<p>
References to the Pivot model are expressed as attributes with datatype values in order to avoid
confusion as to whether the new or old pivot mosdel is in use while code generating the pivot model."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/OCL/Import">
+ <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="CGEcorePropertyAssignment" eSuperTypes="#//CGPropertyAssignment">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeature" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"
+ resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGEcoreRealizedVariable" eSuperTypes="#//CGRealizedVariable">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifier" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClassifier" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGFunction" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGOperation"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CGFunctionCallExp" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGOperationCallExp">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
+ eType="#//CGFunction" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGFunctionParameter" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGParameter">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
+ eType="#//CGFunction" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGGuardVariable" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGParameter">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/guardVariables"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typedModel" lowerBound="1"
+ eType="#//CGTypedModel" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGMapping" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGTypedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformation" lowerBound="1"
+ eType="#//CGTransformation" resolveProxies="false" eOpposite="#//CGTransformation/mappings"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="guardVariables" ordered="false"
+ upperBound="-1" eType="#//CGGuardVariable" containment="true" resolveProxies="false"
+ eOpposite="#//CGGuardVariable/mapping">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The parameters of this operation, with 'self' as the first parameter."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="predicates" upperBound="-1"
+ eType="#//CGPredicate" containment="true" resolveProxies="false" eOpposite="#//CGPredicate/mapping"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="realizedVariables" upperBound="-1"
+ eType="#//CGRealizedVariable" containment="true" resolveProxies="false" eOpposite="#//CGRealizedVariable/mapping"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="assignments" upperBound="-1"
+ eType="#//CGPropertyAssignment" containment="true" resolveProxies="false"
+ eOpposite="#//CGPropertyAssignment/mapping"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mappingCalls" upperBound="-1"
+ eType="#//CGMappingCall" containment="true" resolveProxies="false" eOpposite="#//CGMappingCall/mapping"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGMappingCall" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/mappingCalls"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mappingCallBindings" upperBound="-1"
+ eType="#//CGMappingCallBinding" containment="true" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGMappingCallBinding" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="valueOrValues" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement"
+ containment="true" resolveProxies="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loop" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGPredicate" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/predicates"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="conditionExpression" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement"
+ containment="true" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGPropertyAssignment" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/assignments"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="slotValue" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement"
+ containment="true" resolveProxies="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referredProperty" lowerBound="1"
+ eType="ecore:EDataType ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initValue" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGValuedElement"
+ containment="true" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGRealizedVariable" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGVariable">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"
+ eType="#//CGMapping" resolveProxies="false" eOpposite="#//CGMapping/realizedVariables"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typedModel" lowerBound="1"
+ eType="#//CGTypedModel" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGTransformation" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGClass">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mappings" lowerBound="1"
+ upperBound="-1" eType="#//CGMapping" containment="true" resolveProxies="false"
+ eOpposite="#//CGMapping/transformation"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typedModels" upperBound="-1"
+ eType="#//CGTypedModel" containment="true" resolveProxies="false" eOpposite="#//CGTypedModel/transformation"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CGTypedModel" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGNamedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformation" lowerBound="1"
+ eType="#//CGTransformation" resolveProxies="false" eOpposite="#//CGTransformation/typedModels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.genmodel b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.genmodel new file mode 100644 index 000000000..923340de5 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.genmodel @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="<copyright>

Copyright (c) 2013 E.D.Willink 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:
 E.D.Willink - Initial API and implementation

</copyright>" + modelDirectory="/org.eclipse.qvtd.codegen/emf-gen" editDirectory="/org.eclipse.qvtd.codegen.edit/emf-gen" + editorDirectory="/org.eclipse.qvtd.codegen.editor/emf-gen" modelPluginID="org.eclipse.qvtd.codegen" + modelName="QVTiCGmodel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" + suppressEMFTypes="true" testsDirectory="/org.eclipse.qvtd.codegen.tests/emf-gen" + booleanFlagsReservedBits="8" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" + copyrightFields="false" usedGenPackages="../../org.eclipse.ocl.examples.codegen/model/cgmodel.genmodel#//cgmodel" + operationReflection="true" importOrganizing="true"> + <foreignModel>qvticgmodel.ecore</foreignModel> + <genPackages prefix="QVTiCGModel" basePackage="org.eclipse.qvtd.codegen" disposableProviderFactory="true" + ecorePackage="qvticgmodel.ecore#/"> + <genClasses ecoreClass="qvticgmodel.ecore#//CGPropertyAssignment"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGPropertyAssignment/initValue"/> + </genClasses> + <genClasses ecoreClass="qvticgmodel.ecore#//CGMapping"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMapping/predicates"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMapping/realizedVariables"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMapping/assignments"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMapping/mappingCalls"/> + </genClasses> + <genClasses ecoreClass="qvticgmodel.ecore#//CGTransformation"/> + <genClasses ecoreClass="qvticgmodel.ecore#//CGMappingCall"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMappingCall/mappingCallBindings"/> + </genClasses> + <genClasses ecoreClass="qvticgmodel.ecore#//CGMappingCallBinding"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGMappingCallBinding/valueOrValues"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute qvticgmodel.ecore#//CGMappingCallBinding/loop"/> + </genClasses> + <genClasses ecoreClass="qvticgmodel.ecore#//CGPredicate"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference qvticgmodel.ecore#//CGPredicate/conditionExpression"/> + </genClasses> + <genClasses ecoreClass="qvticgmodel.ecore#//CGRealizedVariable"/> + </genPackages> +</genmodel:GenModel> diff --git a/plugins/org.eclipse.qvtd.codegen/plugin.properties b/plugins/org.eclipse.qvtd.codegen/plugin.properties new file mode 100644 index 000000000..0e39d115d --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/plugin.properties @@ -0,0 +1,15 @@ +# <copyright> +# +# Copyright (c) 2013 E.D.Willink 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: +# E.D.Willink - Initial API and implementation +# +# </copyright> + +pluginName = QVTimperative Code Generator (Incubation) +providerName = Eclipse Modeling Project diff --git a/plugins/org.eclipse.qvtd.codegen/plugin.xml b/plugins/org.eclipse.qvtd.codegen/plugin.xml new file mode 100644 index 000000000..1a9a5195c --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/plugin.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- + <copyright> + + Copyright (c) 2013 E.D.Willink 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: + E.D.Willink - Initial API and implementation + + </copyright> +--> + +<plugin> + + <extension point="org.eclipse.emf.ecore.generated_package"> + <!-- @generated qvticgmodel --> + <package + uri="http://www.eclipse.org/qvti/1.0.0/CG" + class="org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage" + genModel="model/qvticgmodel.genmodel"/> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalysisVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalysisVisitor.java new file mode 100644 index 000000000..eafa8784f --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalysisVisitor.java @@ -0,0 +1,131 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.analyzer.AnalysisVisitor; +import org.eclipse.ocl.examples.codegen.generator.GlobalContext; +import org.eclipse.ocl.examples.codegen.generator.LocalContext; +import org.eclipse.ocl.examples.pivot.OperationCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; +import org.eclipse.qvtd.pivot.qvtbase.Function; + +public class QVTiAnalysisVisitor extends AnalysisVisitor implements QVTiCGModelVisitor<Object> +{ + public QVTiAnalysisVisitor(@NonNull QVTiAnalyzer analyzer) { + super(analyzer); + } + + @Override + public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) { + return visitCGPropertyAssignment(object); + } + + @Override + public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) { + return visitCGRealizedVariable(object); + } + + @Override + public Object visitCGFunction(@NonNull CGFunction object) { + return visitCGOperation(object); + } + + @Override + public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp cgFunctionCallExp) { + Function pFunction = (Function) ((OperationCallExp)cgFunctionCallExp.getPivot()).getReferredOperation(); + if (pFunction != null) { + CGFunction cgFunction = ((QVTiAnalyzer)context).getFunction(pFunction); + cgFunctionCallExp.setFunction(cgFunction); + } + return visitCGOperationCallExp(cgFunctionCallExp); + } + + @Override + public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) { + return visitCGParameter(object); + } + + @Override + public Object visitCGGuardVariable(@NonNull CGGuardVariable object) { + return visitCGParameter(object); + } + + @Override + public Object visitCGMapping(@NonNull CGMapping object) { + return visitCGTypedElement(object); + } + + @Override + public Object visitCGMappingCall(@NonNull CGMappingCall object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding cgMappingCallBinding) { + visitCGValuedElement(cgMappingCallBinding); + GlobalContext globalContext = context.getCodeGenerator().getGlobalContext(); + LocalContext localContext = globalContext.getLocalContext(cgMappingCallBinding); + if (localContext != null) { + cgMappingCallBinding.setValueName(localContext.getNameManagerContext().getSymbolName(cgMappingCallBinding, cgMappingCallBinding.getName())); + } + return null; + } + + @Override + public Object visitCGPredicate(@NonNull CGPredicate object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGRealizedVariable(@NonNull CGRealizedVariable cgRealizedVariable) { + visitCGVariable(cgRealizedVariable); + GlobalContext globalContext = context.getCodeGenerator().getGlobalContext(); + LocalContext localContext = globalContext.getLocalContext(cgRealizedVariable); + if (localContext != null) { + localContext.setNames(cgRealizedVariable, cgRealizedVariable); + } + return null; + } + + @Override + public Object visitCGTransformation(@NonNull CGTransformation object) { + return visitCGClass(object); + } + + @Override + public Object visitCGTypedModel(@NonNull CGTypedModel object) { + return visitCGNamedElement(object); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalyzer.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalyzer.java new file mode 100644 index 000000000..07a9e8f0f --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiAnalyzer.java @@ -0,0 +1,63 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.examples.codegen.analyzer.CodeGenAnalyzer; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.pivot.qvtbase.Function; +import org.eclipse.qvtd.pivot.qvtbase.TypedModel; +import org.eclipse.qvtd.pivot.qvtimperative.Mapping; + +public class QVTiAnalyzer extends CodeGenAnalyzer +{ + private final @NonNull Map<Function, CGFunction> cgFunctions = new HashMap<Function, CGFunction>(); + private final @NonNull Map<Mapping, CGMapping> cgMappings = new HashMap<Mapping, CGMapping>(); + private final @NonNull Map<TypedModel, CGTypedModel> cgTypedModels = new HashMap<TypedModel, CGTypedModel>(); + + public QVTiAnalyzer(@NonNull QVTiCodeGenerator codeGenerator) { + super(codeGenerator); + } + + public void addFunction(@NonNull Function pFunction, @NonNull CGFunction cgFunction) { + cgFunctions.put(pFunction, cgFunction); + } + + public void addMapping(@NonNull Mapping pMapping, @NonNull CGMapping cgMapping) { + cgMappings.put(pMapping, cgMapping); + } + + public void addTypedModel(@NonNull TypedModel pTypedModel, @NonNull CGTypedModel cgTypedModel) { + cgTypedModels.put(pTypedModel, cgTypedModel); + } + + public @Nullable CGFunction getFunction(@NonNull Function pFunction) { + return cgFunctions.get(pFunction); + } + + public @Nullable CGMapping getMapping(@NonNull Mapping pMapping) { + return cgMappings.get(pMapping); + } + + public @Nullable CGTypedModel getTypedModel(@NonNull TypedModel pTypedModel) { + return cgTypedModels.get(pTypedModel); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiBoxingAnalyzer.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiBoxingAnalyzer.java new file mode 100644 index 000000000..b16e51859 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiBoxingAnalyzer.java @@ -0,0 +1,118 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.analyzer.BoxingAnalyzer; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +public class QVTiBoxingAnalyzer extends BoxingAnalyzer implements QVTiCGModelVisitor<Object> +{ + + public QVTiBoxingAnalyzer(@NonNull QVTiAnalyzer analyzer) { + super(analyzer); + } + + @Override + public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) { + return visitCGPropertyAssignment(object); + } + + @Override + public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) { + return visitCGRealizedVariable(object); + } + + @Override + public Object visitCGFunction(@NonNull CGFunction cgFunction) { + visitCGOperation(cgFunction); + rewriteAsUnboxed(cgFunction.getBody()); + return null; + } + + @Override + public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp cgFunctionCallExp) { + visitCGOperationCallExp(cgFunctionCallExp); + for (CGValuedElement cgArgument : cgFunctionCallExp.getArguments()) { + rewriteAsUnboxed(cgArgument); + } + return null; + } + + @Override + public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) { + return visitCGParameter(object); + } + + @Override + public Object visitCGGuardVariable(@NonNull CGGuardVariable object) { + return visitCGParameter(object); + } + + @Override + public Object visitCGMapping(@NonNull CGMapping cgMapping) { + return visitCGTypedElement(cgMapping); + } + + @Override + public Object visitCGMappingCall(@NonNull CGMappingCall cgMappingCall) { + return visitCGValuedElement(cgMappingCall); + } + + @Override + public Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding cgMappingCallBinding) { + return visitCGValuedElement(cgMappingCallBinding); + } + + @Override + public Object visitCGPredicate(@NonNull CGPredicate cgPredicate) { + return visitCGValuedElement(cgPredicate); + } + + @Override + public Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment cgPropertyAssignment) { + return visitCGValuedElement(cgPropertyAssignment); + } + + @Override + public Object visitCGRealizedVariable(@NonNull CGRealizedVariable cgRealizedVariable) { + return visitCGVariable(cgRealizedVariable); + } + + @Override + public Object visitCGTransformation(@NonNull CGTransformation cgTransformation) { + return visitCGClass(cgTransformation); + } + + @Override + public Object visitCGTypedModel(@NonNull CGTypedModel object) { + return visitCGNamedElement(object); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaPreVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaPreVisitor.java new file mode 100644 index 000000000..472fe7761 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaPreVisitor.java @@ -0,0 +1,128 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.examples.codegen.java.CG2JavaPreVisitor; +import org.eclipse.ocl.examples.pivot.Property; +import org.eclipse.ocl.examples.pivot.Type; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; +import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable; + +public class QVTiCG2JavaPreVisitor extends CG2JavaPreVisitor implements QVTiCGModelVisitor<Object> +{ + public QVTiCG2JavaPreVisitor(@NonNull QVTiGlobalContext javaContext) { + super(javaContext); + } + + @Override + public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) { + return visitCGPropertyAssignment(object); + } + + @Override + public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) { + return visitCGRealizedVariable(object); + } + + @Override + public Object visitCGFunction(@NonNull CGFunction object) { + return visitCGOperation(object); + } + + @Override + public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) { + return visitCGOperationCallExp(object); + } + + @Override + public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) { + return visitCGParameter(object); + } + + @Override + public @Nullable Object visitCGMapping(@NonNull CGMapping cgMapping) { + localContext = context.getLocalContext(cgMapping); + try { + return visitCGTypedElement(cgMapping); + } + finally { + localContext = null; + } + } + + @Override + public Object visitCGGuardVariable(@NonNull CGGuardVariable object) { + return visitCGParameter(object); + } + + @Override + public Object visitCGMappingCall(@NonNull CGMappingCall object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGPredicate(@NonNull CGPredicate object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment cgPropertyAssignment) { + Property pReferredProperty = cgPropertyAssignment.getReferredProperty(); + if (pReferredProperty != null) { + localContext.getExecutorProperty(pReferredProperty); + } + return visitCGValuedElement(cgPropertyAssignment); + } + + @Override + public Object visitCGRealizedVariable(@NonNull CGRealizedVariable cgRealizedVariable) { + Type pType = ((RealizedVariable)cgRealizedVariable.getPivot()).getType(); + if (pType != null) { + localContext.getExecutorType(pType); + } + return visitCGVariable(cgRealizedVariable); + } + + @Override + public Object visitCGTransformation(@NonNull CGTransformation object) { + return visitCGClass(object); + } + + @Override + public Object visitCGTypedModel(@NonNull CGTypedModel object) { + return visitCGNamedElement(object); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaVisitor.java new file mode 100644 index 000000000..6f48b172d --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2JavaVisitor.java @@ -0,0 +1,599 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.examples.codegen.analyzer.DependencyVisitor; +import org.eclipse.ocl.examples.codegen.analyzer.NameManager; +import org.eclipse.ocl.examples.codegen.cgmodel.CGExecutorProperty; +import org.eclipse.ocl.examples.codegen.cgmodel.CGModelFactory; +import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation; +import org.eclipse.ocl.examples.codegen.cgmodel.CGPackage; +import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter; +import org.eclipse.ocl.examples.codegen.cgmodel.CGTypeId; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.java.CG2JavaPreVisitor; +import org.eclipse.ocl.examples.codegen.java.CG2JavaVisitor; +import org.eclipse.ocl.examples.codegen.java.JavaDependencyVisitor; +import org.eclipse.ocl.examples.codegen.java.JavaLocalContext; +import org.eclipse.ocl.examples.codegen.java.JavaTypeDescriptor; +import org.eclipse.ocl.examples.domain.evaluation.AbstractTransformation; +import org.eclipse.ocl.examples.domain.evaluation.DomainEvaluator; +import org.eclipse.ocl.examples.domain.utilities.DomainUtil; +import org.eclipse.ocl.examples.domain.values.util.ValuesUtil; +import org.eclipse.ocl.examples.pivot.Operation; +import org.eclipse.ocl.examples.pivot.Parameter; +import org.eclipse.ocl.examples.pivot.Property; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; +import org.eclipse.qvtd.pivot.qvtbase.Transformation; +import org.eclipse.qvtd.pivot.qvtcorebase.Area; +import org.eclipse.qvtd.pivot.qvtcorebase.Assignment; +import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern; +import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment; +import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable; +import org.eclipse.qvtd.pivot.qvtcorebase.utilities.QVTcoreBaseUtil; +import org.eclipse.qvtd.pivot.qvtimperative.Mapping; +import org.eclipse.qvtd.pivot.qvtimperative.MappingCall; + +/** + * A CG2JavaClassVisitor supports generation of an OCL expression as the LibraryOperation INSTANCE of a Java Class. + */ +public class QVTiCG2JavaVisitor extends CG2JavaVisitor implements QVTiCGModelVisitor<Object> +{ + protected final @NonNull QVTiAnalyzer analyzer; + protected final @NonNull Transformation transformation; + protected final @NonNull CGPackage cgPackage; + protected final @NonNull CGTransformation cgTransformation; + + public QVTiCG2JavaVisitor(@NonNull QVTiCodeGenerator codeGenerator, + @NonNull Transformation transformation, String packageName, String className) { + super(codeGenerator); + this.analyzer = codeGenerator.getAnalyzer(); + this.transformation = transformation; + this.cgPackage = CGModelFactory.eINSTANCE.createCGPackage(); + cgPackage.setName(packageName); + QVTiPivot2CGVisitor pivot2CGVisitor = new QVTiPivot2CGVisitor(analyzer, getGlobalContext()); + this.cgTransformation = (CGTransformation) DomainUtil.nonNullState(transformation.accept(pivot2CGVisitor)); + cgPackage.getClasses().add(cgTransformation); + Resource resource = new XMIResourceImpl(URI.createURI("cg.xmi")); + resource.getContents().add(cgPackage); + analyzer.analyze(cgPackage); + } + + protected void appendModelIndex(@Nullable CGTypedModel cgTypedModel) { + if (cgTypedModel == null) { + js.append("-1/*null*/"); + } + else { + js.append(cgTypedModel.getModelIndex() + "/*" + cgTypedModel.getName() + "*/"); + } + } + + protected void doAddRealization(@NonNull CGRealizedVariable cgRealizedVariable) { + RealizedVariable pRealizedVariable = (RealizedVariable)cgRealizedVariable.getPivot(); + Area pArea = QVTcoreBaseUtil.getContainingArea(pRealizedVariable); + if (pArea != null) { + BottomPattern pBottomPattern = pArea.getBottomPattern(); + if (pBottomPattern != null) { + for (Assignment pAssignment : pBottomPattern.getAssignment()) { + if (pAssignment instanceof PropertyAssignment) { + Property pProperty = ((PropertyAssignment)pAssignment).getTargetProperty(); + if (pProperty != null) { + Property pOppositeProperty = pProperty.getOpposite(); + if ((pOppositeProperty != null) && pOppositeProperty.isComposite()) { +// FIXME must check for null asssignment and correct target return; + } + } + } + } + } + } + CGTypedModel cgTypedModel = cgRealizedVariable.getTypedModel(); + // + js.append("modelObjects["); + appendModelIndex(cgTypedModel); + js.append("].add("); + js.appendValueName(cgRealizedVariable); + js.append(");\n"); + } + + protected void doConstructor(@NonNull CGTransformation cgTransformation) { + String evaluatorName = ((QVTiGlobalContext)globalContext).getEvaluatorParameter().getName(); + String className = cgTransformation.getName(); + // + js.append("public " + className + "(final "); + js.appendIsRequired(true); + js.append(" "); + js.appendClassReference(DomainEvaluator.class); + js.append(" " + evaluatorName + ") {\n"); + js.pushIndentation(null); + js.append("super(" + evaluatorName + ", new String[] {"); + boolean isFirst = true; + for (CGTypedModel cgTypedModel : cgTransformation.getTypedModels()) { + if (!isFirst) { + js.append(", "); + } + String name = cgTypedModel.getName(); + js.appendString(name != null ? name : ""); + isFirst = false; + } + js.append("});\n"); + js.popIndentation(); + js.append("}\n"); + } + + protected void doGlobals(@NonNull CGTransformation cgTransformation) { + DependencyVisitor dependencyVisitor = context.createDependencyVisitor(); + dependencyVisitor.visitAll(globalContext.getGlobals()); + dependencyVisitor.visitAll(cgTransformation.getOperations()); + Iterable<CGValuedElement> sortedDependencies = dependencyVisitor.getSortedDependencies(); + generateGlobals(sortedDependencies); + } + +/* public boolean run() { + for (EObject eObject : getObjectsByType(0, HSVTreePackage.Literals.HSV_NODE)) { + HSV2MiddleRoot((HSVNode) eObject); + } + return true; + } */ + + @SuppressWarnings("null") + protected void doRun(@NonNull CGTransformation cgTransformation) { + CGMapping cgRootMapping = cgTransformation.getMappings().get(0); + List<CGGuardVariable> cgGuardVariables = cgRootMapping.getGuardVariables(); + NameManager nameManager = globalContext.getNameManager(); + Map<CGParameter, String> listNames = new HashMap<CGParameter, String>(); + for (CGGuardVariable cgGuardVariable : cgGuardVariables) { + String nameHint = "LIST_" + cgGuardVariable.getValueName(); + String listName = nameManager.getGlobalSymbolName(null, nameHint); + listNames.put(cgGuardVariable, listName); + } + // + js.append("public boolean run() {\n"); + js.pushIndentation(null); + for (@NonNull CGGuardVariable cgGuardVariable : cgGuardVariables) { + JavaTypeDescriptor typeDescriptor = context.getJavaTypeDescriptor(cgGuardVariable); + EClassifier eClassifier = DomainUtil.nonNullState(typeDescriptor.getEClassifier()); + String qualifiedPackageInterfaceName = genModelHelper.getQualifiedPackageInterfaceName(eClassifier.getEPackage()); + String classifierLiteralName = genModelHelper.getLiteralName(eClassifier); + js.appendClassReference(List.class, typeDescriptor); + js.append(" "); + js.append(listNames.get(cgGuardVariable)); + js.append(" = getObjectsByType("); + js.appendClassReference(typeDescriptor); + js.append(".class, "); + appendModelIndex(cgGuardVariable.getTypedModel()); + js.append(", "); + js.appendClassReference(qualifiedPackageInterfaceName); + js.append(".Literals." + classifierLiteralName); + js.append(");\n"); + } + for (CGGuardVariable cgGuardVariable : cgGuardVariables) { + js.append("for ("); + js.appendClassReference(cgGuardVariable); + js.append(" "); + js.appendValueName(cgGuardVariable); + js.append(" : "); + js.append(listNames.get(cgGuardVariable)); + js.append(") {\n"); + js.pushIndentation(null); + } + js.append(cgRootMapping.getName()); + js.append("("); + boolean isFirst = true; + for (CGGuardVariable cgGuardVariable : cgGuardVariables) { + if (!isFirst) { + js.append(", "); + } + js.appendValueName(cgGuardVariable); + isFirst = false; + } + js.append(");\n"); + for (@SuppressWarnings("unused") CGGuardVariable cgGuardVariable : cgGuardVariables) { + js.popIndentation(); + js.append("}\n"); + } + js.append("return true;\n"); + js.popIndentation(); + js.append("}\n"); + } + + protected CGPackage generate() { + CG2JavaPreVisitor cg2PreVisitor = context.createCG2JavaPreVisitor(); + cgPackage.accept(cg2PreVisitor); + safeVisit(cgPackage); + return cgPackage; + } + + protected @NonNull QVTiGlobalContext getGlobalContext() { + return (QVTiGlobalContext) globalContext; + } + + protected @NonNull QVTiLocalContext getLocalContext() { + return (QVTiLocalContext) localContext; + } + + @Override + @Nullable + public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment cgPropertyAssignment) { +// Property pivotProperty = cgPropertyCallExp.getReferredProperty(); +// CGTypeId cgTypeId = analyzer.getTypeId(pivotProperty.getOwningType().getTypeId()); +// JavaTypeDescriptor requiredTypeDescriptor = context.getJavaTypeDescriptor(cgTypeId, false); + EStructuralFeature eStructuralFeature = cgPropertyAssignment.getEStructuralFeature(); + CGValuedElement cgSlot = getExpression(cgPropertyAssignment.getSlotValue()); + String setAccessor = genModelHelper.getSetAccessor(eStructuralFeature); + CGValuedElement cgInit = getExpression(cgPropertyAssignment.getInitValue()); +// Class<?> requiredJavaClass = requiredTypeDescriptor.getJavaClass(); +// Method leastDerivedMethod = requiredJavaClass != null ? getLeastDerivedMethod(requiredJavaClass, getAccessor) : null; +// Class<?> unboxedSourceClass = leastDerivedMethod != null ? leastDerivedMethod.getDeclaringClass() : requiredJavaClass; + // + js.appendLocalStatements(cgSlot); + js.appendLocalStatements(cgInit); + // + js.appendValueName(cgSlot); + js.append("."); + js.append(setAccessor); + js.append("("); + js.appendValueName(cgInit); + js.append(");\n"); + return null; + } + + @Override + @Nullable + public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable cgRealizedVariable) { + EClassifier eClassifier = cgRealizedVariable.getEClassifier(); + EPackage ePackage = eClassifier.getEPackage(); + String javaClass = genModelHelper.getQualifiedFactoryInterfaceName(ePackage); + // + js.appendDeclaration(cgRealizedVariable); + js.append(" = "); + js.appendClassReference(javaClass); +// js.appendReferenceTo(localContext.getExecutorType(cgRealizedVariable.getPivotTypeId())); + js.append(".eINSTANCE.create"); + js.append(eClassifier.getName()); // FIXME accessor + js.append("();\n"); + // + doAddRealization(cgRealizedVariable); + return null; + } + + @Override + @Nullable + public Object visitCGFunction(@NonNull CGFunction cgFunction) { + JavaLocalContext localContext2 = globalContext.getLocalContext(cgFunction); + if (localContext2 != null) { + localContext = localContext2; + try { + List<CGParameter> cgParameters = cgFunction.getParameters(); + CGValuedElement body = getExpression(cgFunction.getBody()); + // + js.append("protected "); + js.appendIsRequired(cgFunction.isRequired()); + // js.append(" "); + // js.appendIsCaught(!cgOperation.isInvalid(), cgOperation.isInvalid()); + js.append(" "); + CGTypeId cgTypeId = cgFunction.getTypeId(); + JavaTypeDescriptor javaTypeDescriptor = context.getJavaTypeDescriptor(cgTypeId, false); + js.appendClassReference(javaTypeDescriptor); + js.append(" "); + js.append(cgFunction.getName()); + js.append("("); + boolean isFirst = true; + for (@SuppressWarnings("null")@NonNull CGParameter cgParameter : cgParameters) { + if (!isFirst) { + js.append(", "); + } + js.appendDeclaration(cgParameter); + isFirst = false; + } + js.append(") {\n"); + js.pushIndentation(null); + js.appendCastParameters(localContext2, cgParameters); + JavaDependencyVisitor dependencyVisitor = new JavaDependencyVisitor(localContext2); + dependencyVisitor.visit(body); + dependencyVisitor.visitAll(localContext2.getLocalVariables()); + Iterable<CGValuedElement> sortedDependencies = dependencyVisitor.getSortedDependencies(); + for (CGValuedElement cgElement : sortedDependencies) { + if (!cgElement.isInlineable() && cgElement.isConstant() && !cgElement.isGlobal()) { + cgElement.accept(this); + } + } + // FIXME merge locals into AST as LetExps. + if (cgFunction.getBody() != null) { + js.appendLocalStatements(body); + if (body.isInvalid()) { + js.append("throw "); + } + else { + js.append("return "); + } + js.appendValueName(body); + js.append(";\n"); + } + else { // FIXME Fudge for body-less functions + js.append("return null;\n"); + } + js.popIndentation(); + js.append("}\n"); + } + finally { + localContext = null; + } + } + return null; + } + + @Override + @Nullable + public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp cgFunctionCallExp) { + Operation pOperation = cgFunctionCallExp.getReferredOperation(); + List<CGValuedElement> cgArguments = cgFunctionCallExp.getArguments(); + List<Parameter> pParameters = pOperation.getOwnedParameter(); + // + for (@SuppressWarnings("null")@NonNull CGValuedElement cgArgument : cgArguments) { + CGValuedElement argument = getExpression(cgArgument); + js.appendLocalStatements(argument); + } + // + js.appendDeclaration(cgFunctionCallExp); + js.append(" = "); + js.append(cgFunctionCallExp.getFunction().getName()); + js.append("("); + int iMax = Math.min(pParameters.size(), cgArguments.size()); + for (int i = 0; i < iMax; i++) { + if (i > 0) { + js.append(", "); + } + CGValuedElement cgArgument = cgArguments.get(i); + CGValuedElement argument = getExpression(cgArgument); + Parameter pParameter = pParameters.get(i); + CGTypeId cgParameterTypeId = analyzer.getTypeId(pParameter.getTypeId()); + JavaTypeDescriptor parameterTypeDescriptor = context.getJavaTypeDescriptor(cgParameterTypeId, false); + js.appendReferenceTo(parameterTypeDescriptor, argument); + } + js.append(");\n"); + return null; + } + + @Override + @Nullable + public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) { + return visitCGParameter(object); + } + + @Override + @Nullable + public Object visitCGGuardVariable(@NonNull CGGuardVariable object) { + return visitCGParameter(object); + } + + @Override + public @Nullable Object visitCGMapping(@NonNull CGMapping cgMapping) { + JavaLocalContext localContext2 = globalContext.getLocalContext(cgMapping); + if (localContext2 != null) { + localContext = localContext2; + try { + List<CGGuardVariable> cgGuardVariables = cgMapping.getGuardVariables(); + // + js.appendCommentWithOCL(null, cgMapping.getPivot()); + js.append("protected boolean " + cgMapping.getName() + "("); + boolean isFirst = true; + for (@SuppressWarnings("null")@NonNull CGGuardVariable cgGuardVariable : cgGuardVariables) { + if (!isFirst) { + js.append(", "); + } + js.appendDeclaration(cgGuardVariable); + isFirst = false; + } + js.append(") {\n"); + js.pushIndentation(null); +// js.appendCastParameters(localContext2, cgGuardVariables); + DependencyVisitor dependencyVisitor = context.createDependencyVisitor(localContext2); + dependencyVisitor.visitAll(localContext2.getLocalVariables()); + Iterable<CGValuedElement> sortedDependencies = dependencyVisitor.getSortedDependencies(); + for (CGValuedElement cgElement : sortedDependencies) { + if (!cgElement.isInlineable() && cgElement.isConstant() && !cgElement.isGlobal()) { + cgElement.accept(this); + } + } + // FIXME merge locals into AST as LetExps. + js.append("// guards\n"); + for (CGPredicate cgPredicate : cgMapping.getPredicates()) { + cgPredicate.accept(this); + } + js.append("// creations\n"); + for (CGRealizedVariable cgRealizedVariable : cgMapping.getRealizedVariables()) { + cgRealizedVariable.accept(this); + } + js.append("// assignments\n"); + for (CGPropertyAssignment cgAssignment : cgMapping.getAssignments()) { + cgAssignment.accept(this); + } + js.append("// mapping calls\n"); + for (CGMappingCall cgMappingCall : cgMapping.getMappingCalls()) { + cgMappingCall.accept(this); + } + js.append("return true;\n"); + js.popIndentation(); + js.append("}\n"); + } + finally { + localContext = null; + } + } + return null; + } + + @Override + public @Nullable Object visitCGMappingCall(@NonNull CGMappingCall cgMappingCall) { + MappingCall pMappingCall = (MappingCall) cgMappingCall.getPivot(); + Mapping pReferredMapping = pMappingCall.getReferredMapping(); + CGMapping cgReferredMapping = analyzer.getMapping(pReferredMapping); + if (cgReferredMapping == null) { + return null; + } + List<CGMappingCallBinding> cgMappingCallBindings = cgMappingCall.getMappingCallBindings(); + for (CGMappingCallBinding cgMappingCallBinding : cgMappingCallBindings) { + js.appendLocalStatements(cgMappingCallBinding.getValueOrValues()); + } + for (CGMappingCallBinding cgMappingCallBinding : cgMappingCallBindings) { + if (cgMappingCallBinding.isLoop()) { + js.append("for ("); + js.appendClassReference(cgMappingCallBinding); + js.append(" "); + js.appendValueName(cgMappingCallBinding); + js.append(" : "); + js.appendValueName(cgMappingCallBinding.getValueOrValues()); + js.append(") {\n"); + js.pushIndentation(null); + } + } + js.append(cgReferredMapping.getName() + "("); + boolean isFirst = true; + for (CGMappingCallBinding cgMappingCallBinding : cgMappingCallBindings) { + if (!isFirst) { + js.append(", "); + } + if (cgMappingCallBinding.isLoop()) { + js.appendValueName(cgMappingCallBinding); + } + else { + js.appendValueName(cgMappingCallBinding.getValueOrValues()); + } + isFirst = false; + } + js.append(");\n"); + for (CGMappingCallBinding cgMappingCallBinding : cgMappingCallBindings) { + if (cgMappingCallBinding.isLoop()) { + js.popIndentation(); + js.append("}\n"); + } + } + return null; + } + + @Override + public @Nullable Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) { + return null; + } + + @Override + public @Nullable Object visitCGPredicate(@NonNull CGPredicate cgPredicate) { + CGValuedElement cgConditionExpression = cgPredicate.getConditionExpression(); + js.appendLocalStatements(cgConditionExpression); + js.append("if ("); + js.appendValueName(cgConditionExpression); + js.append(" != "); + js.appendClassReference(ValuesUtil.class); + js.append(".TRUE_VALUE) {\n"); + js.pushIndentation(null); + js.append("return false;\n"); + js.popIndentation(); + js.append("}\n"); + return null; + } + + @Override + public @Nullable Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment cgPropertyAssignment) { + CGExecutorProperty cgExecutorProperty = localContext.getExecutorProperty(cgPropertyAssignment.getReferredProperty()); + js.appendLocalStatements(cgPropertyAssignment.getInitValue()); + js.appendValueName(cgExecutorProperty); + js.append(".initValue("); + js.appendValueName(cgPropertyAssignment.getInitValue()); + js.append(");\n"); + return null; + } + + @Override + public @Nullable Object visitCGRealizedVariable(@NonNull CGRealizedVariable cgRealizedVariable) { + js.appendDeclaration(cgRealizedVariable); + js.append(" = "); + js.appendReferenceTo(localContext.getExecutorType(cgRealizedVariable.getPivotTypeId())); + js.append(".createInstance();\n"); + // + doAddRealization(cgRealizedVariable); + return null; + } + + @Override + public @Nullable Object visitCGTransformation(@NonNull CGTransformation cgTransformation) { + String className = cgTransformation.getName(); + js.append("/**\n"); + js.append(" * The " + className + " transformation:\n"); + js.append(" * <p>\n"); + js.append(" * Construct with an evaluator\n"); + js.append(" * <br>\n"); + js.append(" * Populate each input model with {@link addRootObjects(String,List)}\n"); + js.append(" * <br>\n"); + js.append(" * {@link run()}\n"); + js.append(" * <br>\n"); + js.append(" * Extract each output model with {@link getRootObjects(String)}\n"); + js.append(" */\n"); + js.append("@SuppressWarnings(\"nls\")\n"); + js.append("public class " + className + " extends "); + js.appendClassReference(AbstractTransformation.class); + js.append("\n"); + js.append("{\n"); + js.pushIndentation(null); + doGlobals(cgTransformation); + js.append("\n"); + doConstructor(cgTransformation); + js.append("\n"); + doRun(cgTransformation); + for (CGOperation cgOperation : cgTransformation.getOperations()) { + js.append("\n"); + cgOperation.accept(this); + } + for (CGMapping cgMapping : cgTransformation.getMappings()) { + js.append("\n"); + cgMapping.accept(this); + } + js.popIndentation(); + js.append("}\n"); + return null; + } + + @Override + @Nullable + public Object visitCGTypedModel(@NonNull CGTypedModel object) { + return null; + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2StringVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2StringVisitor.java new file mode 100644 index 000000000..1be5257f6 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCG2StringVisitor.java @@ -0,0 +1,157 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; + +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.examples.codegen.analyzer.CG2StringVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +public class QVTiCG2StringVisitor extends CG2StringVisitor implements QVTiCGModelVisitor<String> +{ + private static final class MyFactory implements CG2StringVisitor.Factory + { + private MyFactory() { + CG2StringVisitor.addFactory(this); + } + + @Override + public @NonNull CG2StringVisitor createToStringVisitor() { + return new QVTiCG2StringVisitor(); + } + + @Override + public @NonNull EPackage getEPackage() { + QVTiCGModelPackage eInstance = QVTiCGModelPackage.eINSTANCE; + assert eInstance != null; + return eInstance; + } + } + + public static @NonNull QVTiCG2StringVisitor.Factory FACTORY = new MyFactory(); + + protected QVTiCG2StringVisitor() {} + + @Override + @Nullable + public String visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) { + return visitCGPropertyAssignment(object); + } + + @Override + @Nullable + public String visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) { + return visitCGRealizedVariable(object); + } + + @Override + @Nullable + public String visitCGFunction(@NonNull CGFunction object) { + return visitCGOperation(object); + } + + @Override + @Nullable + public String visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) { + return visitCGOperationCallExp(object); + } + + @Override + @Nullable + public String visitCGFunctionParameter(@NonNull CGFunctionParameter object) { + return visitCGParameter(object); + } + + @Override + @Nullable + public String visitCGGuardVariable(@NonNull CGGuardVariable object) { + return visitCGParameter(object); + } + + @Override + @Nullable + public String visitCGMapping(@NonNull CGMapping cgMapping) { + appendQualifiedName(cgMapping.getTransformation(), ".", cgMapping); + append("("); + boolean isFirst = true; + for (CGGuardVariable cgGuardVariable : cgMapping.getGuardVariables()) { + if (!isFirst) { + append(","); + } + appendElementType(cgGuardVariable); + isFirst = false; + } + append(")"); + return null; + } + + @Override + @Nullable + public String visitCGMappingCall(@NonNull CGMappingCall object) { + return visitCGValuedElement(object); + } + + @Override + @Nullable + public String visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) { + return visitCGValuedElement(object); + } + + @Override + @Nullable + public String visitCGPredicate(@NonNull CGPredicate object) { + return visitCGValuedElement(object); + } + + @Override + @Nullable + public String visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) { + return visitCGValuedElement(object); + } + + @Override + @Nullable + public String visitCGRealizedVariable(@NonNull CGRealizedVariable object) { + return visitCGVariable(object); + } + + @Override + @Nullable + public String visitCGTransformation(@NonNull CGTransformation object) { + return visitCGClass(object); + } + + @Override + @Nullable + public String visitCGTypedModel(@NonNull CGTypedModel object) { + return visitCGNamedElement(object); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCodeGenerator.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCodeGenerator.java new file mode 100644 index 000000000..a22b2da84 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiCodeGenerator.java @@ -0,0 +1,120 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ + + +import java.util.Map; +import java.util.Set; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.analyzer.AnalysisVisitor; +import org.eclipse.ocl.examples.codegen.analyzer.BoxingAnalyzer; +import org.eclipse.ocl.examples.codegen.analyzer.DependencyVisitor; +import org.eclipse.ocl.examples.codegen.analyzer.FieldingAnalyzer; +import org.eclipse.ocl.examples.codegen.java.CG2JavaPreVisitor; +import org.eclipse.ocl.examples.codegen.java.ImportUtils; +import org.eclipse.ocl.examples.codegen.java.JavaCodeGenerator; +import org.eclipse.ocl.examples.codegen.java.JavaLocalContext; +import org.eclipse.ocl.examples.pivot.manager.MetaModelManager; +import org.eclipse.qvtd.pivot.qvtbase.Transformation; + +/** + * OCL2JavaClass supports generation of the content of a JavaClassFile with a ststic INSTANCE to provide the polymorphic implementation + * of an ExpressionInOCL. + */ +public class QVTiCodeGenerator extends JavaCodeGenerator +{ + protected final @NonNull QVTiAnalyzer cgAnalyzer; + protected final @NonNull Transformation transformation; + protected final @NonNull QVTiCG2JavaVisitor generator; +// protected final @NonNull CGPackage cgPackage; + + public QVTiCodeGenerator(@NonNull MetaModelManager metaModelManager, @NonNull Transformation transformation, @NonNull String packageName, boolean useNullAnnotations) { + super(metaModelManager); + QVTiCG2StringVisitor.FACTORY.getClass(); + getOptions().setUseNullAnnotations(useNullAnnotations); + cgAnalyzer = new QVTiAnalyzer(this); + this.transformation = transformation; +// this.genPackage = genPackage; + this.generator = new QVTiCG2JavaVisitor(this, transformation, packageName, transformation.getName()); + /*this.cgPackage =*/ generator.generate(); + } + + @Override + public @NonNull AnalysisVisitor createAnalysisVisitor() { + return new QVTiAnalysisVisitor(cgAnalyzer); + } + + @Override + public @NonNull BoxingAnalyzer createBoxingAnalyzer() { + return new QVTiBoxingAnalyzer(cgAnalyzer); + } + + @Override + public @NonNull CG2JavaPreVisitor createCG2JavaPreVisitor() { + return new QVTiCG2JavaPreVisitor(getGlobalContext()); + } + + @Override + public DependencyVisitor createDependencyVisitor() { + return new QVTiDependencyVisitor(cgAnalyzer, getGlobalContext()); + } + + @Override + public DependencyVisitor createDependencyVisitor(@NonNull JavaLocalContext localContext) { + return new QVTiDependencyVisitor((QVTiLocalContext) localContext); + } + + @Override + public @NonNull FieldingAnalyzer createFieldingAnalyzer() { + return new QVTiFieldingAnalyzer(cgAnalyzer); + } + + @Override + protected @NonNull QVTiGlobalContext createGlobalContext() { + return new QVTiGlobalContext(this); + } + + public @NonNull String generateClassFile() { + // QVTiCG2JavaClassVisitor generator = QVTiCG2JavaClassVisitor.generate(this, transformation, packageName, className); + Set<String> allImports = generator.getAllImports(); + Map<String, String> long2ShortImportNames = ImportUtils.getLong2ShortImportNames(allImports); + return ImportUtils.resolveImports(generator.toString(), long2ShortImportNames); + } + + @Override + public @NonNull QVTiAnalyzer getAnalyzer() { + return cgAnalyzer; + } + + @Override + public @NonNull QVTiGlobalContext getGlobalContext() { + return (QVTiGlobalContext) super.getGlobalContext(); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiDependencyVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiDependencyVisitor.java new file mode 100644 index 000000000..fdd7e2831 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiDependencyVisitor.java @@ -0,0 +1,114 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.java.JavaDependencyVisitor; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +public class QVTiDependencyVisitor extends JavaDependencyVisitor implements QVTiCGModelVisitor<Object> +{ + public QVTiDependencyVisitor(@NonNull QVTiAnalyzer analyzer, @NonNull QVTiGlobalContext globalContext) { + super(analyzer, globalContext); + } + + public QVTiDependencyVisitor(@NonNull QVTiLocalContext localContext) { + super(localContext); + } + + @Override + public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) { + return visitCGPropertyAssignment(object); + } + + @Override + public Object visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) { + return visitCGRealizedVariable(object); + } + + @Override + public Object visitCGFunction(@NonNull CGFunction object) { + return visitCGOperation(object); + } + + @Override + public Object visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) { + return visitCGOperationCallExp(object); + } + + @Override + public Object visitCGFunctionParameter(@NonNull CGFunctionParameter object) { + return visitCGParameter(object); + } + + @Override + public Object visitCGGuardVariable(@NonNull CGGuardVariable object) { + return visitCGParameter(object); + } + + @Override + public Object visitCGMapping(@NonNull CGMapping object) { + return visitCGTypedElement(object); + } + + @Override + public Object visitCGMappingCall(@NonNull CGMappingCall object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGPredicate(@NonNull CGPredicate object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) { + return visitCGValuedElement(object); + } + + @Override + public Object visitCGRealizedVariable(@NonNull CGRealizedVariable object) { + return visitCGVariable(object); + } + + @Override + public Object visitCGTransformation(@NonNull CGTransformation object) { + return visitCGClass(object); + } + + @Override + public Object visitCGTypedModel(@NonNull CGTypedModel object) { + return visitCGNamedElement(object); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiFieldingAnalyzer.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiFieldingAnalyzer.java new file mode 100644 index 000000000..b9635f9fb --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiFieldingAnalyzer.java @@ -0,0 +1,209 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; + +import java.util.Set; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.examples.codegen.analyzer.FieldingAnalyzer; +import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor; + +public class QVTiFieldingAnalyzer extends FieldingAnalyzer +{ + public static class QVTiAnalysisVisitor extends AnalysisVisitor implements QVTiCGModelVisitor<Set<CGVariable>> + { + public QVTiAnalysisVisitor(@NonNull QVTiFieldingAnalyzer context) { + super(context); + } + + @Override + public @Nullable Set<CGVariable> visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) { + return visitCGPropertyAssignment(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) { + return visitCGRealizedVariable(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGFunction(@NonNull CGFunction object) { + return visitCGOperation(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) { + return visitCGOperationCallExp(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGFunctionParameter(@NonNull CGFunctionParameter object) { + return visitCGParameter(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGGuardVariable(@NonNull CGGuardVariable object) { + return visitCGParameter(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGMapping(@NonNull CGMapping object) { + return visitCGTypedElement(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGMappingCall(@NonNull CGMappingCall object) { + return visitCGValuedElement(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) { + return visitCGValuedElement(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGPredicate(@NonNull CGPredicate object) { + return visitCGValuedElement(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) { + return visitCGValuedElement(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGRealizedVariable(@NonNull CGRealizedVariable object) { + return visitCGVariable(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGTransformation(@NonNull CGTransformation object) { + return visitCGClass(object); + } + + @Override + public @Nullable Set<CGVariable> visitCGTypedModel(@NonNull CGTypedModel object) { + return visitCGNamedElement(object); + } + } + + public static class QVTiRewriteVisitor extends RewriteVisitor implements QVTiCGModelVisitor<Boolean> + { + public QVTiRewriteVisitor(@NonNull QVTiAnalyzer context, @NonNull Set<CGVariable> caughtVariables) { + super(context, caughtVariables); + } + + @Override + public Boolean visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) { + return visitCGPropertyAssignment(object); + } + + @Override + public Boolean visitCGEcoreRealizedVariable(@NonNull CGEcoreRealizedVariable object) { + return visitCGRealizedVariable(object); + } + + @Override + public Boolean visitCGFunction(@NonNull CGFunction object) { + return visitCGOperation(object); + } + + @Override + public Boolean visitCGFunctionCallExp(@NonNull CGFunctionCallExp object) { + return visitCGOperationCallExp(object); + } + + @Override + public Boolean visitCGFunctionParameter(@NonNull CGFunctionParameter object) { + return visitCGParameter(object); + } + + @Override + public Boolean visitCGGuardVariable(@NonNull CGGuardVariable object) { + return visitCGParameter(object); + } + + @Override + public Boolean visitCGMapping(@NonNull CGMapping object) { + return visitCGTypedElement(object); + } + + @Override + public Boolean visitCGMappingCall(@NonNull CGMappingCall object) { + return visitCGValuedElement(object); + } + + @Override + public Boolean visitCGMappingCallBinding(@NonNull CGMappingCallBinding object) { + return visitCGValuedElement(object); + } + + @Override + public Boolean visitCGPredicate(@NonNull CGPredicate cgPredicate) { + rewriteAsCaught(cgPredicate.getConditionExpression()); + return true; + } + + @Override + public Boolean visitCGPropertyAssignment(@NonNull CGPropertyAssignment object) { + return visitCGValuedElement(object); + } + + @Override + public Boolean visitCGRealizedVariable(@NonNull CGRealizedVariable object) { + return visitCGVariable(object); + } + + @Override + public Boolean visitCGTransformation(@NonNull CGTransformation object) { + return visitCGClass(object); + } + + @Override + public Boolean visitCGTypedModel(@NonNull CGTypedModel object) { + return visitCGNamedElement(object); + } + } + + public QVTiFieldingAnalyzer(@NonNull QVTiAnalyzer analyzer) { + super(analyzer); + } + + @Override + protected @NonNull AnalysisVisitor createAnalysisVisitor() { + return new QVTiAnalysisVisitor(this); + } + + @Override + protected @NonNull RewriteVisitor createRewriteVisitor(@NonNull Set<CGVariable> caughtVariables) { + return new QVTiRewriteVisitor((QVTiAnalyzer) analyzer, caughtVariables); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiGlobalContext.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiGlobalContext.java new file mode 100644 index 000000000..65ed5a2de --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiGlobalContext.java @@ -0,0 +1,80 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ + + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.CGElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGModelFactory; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.java.JavaCodeGenerator; +import org.eclipse.ocl.examples.codegen.java.JavaConstants; +import org.eclipse.ocl.examples.codegen.java.JavaGlobalContext; + +/** + * A JUnitGlobalContext maintains the Java-specific global context for generation of code. + */ +public class QVTiGlobalContext extends JavaGlobalContext +{ + private /*@LazyNonNull*/ CGValuedElement evaluatorParameter = null; + private /*@LazyNonNull*/ CGValuedElement idResolver = null; + + public QVTiGlobalContext(@NonNull JavaCodeGenerator codeGenerator) { + super(codeGenerator); + nameManager.reserveName(JavaConstants.EVALUATOR_NAME, null); + nameManager.reserveName("modelObjects", null); + } + + @Override + public @NonNull QVTiLocalContext createNestedContext(@NonNull CGElement cgScope) { + return new QVTiLocalContext(this, cgScope); + } + + public @NonNull CGValuedElement getEvaluatorParameter() { + CGValuedElement evaluatorParameter2 = evaluatorParameter; + if (evaluatorParameter2 == null) { + evaluatorParameter = evaluatorParameter2 = CGModelFactory.eINSTANCE.createCGParameter(); + evaluatorParameter2.setName(JavaConstants.EVALUATOR_NAME); + evaluatorParameter2.setValueName(JavaConstants.EVALUATOR_NAME); + evaluatorParameter2.setTypeId(analyzer.getTypeId(JavaConstants.EVALUATOR_TYPE_ID)); + } + return evaluatorParameter2; + } + + public @NonNull CGValuedElement getIdResolverVariable() { + CGValuedElement idResolver2 = idResolver; + if (idResolver2 == null) { + idResolver = idResolver2 = CGModelFactory.eINSTANCE.createCGParameter(); + idResolver2.setName(JavaConstants.ID_RESOLVER_NAME); + idResolver2.setValueName(JavaConstants.ID_RESOLVER_NAME); + idResolver2.setTypeId(analyzer.getTypeId(JavaConstants.ID_RESOLVER_TYPE_ID)); + } + return idResolver2; + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiLocalContext.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiLocalContext.java new file mode 100644 index 000000000..d0bf795e9 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiLocalContext.java @@ -0,0 +1,99 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ + + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.codegen.cgmodel.CGCastParameter; +import org.eclipse.ocl.examples.codegen.cgmodel.CGElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.java.JavaConstants; +import org.eclipse.ocl.examples.codegen.java.JavaLocalContext; + +/** + * A JavaLocalContext maintains the Java-specific context for generation of coide from a CGOperation. + */ +public class QVTiLocalContext extends JavaLocalContext +{ + public QVTiLocalContext(@NonNull QVTiGlobalContext globalContext, @NonNull CGElement cgScope) { + super(globalContext, cgScope); + } + + public QVTiLocalContext(@NonNull QVTiLocalContext parentContext, @NonNull CGElement cgScope) { + super(parentContext, cgScope); + } + + @Override + public @NonNull QVTiLocalContext createNestedContext(@NonNull CGElement cgScope) { + return new QVTiLocalContext(this, cgScope); + } + + /* + * If the self parameter has a known type other than Object, we add a CGCastParamter that casts the passed parameter self_0:Object to a better self. + * Otherwise we just rename the passed parameter to be self. The self parameter is of course maintained in the outer name context. + */ + @Override + public @NonNull CGParameter getCastParameter(@NonNull CGParameter cgParameter) { + if (cgParameter instanceof CGCastParameter) { + return cgParameter; + } + if (JavaConstants.SELF_NAME.equals(cgParameter.getName())) { + JavaLocalContext parentContext2 = parentContext; + if (parentContext2 != null) { + return parentContext2.getCastParameter(cgParameter); + } + else { + CGParameter cgCastParameter = basicGetCastParameter(cgParameter); + if (cgCastParameter == null) { + cgCastParameter = createCastParameter(cgParameter); + cgCastParameter.setValueName(globalContext.getSelfName()); + addCastParameter(cgParameter, cgCastParameter); + } + return cgCastParameter; + } + } + return super.getCastParameter(cgParameter); + } + + @Override + public @NonNull CGValuedElement getEvaluatorParameter() { + return getGlobalContext().getEvaluatorParameter(); + } + + @Override + public @NonNull QVTiGlobalContext getGlobalContext() { + return (QVTiGlobalContext) globalContext; + } + + @Override + public @NonNull CGValuedElement getIdResolverVariable() { + return getGlobalContext().getIdResolverVariable(); + } +} diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiPivot2CGVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiPivot2CGVisitor.java new file mode 100644 index 000000000..78bdb6df3 --- /dev/null +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/QVTiPivot2CGVisitor.java @@ -0,0 +1,491 @@ +/** + * <copyright> + * + * Copyright (c) 2013 E.D.Willink 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: + * E.D.Willink - Initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.codegen.qvti; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.examples.codegen.analyzer.Pivot2CGVisitor; +import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement; +import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation; +import org.eclipse.ocl.examples.codegen.cgmodel.CGParameter; +import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement; +import org.eclipse.ocl.examples.codegen.generator.GenModelException; +import org.eclipse.ocl.examples.domain.ids.TypeId; +import org.eclipse.ocl.examples.domain.library.LibraryProperty; +import org.eclipse.ocl.examples.domain.utilities.DomainUtil; +import org.eclipse.ocl.examples.pivot.ExpressionInOCL; +import org.eclipse.ocl.examples.pivot.NamedElement; +import org.eclipse.ocl.examples.pivot.OCLExpression; +import org.eclipse.ocl.examples.pivot.OpaqueExpression; +import org.eclipse.ocl.examples.pivot.Operation; +import org.eclipse.ocl.examples.pivot.OperationCallExp; +import org.eclipse.ocl.examples.pivot.Parameter; +import org.eclipse.ocl.examples.pivot.Property; +import org.eclipse.ocl.examples.pivot.Type; +import org.eclipse.ocl.examples.pivot.Variable; +import org.eclipse.ocl.examples.pivot.utilities.PivotUtil; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp; +import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionParameter; +import org.eclipse.qvtd.codegen.qvticgmodel.CGGuardVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMapping; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall; +import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCallBinding; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPredicate; +import org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment; +import org.eclipse.qvtd.codegen.qvticgmodel.CGRealizedVariable; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTransformation; +import org.eclipse.qvtd.codegen.qvticgmodel.CGTypedModel; +import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelFactory; +import org.eclipse.qvtd.pivot.qvtbase.BaseModel; +import org.eclipse.qvtd.pivot.qvtbase.Domain; +import org.eclipse.qvtd.pivot.qvtbase.Function; +import org.eclipse.qvtd.pivot.qvtbase.FunctionParameter; +import org.eclipse.qvtd.pivot.qvtbase.Pattern; +import org.eclipse.qvtd.pivot.qvtbase.Predicate; +import org.eclipse.qvtd.pivot.qvtbase.Rule; +import org.eclipse.qvtd.pivot.qvtbase.Transformation; +import org.eclipse.qvtd.pivot.qvtbase.TypedModel; +import org.eclipse.qvtd.pivot.qvtbase.Unit; +import org.eclipse.qvtd.pivot.qvtcorebase.Area; +import org.eclipse.qvtd.pivot.qvtcorebase.Assignment; +import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern; +import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain; +import org.eclipse.qvtd.pivot.qvtcorebase.CorePattern; +import org.eclipse.qvtd.pivot.qvtcorebase.EnforcementOperation; +import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern; +import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment; +import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable; +import org.eclipse.qvtd.pivot.qvtcorebase.VariableAssignment; +import org.eclipse.qvtd.pivot.qvtcorebase.utilities.QVTcoreBaseUtil; +import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel; +import org.eclipse.qvtd.pivot.qvtimperative.Mapping; +import org.eclipse.qvtd.pivot.qvtimperative.MappingCall; +import org.eclipse.qvtd.pivot.qvtimperative.MappingCallBinding; +import org.eclipse.qvtd.pivot.qvtimperative.util.QVTimperativeVisitor; + +public final class QVTiPivot2CGVisitor extends Pivot2CGVisitor implements QVTimperativeVisitor<CGNamedElement> +{ + protected final @NonNull QVTiAnalyzer analyzer; + protected final @NonNull QVTiGlobalContext globalContext; + + public QVTiPivot2CGVisitor(@NonNull QVTiAnalyzer analyzer, @NonNull QVTiGlobalContext globalContext) { + super(analyzer); + this.analyzer = analyzer; + this.globalContext = globalContext; + } + + protected void createMappingCalls(@NonNull Mapping pMapping, @NonNull CGMapping cgMapping) { + for (MappingCall pMappingCall : pMapping.getMappingCall()) { + CGMappingCall cgMappingCall = doVisit(CGMappingCall.class, pMappingCall); + cgMapping.getMappingCalls().add(cgMappingCall); + } + } + + protected void doBottoms(@NonNull Mapping pMapping, @NonNull CGMapping cgMapping) { + List<BottomPattern> pBottomPatterns = new ArrayList<BottomPattern>(); + { + BottomPattern pBottomPattern = pMapping.getBottomPattern(); + if (pBottomPattern != null) { + pBottomPatterns.add(pBottomPattern); + } + for (@SuppressWarnings("null")@NonNull Domain pDomain : pMapping.getDomain()) { + if (pDomain instanceof CoreDomain) { + pBottomPattern = ((CoreDomain)pDomain).getBottomPattern(); + if (pBottomPattern != null) { + pBottomPatterns.add(pBottomPattern); + } + } + } + } + List<RealizedVariable> pRealizedVariables = new ArrayList<RealizedVariable>(); + for (@SuppressWarnings("null")@NonNull BottomPattern pBottomPattern : pBottomPatterns) { + pRealizedVariables.addAll(pBottomPattern.getRealizedVariable()); + } + Collections.sort(pRealizedVariables, new Comparator<NamedElement>() + { + @Override + public int compare(NamedElement o1, NamedElement o2) { + return o1.getName().compareTo(o2.getName()); + } + }); + List<CGRealizedVariable> cgRealizedVariables = cgMapping.getRealizedVariables(); + for (@SuppressWarnings("null")@NonNull RealizedVariable pRealizedVariable : pRealizedVariables) { + CGRealizedVariable cgVariable = getRealizedVariable(pRealizedVariable); + cgRealizedVariables.add(cgVariable); + } + List<CGPropertyAssignment> cgAssignments = cgMapping.getAssignments(); + for (@SuppressWarnings("null")@NonNull BottomPattern pBottomPattern : pBottomPatterns) { + for (@SuppressWarnings("null")@NonNull Assignment pAssignment : pBottomPattern.getAssignment()) { + cgAssignments.add(doVisit(CGPropertyAssignment.class, pAssignment)); + } + } + } + + protected void doGuards(@NonNull Mapping pMapping, @NonNull CGMapping cgMapping) { + List<GuardPattern> guardPatterns = new ArrayList<GuardPattern>(); + { + GuardPattern pGuardPattern = pMapping.getGuardPattern(); + if (pGuardPattern != null) { + guardPatterns.add(pGuardPattern); + } + for (@SuppressWarnings("null")@NonNull Domain pDomain : pMapping.getDomain()) { + if (pDomain instanceof CoreDomain) { + GuardPattern guardPattern = ((CoreDomain)pDomain).getGuardPattern(); + if (guardPattern != null) { + guardPatterns.add(guardPattern); + } + } + } + } + List<Variable> pGuardVariables = new ArrayList<Variable>(); + for (@SuppressWarnings("null")@NonNull GuardPattern pGuardPattern : guardPatterns) { + pGuardVariables.addAll(pGuardPattern.getVariable()); + } + Collections.sort(pGuardVariables, new Comparator<NamedElement>() + { + @Override + public int compare(NamedElement o1, NamedElement o2) { + return o1.getName().compareTo(o2.getName()); + } + }); + List<CGGuardVariable> cgGuardVariables = new ArrayList<CGGuardVariable>(); + for (@SuppressWarnings("null")@NonNull Variable pGuardVariable : pGuardVariables) { + CGGuardVariable cgParameter = getGuardVariable(pGuardVariable); + cgGuardVariables.add(cgParameter); + } + Collections.sort(cgGuardVariables, new Comparator<CGGuardVariable>() + { + @Override + public int compare(CGGuardVariable o1, CGGuardVariable o2) { + String n1 = o1.getName(); + String n2 = o2.getName(); + return n1.compareTo(n2); + } + }); + cgMapping.getGuardVariables().addAll(cgGuardVariables); + List<CGPredicate> cgGuardExpressions = cgMapping.getPredicates(); + for (@SuppressWarnings("null")@NonNull GuardPattern pGuardPattern : guardPatterns) { + for (@SuppressWarnings("null")@NonNull Predicate pPredicate : pGuardPattern.getPredicate()) { + cgGuardExpressions.add(doVisit(CGPredicate.class, pPredicate)); + } + } + } + + public @NonNull CGFunctionParameter getFunctionParameter(@NonNull FunctionParameter aParameter) { + CGFunctionParameter cgFunctionParameter = (CGFunctionParameter)getVariablesStack().getParameter(aParameter); + if (cgFunctionParameter == null) { + cgFunctionParameter = QVTiCGModelFactory.eINSTANCE.createCGFunctionParameter(); + context.setNames(cgFunctionParameter, aParameter); + setPivot(cgFunctionParameter, aParameter); + cgFunctionParameter.setTypeId(context.getTypeId(aParameter.getTypeId())); + addParameter(aParameter, cgFunctionParameter); + } + return cgFunctionParameter; + } + + public @NonNull CGGuardVariable getGuardVariable(@NonNull Variable pParameter) { + CGGuardVariable cgGuardVariable = (CGGuardVariable) getVariablesStack().getParameter(pParameter); + if (cgGuardVariable == null) { + cgGuardVariable = QVTiCGModelFactory.eINSTANCE.createCGGuardVariable(); + context.setNames(cgGuardVariable, pParameter); + setPivot(cgGuardVariable, pParameter); + cgGuardVariable.setTypeId(context.getTypeId(pParameter.getTypeId())); + cgGuardVariable.setTypedModel(getTypedModel(pParameter)); + addParameter(pParameter, cgGuardVariable); + } + return cgGuardVariable; + } + + public @NonNull CGRealizedVariable getRealizedVariable(@NonNull RealizedVariable pRealizedVariable) { + Variables variablesStack = getVariablesStack(); + CGRealizedVariable cgVariable = (CGRealizedVariable) variablesStack.getVariable(pRealizedVariable); + if (cgVariable == null) { + Type pivotType = DomainUtil.nonNullModel(pRealizedVariable.getType()); + EClassifier eClassifier = (EClassifier) pivotType.getETarget(); + if (eClassifier != null) { + CGEcoreRealizedVariable cgEcoreRealizedVariable = QVTiCGModelFactory.eINSTANCE.createCGEcoreRealizedVariable(); + cgEcoreRealizedVariable.setEClassifier(eClassifier); + cgVariable = cgEcoreRealizedVariable; + } + if (cgVariable == null) { + cgVariable = QVTiCGModelFactory.eINSTANCE.createCGRealizedVariable(); + } + setPivot(cgVariable, pRealizedVariable); + cgVariable.setTypedModel(getTypedModel(pRealizedVariable)); + variablesStack.putVariable(pRealizedVariable, cgVariable); + } + return cgVariable; + } + + protected @NonNull CGTypedModel getTypedModel(@NonNull Variable pVariable) { + Area pArea = DomainUtil.nonNullState(QVTcoreBaseUtil.getContainingArea(pVariable)); + TypedModel pTypedModel = null; + if (pArea instanceof Domain) { + pTypedModel = DomainUtil.nonNullState(((Domain)pArea).getTypedModel()); + } + else { + Transformation pTransformation = ((Mapping)pArea).getTransformation(); + pTypedModel = DomainUtil.nonNullState(pTransformation.getModelParameter(null)); + } + return DomainUtil.nonNullState(analyzer.getTypedModel(pTypedModel)); + } + + @Override + public @Nullable CGNamedElement visitAssignment(@NonNull Assignment object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitBaseModel(@NonNull BaseModel object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitBottomPattern(@NonNull BottomPattern object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitCoreDomain(@NonNull CoreDomain object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitCorePattern(@NonNull CorePattern object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitDomain(@NonNull Domain object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitEnforcementOperation(@NonNull EnforcementOperation object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitFunction(@NonNull Function pFunction) { + CGFunction cgFunction = QVTiCGModelFactory.eINSTANCE.createCGFunction(); + setPivot(cgFunction, pFunction); + cgFunction.setRequired(pFunction.isRequired()); + for (Parameter pParameter : pFunction.getOwnedParameter()) { + cgFunction.getParameters().add(doVisit(CGParameter.class, pParameter)); + } + OpaqueExpression specification = pFunction.getBodyExpression(); + if (specification != null) { + ExpressionInOCL expressionInOCL = PivotUtil.getExpressionInOCL(pFunction, specification); + if (expressionInOCL != null) { + Variable contextVariable = expressionInOCL.getContextVariable(); + if (contextVariable != null) { + getSelfParameter(contextVariable); + } + for (@SuppressWarnings("null")@NonNull Variable parameterVariable : expressionInOCL.getParameterVariable()) { + getParameter(parameterVariable); + } + cgFunction.setBody(doVisit(CGValuedElement.class, expressionInOCL.getBodyExpression())); + } + } + analyzer.addFunction(pFunction, cgFunction); + return cgFunction; + } + + @Override + public @Nullable CGNamedElement visitFunctionParameter(@NonNull FunctionParameter pFunctionParameter) { + return getFunctionParameter(pFunctionParameter); + } + + @Override + public @Nullable CGNamedElement visitGuardPattern(@NonNull GuardPattern object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitImperativeModel(@NonNull ImperativeModel object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitMapping(@NonNull Mapping pMapping) { + CGMapping cgMapping = QVTiCGModelFactory.eINSTANCE.createCGMapping(); + setPivot(cgMapping, pMapping); + analyzer.addMapping(pMapping, cgMapping); + doGuards(pMapping, cgMapping); + doBottoms(pMapping, cgMapping); + createMappingCalls(pMapping, cgMapping); + return cgMapping; + } + + @Override + public @Nullable CGNamedElement visitMappingCall(@NonNull MappingCall pMappingCall) { + CGMappingCall cgMappingCall = QVTiCGModelFactory.eINSTANCE.createCGMappingCall(); + setPivot(cgMappingCall, pMappingCall); + List<CGMappingCallBinding> cgMappingCallBindings = new ArrayList<CGMappingCallBinding>(); + for (MappingCallBinding pMappingCallBinding : pMappingCall.getBinding()) { + CGMappingCallBinding cgMappingCallBinding = doVisit(CGMappingCallBinding.class, pMappingCallBinding); + cgMappingCallBindings.add(cgMappingCallBinding); + } + Collections.sort(cgMappingCallBindings, new Comparator<CGMappingCallBinding>() + { + @Override + public int compare(CGMappingCallBinding o1, CGMappingCallBinding o2) { + String n1 = o1.getName(); + String n2 = o2.getName(); + return n1.compareTo(n2); + } + }); + cgMappingCall.getMappingCallBindings().addAll(cgMappingCallBindings); + return cgMappingCall; + } + + @Override + public @Nullable CGNamedElement visitMappingCallBinding(@NonNull MappingCallBinding pMappingCallBinding) { + CGMappingCallBinding cgMappingCallBinding = QVTiCGModelFactory.eINSTANCE.createCGMappingCallBinding(); +// setPivot(cgMappingCallBinding, pMappingCallBinding); + cgMappingCallBinding.setName(pMappingCallBinding.getBoundVariable().getName()); + cgMappingCallBinding.setLoop(pMappingCallBinding.isIsLoop()); + cgMappingCallBinding.setValueOrValues(doVisit(CGValuedElement.class, pMappingCallBinding.getValue())); + cgMappingCallBinding.setTypeId(analyzer.getTypeId(pMappingCallBinding.getBoundVariable().getTypeId())); +// cgMappingCallBinding.setValueName(localnamepMappingCallBinding.getBoundVariable().getName()); + return cgMappingCallBinding; + } + + @Override + public @NonNull + CGValuedElement visitOperationCallExp(@NonNull OperationCallExp element) { + Operation pOperation = element.getReferredOperation(); + if (pOperation instanceof Function) { + CGFunctionCallExp cgFunctionCallExp = QVTiCGModelFactory.eINSTANCE.createCGFunctionCallExp(); + cgFunctionCallExp.setReferredOperation(pOperation); + setPivot(cgFunctionCallExp, element); + cgFunctionCallExp.setRequired(pOperation.isRequired()); + for (OCLExpression pArgument : element.getArgument()) { + CGValuedElement cgArgument = doVisit(CGValuedElement.class, pArgument); + cgFunctionCallExp.getArguments().add(cgArgument); + } +// cgOperationCallExp.setOperation(getOperation(element.getReferredOperation())); + return cgFunctionCallExp; + } + else { + return super.visitOperationCallExp(element); + } + } + + @Override + public @Nullable CGNamedElement visitPattern(@NonNull Pattern object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitPredicate(@NonNull Predicate pPredicate) { + CGPredicate cgPredicate = QVTiCGModelFactory.eINSTANCE.createCGPredicate(); +// setPivot(cgPredicate, pPredicate); +// cgPredicate.setName(pPredicate.getName()); + cgPredicate.setTypeId(analyzer.getTypeId(TypeId.BOOLEAN)); +// cgMappingCallBinding.setValueName(localnamepMappingCallBinding.getBoundVariable().getName()); + cgPredicate.setConditionExpression(doVisit(CGValuedElement.class, pPredicate.getConditionExpression())); + return cgPredicate; + } + + @Override + public @Nullable CGNamedElement visitPropertyAssignment(@NonNull PropertyAssignment pPropertyAssignment) { + Property pivotProperty = DomainUtil.nonNullModel(pPropertyAssignment.getTargetProperty()); + LibraryProperty libraryProperty = metaModelManager.getImplementation(pivotProperty); + CGPropertyAssignment cgPropertyAssignment = null; + if (isEcoreProperty(libraryProperty)) { + EStructuralFeature eStructuralFeature = (EStructuralFeature) pivotProperty.getETarget(); + if (eStructuralFeature != null) { + try { + genModelHelper.getGetAccessor(eStructuralFeature); + CGEcorePropertyAssignment cgEcorePropertyAssignment = QVTiCGModelFactory.eINSTANCE.createCGEcorePropertyAssignment(); + cgEcorePropertyAssignment.setEStructuralFeature(eStructuralFeature); + cgPropertyAssignment = cgEcorePropertyAssignment; + } catch (GenModelException e) { + } + } + } + if (cgPropertyAssignment == null) { + cgPropertyAssignment = QVTiCGModelFactory.eINSTANCE.createCGPropertyAssignment(); + } +// setPivot(cgPropertyAssignment, pPredicate); + cgPropertyAssignment.setSlotValue(doVisit(CGValuedElement.class, pPropertyAssignment.getSlotExpression())); + cgPropertyAssignment.setReferredProperty(pPropertyAssignment.getTargetProperty()); +// cgPredicate.setName(pPredicate.getName()); + cgPropertyAssignment.setTypeId(analyzer.getTypeId(TypeId.OCL_VOID)); +// cgMappingCallBinding.setValueName(localnamepMappingCallBinding.getBoundVariable().getName()); + cgPropertyAssignment.setInitValue(doVisit(CGValuedElement.class, pPropertyAssignment.getValue())); + return cgPropertyAssignment; + } + + @Override + public @Nullable CGNamedElement visitRealizedVariable(@NonNull RealizedVariable object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitRule(@NonNull Rule object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitVariableAssignment(@NonNull VariableAssignment object) { + return visiting(object); + } + + @Override + public @Nullable CGNamedElement visitTransformation(@NonNull Transformation element) { + CGTransformation cgTransformation = QVTiCGModelFactory.eINSTANCE.createCGTransformation(); + setPivot(cgTransformation, element); + List<CGTypedModel> cgTypedModels = cgTransformation.getTypedModels(); + for (TypedModel pTypedModel : element.getModelParameter()) { + CGTypedModel cgTypedModel = doVisit(CGTypedModel.class, pTypedModel); + cgTypedModel.setModelIndex(cgTypedModels.size()); + cgTypedModels.add(cgTypedModel); + } + for (Rule pivotRule : element.getRule()) { + CGMapping cgMapping = doVisit(CGMapping.class, pivotRule); + cgTransformation.getMappings().add(cgMapping); + } + for (Operation pivotOperation : element.getOwnedOperation()) { + CGOperation cgOperation = doVisit(CGOperation.class, pivotOperation); + cgTransformation.getOperations().add(cgOperation); + } + return cgTransformation; + } + + @Override + public @Nullable CGNamedElement visitTypedModel(@NonNull TypedModel pTypedModel) { + CGTypedModel cgTypedModel = QVTiCGModelFactory.eINSTANCE.createCGTypedModel(); + setPivot(cgTypedModel, pTypedModel); + analyzer.addTypedModel(pTypedModel, cgTypedModel); + return cgTypedModel; + } + + @Override + public @Nullable CGNamedElement visitUnit(@NonNull Unit object) { + return visiting(object); + } +} diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java index 027dd941f..af840a4a4 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/utilities/QVTimperativePrettyPrintVisitor.java @@ -15,8 +15,18 @@ package org.eclipse.qvtd.pivot.qvtimperative.utilities; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.examples.pivot.Variable; import org.eclipse.ocl.examples.pivot.prettyprint.PrettyPrinter; import org.eclipse.ocl.examples.pivot.util.AbstractVisitor; +import org.eclipse.qvtd.pivot.qvtbase.Domain; +import org.eclipse.qvtd.pivot.qvtbase.Predicate; +import org.eclipse.qvtd.pivot.qvtcorebase.Area; +import org.eclipse.qvtd.pivot.qvtcorebase.Assignment; +import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern; +import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain; +import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern; +import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment; +import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable; import org.eclipse.qvtd.pivot.qvtcorebase.utilities.QVTcoreBasePrettyPrintVisitor; import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel; import org.eclipse.qvtd.pivot.qvtimperative.Mapping; @@ -45,23 +55,113 @@ public class QVTimperativePrettyPrintVisitor extends QVTcoreBasePrettyPrintVisit super(context); } + private void doArea(Area pArea) { + context.append(" ("); + safeVisit(pArea.getGuardPattern()); + context.append(")\n{"); + safeVisit(pArea.getBottomPattern()); + context.append("}\n"); + } + + @Override + public Object visitBottomPattern(@NonNull BottomPattern pBottomPattern) { + for (RealizedVariable pRealizedVariable : pBottomPattern.getRealizedVariable()) { + safeVisit(pRealizedVariable); + } + context.append(" |\n"); + for (Assignment pAssignment : pBottomPattern.getAssignment()) { + safeVisit(pAssignment); + } + return null; + } + + @Override + public Object visitGuardPattern(@NonNull GuardPattern pGuardPattern) { + for (Variable pVariable : pGuardPattern.getVariable()) { + safeVisit(pVariable); + } + context.append(" |\n"); + for (Predicate pPredicate : pGuardPattern.getPredicate()) { + safeVisit(pPredicate); + } + return null; + } + public Object visitImperativeModel(@NonNull ImperativeModel object) { // TODO Auto-generated method stub return null; } - public Object visitMapping(@NonNull Mapping object) { - // TODO Auto-generated method stub + public Object visitMapping(@NonNull Mapping pMapping) { + context.append("map "); + context.appendName(pMapping); + context.append(" in "); + context.appendName(pMapping.getTransformation()); + context.append(") {\n"); + context.push("", ""); + for (Domain pDomain : pMapping.getDomain()) { + if (pDomain instanceof CoreDomain) { + context.appendName(pDomain); + doArea((CoreDomain)pDomain); + } + } + context.append("where"); + doArea(pMapping); + for (MappingCall pMappingCall : pMapping.getMappingCall()) { + safeVisit(pMappingCall); + } + context.pop(); + context.append("\n}"); return null; } - public Object visitMappingCall(@NonNull MappingCall object) { - // TODO Auto-generated method stub + public Object visitMappingCall(@NonNull MappingCall pMappingCall) { + context.append("map "); + context.appendName(pMappingCall.getReferredMapping()); + context.append(" {\n"); + context.push("", ""); + for (MappingCallBinding mappingCallBinding : pMappingCall.getBinding()) { + safeVisit(mappingCallBinding); + } + context.append("}"); + context.pop(); return null; } - public Object visitMappingCallBinding(@NonNull MappingCallBinding object) { - // TODO Auto-generated method stub + public Object visitMappingCallBinding(@NonNull MappingCallBinding bMappingCallBinding) { + context.appendName(bMappingCallBinding.getBoundVariable()); + context.append(bMappingCallBinding.isIsLoop() ? " <= " : " := "); + safeVisit(bMappingCallBinding.getValue()); + context.append(";\n"); + return null; + } + + @Override + public Object visitPredicate(@NonNull Predicate pPredicate) { + safeVisit(pPredicate.getConditionExpression()); + return null; + } + + @Override + public Object visitPropertyAssignment(@NonNull PropertyAssignment pPropertyAssignment) { + safeVisit(pPropertyAssignment.getSlotExpression()); + context.append(" = "); + safeVisit(pPropertyAssignment.getValue()); + context.append(";\n"); + return null; + } + + @Override + public Object visitRealizedVariable(@NonNull RealizedVariable pRealizedVariable) { + context.append("realize "); + visitVariable(pRealizedVariable); + return null; + } + + @Override + public Object visitVariable(@NonNull Variable pVariable) { + super.visitVariable(pVariable); + context.append(";\n"); return null; } } diff --git a/releng/org.eclipse.qvtd.build/.launches/GenerateQVTdCGModels.mwe2.launch b/releng/org.eclipse.qvtd.build/.launches/GenerateQVTdCGModels.mwe2.launch new file mode 100644 index 000000000..7ddb4c74f --- /dev/null +++ b/releng/org.eclipse.qvtd.build/.launches/GenerateQVTdCGModels.mwe2.launch @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.qvtd.build"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/qvtd/build/mwe2/GenerateQVTdCGModels.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.qvtd.build"/>
+</launchConfiguration>
diff --git a/releng/org.eclipse.qvtd.build/META-INF/MANIFEST.MF b/releng/org.eclipse.qvtd.build/META-INF/MANIFEST.MF index 7d03c277b..817807a5c 100644 --- a/releng/org.eclipse.qvtd.build/META-INF/MANIFEST.MF +++ b/releng/org.eclipse.qvtd.build/META-INF/MANIFEST.MF @@ -28,7 +28,8 @@ Require-Bundle: org.eclipse.xtext, org.eclipse.ocl.examples.xtext.oclstdlib, org.eclipse.qvtd.xtext.qvtcore;visibility:=reexport, org.eclipse.qvtd.xtext.qvtimperative;visibility:=reexport, - org.eclipse.qvtd.xtext.qvtrelation;visibility:=reexport + org.eclipse.qvtd.xtext.qvtrelation;visibility:=reexport, + org.eclipse.qvtd.codegen;bundle-version="0.10.0" Import-Package: org.apache.commons.logging, org.apache.log4j Bundle-Vendor: %providerName diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdCGModels.mwe2 b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdCGModels.mwe2 new file mode 100644 index 000000000..40dde418b --- /dev/null +++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdCGModels.mwe2 @@ -0,0 +1,66 @@ +/** + * <copyright> + * + * Copyright (c) 2010 E.D.Willink 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: + * E.D.Willink - initial API and implementation + * + * </copyright> + * + * $Id: GenerateXtextModels.mwe2,v 1.2 2011/01/24 20:54:27 ewillink Exp $ + * + * Run As->MWE2 Workflow to regenerate the Xtest CST models. + */ +module GenerateQVTdXtextModels + +import org.eclipse.ocl.examples.build.utilities.* +import org.eclipse.emf.mwe.utils.* +import org.eclipse.emf.mwe.utils.* +import org.eclipse.emf.ecore.resource.impl.* + +/** + * Generate the Concrete Syntax Models used by the Xtext editors. + */ +Workflow { + bean = ResourceSetImpl : resourceSet {} + bean = StandaloneSetup { resourceSet = resourceSet + platformUri = ".." +// platformUri = "./META-INF" // A local folder to minimize workspace searching + scanClassPath = true // But we do need to search the plugin-space + registerGeneratedEPackage = "org.eclipse.xtext.common.types.TypesPackage" + uriMap = Mapping { + from = "platform:/plugin/org.eclipse.emf.ecore/" + to = "platform:/resource/org.eclipse.emf.ecore/" + } + uriMap = Mapping { + from = "platform:/plugin/org.eclipse.ocl.examples.pivot/" + to = "platform:/resource/org.eclipse.ocl.examples.pivot/" + } + uriMap = Mapping { + from = "platform:/plugin/org.eclipse.ocl.examples.xtext.base/" + to = "platform:/resource/org.eclipse.ocl.examples.xtext.base/" + } + } + bean = GenModelSetup { resourceSet = resourceSet } + bean = UMLGenModelSetup { resourceSet = resourceSet } + component = GenerateModel { resourceSet = resourceSet skipOnErrors = true + genModel = "/org.eclipse.qvtd.codegen/model/qvticgmodel.genmodel" + } + component = DerivedCGModelVisitorCodeGenerator { resourceSet = resourceSet + projectName = "org.eclipse.qvtd.codegen" + genModelFile = "model/qvticgmodel.genmodel" + javaFolder = "emf-gen" + modelPackageName = "org.eclipse.qvtd.codegen.qvticgmodel" + visitorPackageName = "org.eclipse.qvtd.codegen.qvticgmodel.util" + visitorClassName = "QVTiCGModelVisitor" + superVisitorPackageName = "org.eclipse.ocl.examples.codegen.cgmodel.util" + superVisitorClassName = "CGModelVisitor" + visitablePackageName = "org.eclipse.ocl.examples.codegen.cgmodel" + visitableClassName= "CGElement" + } +}
\ No newline at end of file diff --git a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java index 7fda20494..baa52c21f 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java +++ b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/LoadTestCase.java @@ -77,10 +77,10 @@ public class LoadTestCase extends XtextTestCase return pivotResource; } finally { - if (adapter != null) { - adapter.dispose(); - adapter.getMetaModelManager().dispose(); - } +// if (adapter != null) { +// adapter.dispose(); +// adapter.getMetaModelManager().dispose(); +// } } } diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/.classpath b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/.classpath index 64c5e31b7..59cf3977c 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/.classpath +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/.classpath @@ -3,5 +3,6 @@ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="src-gen"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/META-INF/MANIFEST.MF index 30ca5ce1c..4943ab213 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/META-INF/MANIFEST.MF +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/META-INF/MANIFEST.MF @@ -1,12 +1,27 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.qvtd.xtext.qvtcore.tests +Bundle-SymbolicName: org.eclipse.qvtd.xtext.qvtcore.tests;singleton:=true Bundle-Version: 0.10.0.qualifier +Bundle-ClassPath: . Bundle-RequiredExecutionEnvironment: J2SE-1.5 Require-Bundle: org.eclipse.qvtd.xtext.qvtbase.tests, org.eclipse.qvtd.xtext.qvtcore.ui, - org.eclipse.qvtd.xtext.qvtimperative.ui + org.eclipse.qvtd.xtext.qvtimperative.ui, + org.eclipse.qvtd.codegen, + org.eclipse.ocl.examples.codegen.dynamic, + org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport +Bundle-ActivationPolicy: lazy Bundle-Vendor: %providerName Bundle-Localization: plugin -Export-Package: org.eclipse.qvtd.xtext.qvtcore.tests +Export-Package: org.eclipse.qvtd.xtext.qvtcore.tests, + test.hls.HLSTree, + test.hls.HLSTree.impl, + test.hls.HLSTree.util, + test.hsv.HSVTree, + test.hsv.HSVTree.impl, + test.hsv.HSVTree.util, + test.middle.HSV2HLS, + test.middle.HSV2HLS.impl, + test.middle.HSV2HLS.util diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/build.properties b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/build.properties index 62758a641..acd1d8457 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/build.properties +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/build.properties @@ -1,7 +1,10 @@ -source.. = src/ +# + +bin.includes = .,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src-gen/,\ + src/ output.. = bin/ -bin.includes = META-INF/,\ - .,\ - plugin.properties,\ - about.html -additional.bundles = org.eclipse.jdt.annotation
\ No newline at end of file diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/plugin.xml b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/plugin.xml new file mode 100644 index 000000000..0e4a38ac9 --- /dev/null +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/plugin.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- +--> + +<plugin> + + <extension point="org.eclipse.emf.ecore.generated_package"> + <!-- @generated HSV2HLS --> + <package + uri="platform:/resource/ICMT2013/ColoredTree2Tree.ecore" + class="test.middle.HSV2HLS.HSV2HLSPackage" + genModel="src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel"/> + </extension> + + <extension point="org.eclipse.emf.ecore.generated_package"> + <!-- @generated HSV2HLS --> + <package + uri="platform:/resource/ICMT2013/HSVTree.ecore" + class="test.hsv.HSVTree.HSVTreePackage" + genModel="src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel"/> + </extension> + + <extension point="org.eclipse.emf.ecore.generated_package"> + <!-- @generated HSV2HLS --> + <package + uri="platform:/resource/ICMT2013/HLSTree.ecore" + class="test.hls.HLSTree.HLSTreePackage" + genModel="src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel"/> + </extension> + +</plugin> diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/CodeGenTests.java b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/CodeGenTests.java new file mode 100644 index 000000000..b7eeee564 --- /dev/null +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/CodeGenTests.java @@ -0,0 +1,90 @@ +/** + * <copyright> + * + * Copyright (c) 2012 E.D.Willink 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: + * E.D.Willink - initial API and implementation + * + * </copyright> + */ +package org.eclipse.qvtd.xtext.qvtcore.tests; + +import java.io.FileWriter; +import java.io.Writer; + +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.ocl.examples.codegen.dynamic.OCL2JavaFileObject; +import org.eclipse.ocl.examples.library.oclstdlib.OCLstdlibTables; +import org.eclipse.ocl.examples.pivot.manager.MetaModelManager; +import org.eclipse.ocl.examples.pivot.manager.MetaModelManagerResourceSetAdapter; +import org.eclipse.ocl.examples.xtext.essentialocl.services.EssentialOCLLinkingService; +import org.eclipse.qvtd.codegen.qvti.QVTiCodeGenerator; +import org.eclipse.qvtd.pivot.qvtbase.Transformation; +import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel; +import org.eclipse.qvtd.xtext.qvtbase.tests.LoadTestCase; +import org.eclipse.qvtd.xtext.qvtcore.QVTcoreStandaloneSetup; +import org.eclipse.qvtd.xtext.qvtimperative.QVTimperativeStandaloneSetup; + +/** + * Tests that load a model and verify that there are no unresolved proxies as a result. + */ +public class CodeGenTests extends LoadTestCase +{ + @Override + protected void setUp() throws Exception { + EssentialOCLLinkingService.DEBUG_RETRY = true; + super.setUp(); + QVTcoreStandaloneSetup.doSetup(); + QVTimperativeStandaloneSetup.doSetup(); + } + + public void testCG_HSV2HLS_qvti() throws Exception { + metaModelManager = new MetaModelManager(); + resourceSet.getPackageRegistry().put(GenModelPackage.eNS_URI, GenModelPackage.eINSTANCE); + URI inputURI = getProjectFileURI("HSV2HLS.genmodel"); + Resource genResource = resourceSet.getResource(inputURI, true); + for (EObject eObject : genResource.getContents()) { + if (eObject instanceof GenModel) { + metaModelManager.addGenModel((GenModel)eObject); + } + } + MetaModelManagerResourceSetAdapter.getAdapter(resourceSet, metaModelManager); + Resource resource = doLoad_Concrete("HSV2HLS", "qvti"); + for (EObject eObject : resource.getContents()) { + if (eObject instanceof ImperativeModel) { + for (org.eclipse.ocl.examples.pivot.Package pPackage : ((ImperativeModel)eObject).getNestedPackage()) { + if (pPackage instanceof Transformation) { + String packageName = "cg"; + QVTiCodeGenerator cg = new QVTiCodeGenerator(metaModelManager, (Transformation)pPackage, packageName, true); + String className = pPackage.getName(); + String qualifiedName = packageName + "." + className; + String javaCodeSource = cg.generateClassFile(); +// if (saveSource) { + String fileName = "src-gen/" + qualifiedName.replace('.', '/') + ".java"; + Writer writer = new FileWriter(fileName); + writer.append(javaCodeSource); + writer.close(); +// } + OCLstdlibTables.LIBRARY.getClass(); // Ensure coherent initialization + try { + Class<?> txClass = OCL2JavaFileObject.loadClass(qualifiedName, javaCodeSource); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + throw e; + } + } + } + } + } + } +} diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HLSTree.ecore b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HLSTree.ecore index 47ce33161..535b09347 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HLSTree.ecore +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HLSTree.ecore @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="HLSTree" nsURI="platform:/resource/ICMT2013/HLSTree.ecore" nsPrefix="pfx"> - <eClassifiers xsi:type="ecore:EDataType" name="HLS" instanceTypeName="HLS" serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="HLS" instanceClassName="test.hls.HLS"/> <eClassifiers xsi:type="ecore:EClass" name="HLSNode"> <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//HLSNode" eOpposite="#//HLSNode/children"/> diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.ecore b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.ecore index 555d11809..f5cf30e8a 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.ecore +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.ecore @@ -2,7 +2,7 @@ <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="HSV2HLS" nsURI="platform:/resource/ICMT2013/ColoredTree2Tree.ecore" nsPrefix="pfx"> - <eClassifiers xsi:type="ecore:EDataType" name="RGB" serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="RGB" instanceClassName="test.middle.RGB"/> <eClassifiers xsi:type="ecore:EClass" name="HSVNode2HLSNode"> <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//HSVNode2HLSNode" eOpposite="#//HSVNode2HLSNode/children"/> diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel new file mode 100644 index 000000000..dbf588df4 --- /dev/null +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.genmodel @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.qvtd.xtext.qvtcore.tests/src-gen"
+ modelPluginID="org.eclipse.qvtd.xtext.qvtcore.tests" modelName="HSV2HLS" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>HSV2HLS.ecore</foreignModel>
+ <genPackages prefix="HSV2HLS" basePackage="test.middle" disposableProviderFactory="true"
+ ecorePackage="HSV2HLS.ecore#/">
+ <genDataTypes ecoreDataType="HSV2HLS.ecore#//RGB"/>
+ <genClasses ecoreClass="HSV2HLS.ecore#//HSVNode2HLSNode">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference HSV2HLS.ecore#//HSVNode2HLSNode/parent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference HSV2HLS.ecore#//HSVNode2HLSNode/children"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference HSV2HLS.ecore#//HSVNode2HLSNode/hsv"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference HSV2HLS.ecore#//HSVNode2HLSNode/hls"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute HSV2HLS.ecore#//HSVNode2HLSNode/rgb"/>
+ </genClasses>
+ </genPackages>
+ <genPackages prefix="HSVTree" basePackage="test.hsv" disposableProviderFactory="true"
+ ecorePackage="HSVTree.ecore#/">
+ <genDataTypes ecoreDataType="HSVTree.ecore#//HSV"/>
+ <genClasses ecoreClass="HSVTree.ecore#//HSVNode">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference HSVTree.ecore#//HSVNode/parent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference HSVTree.ecore#//HSVNode/children"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute HSVTree.ecore#//HSVNode/hsv"/>
+ </genClasses>
+ </genPackages>
+ <genPackages prefix="HLSTree" basePackage="test.hls" disposableProviderFactory="true"
+ ecorePackage="HLSTree.ecore#/">
+ <genDataTypes ecoreDataType="HLSTree.ecore#//HLS"/>
+ <genClasses ecoreClass="HLSTree.ecore#//HLSNode">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference HLSTree.ecore#//HLSNode/parent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference HLSTree.ecore#//HLSNode/children"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute HLSTree.ecore#//HLSNode/hls"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.qvti b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.qvti index 690d182fb..64a1367dd 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.qvti +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSV2HLS.qvti @@ -11,14 +11,14 @@ query ColorChanger::rgb2hls(color : HSV2HLS::RGB) : HLSTree::HLS; query ColorChanger::rgb2hsv(color : HSV2HLS::RGB) : HSVTree::HSV; map HSV2MiddleRoot in ColorChanger { - hsv() { hsvRoot : HSVNode | hsvRoot.parent = null;} + hsv(hsvRoot : HSVNode | hsvRoot.parent = null;) {} where() { realize middleRoot : HSVNode2HLSNode | middleRoot.hsv := hsvRoot; middleRoot.rgb := hsv2rgb(hsvRoot.hsv); } map HSV2MiddleRecursion { - hsvNode := hsvRoot.children; + hsvNode <= hsvRoot.children; middleParent := middleRoot; } map Middle2HLSRoot { @@ -35,7 +35,7 @@ map HSV2MiddleRecursion in ColorChanger { middleNode.rgb := hsv2rgb(hsvNode.hsv); } map HSV2MiddleRecursion { - hsvNode := hsvNode.children; + hsvNode <= hsvNode.children; middleParent := middleNode; } } @@ -48,7 +48,7 @@ map Middle2HLSRoot in ColorChanger { hlsNode.hls := rgb2hls(middleNode.rgb); } map Middle2HLSRecursion { - middleNode := middleNode.children; + middleNode <= middleNode.children; } } @@ -60,6 +60,6 @@ map Middle2HLSRecursion in ColorChanger { hlsNode.hls := rgb2hls(middleNode.rgb); } map Middle2HLSRecursion { - middleNode := middleNode.children; + middleNode <= middleNode.children; } } diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSVTree.ecore b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSVTree.ecore index d52198127..5004f5fb2 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSVTree.ecore +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/models/HSVTree.ecore @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="HSVTree" nsURI="platform:/resource/ICMT2013/HSVTree.ecore" nsPrefix="pfx"> - <eClassifiers xsi:type="ecore:EDataType" name="HSV" serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="HSV" instanceClassName="test.hsv.HSV"/> <eClassifiers xsi:type="ecore:EClass" name="HSVNode"> <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//HSVNode" eOpposite="#//HSVNode/children"/> diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/text/.gitignore b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/text/.gitignore new file mode 100644 index 000000000..457360fa6 --- /dev/null +++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/text/.gitignore @@ -0,0 +1 @@ +/description.txt |