diff options
author | pfullbright | 2007-04-25 16:09:37 -0400 |
---|---|---|
committer | pfullbright | 2007-04-25 16:09:37 -0400 |
commit | 5a50ff3aeafeb18e74f2ae005e86953fb4e38ceb (patch) | |
tree | 5f403b003319df613511081401862c5a1e6781f6 | |
download | webtools.dali-5a50ff3aeafeb18e74f2ae005e86953fb4e38ceb.tar.gz webtools.dali-5a50ff3aeafeb18e74f2ae005e86953fb4e38ceb.tar.xz webtools.dali-5a50ff3aeafeb18e74f2ae005e86953fb4e38ceb.zip |
renamed
465 files changed, 123567 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/.classpath b/jpa/plugins/org.eclipse.jpt.core/.classpath new file mode 100644 index 0000000000..8f257414e6 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/.classpath @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="property_files"/> + <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="output" path="bin"/> +</classpath> diff --git a/jpa/plugins/org.eclipse.jpt.core/.cvsignore b/jpa/plugins/org.eclipse.jpt.core/.cvsignore new file mode 100644 index 0000000000..60463af3fc --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/.cvsignore @@ -0,0 +1,2 @@ +bin +build.xml diff --git a/jpa/plugins/org.eclipse.jpt.core/.project b/jpa/plugins/org.eclipse.jpt.core/.project new file mode 100644 index 0000000000..6ab3035c3c --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.jpt.core</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/jpa/plugins/org.eclipse.jpt.core/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.core/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..00070b73fb --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Sun Nov 12 15:24:36 EST 2006 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +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.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/jpa/plugins/org.eclipse.jpt.core/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.core/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..a265455e0a --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/META-INF/MANIFEST.MF @@ -0,0 +1,54 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-Vendor: %providerName +Bundle-SymbolicName: org.eclipse.jpt.core;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.eclipse.jpt.core.internal.JpaCorePlugin +Bundle-ClassPath: . +Bundle-Localization: plugin +Eclipse-LazyStart: true +Require-Bundle: org.eclipse.core.commands, + org.eclipse.core.filebuffers, + org.eclipse.core.resources, + org.eclipse.core.runtime, + org.eclipse.emf.ecore, + org.eclipse.emf.ecore.xmi, + org.eclipse.jdt.core, + org.eclipse.jem, + org.eclipse.jem.util, + org.eclipse.jem.workbench, + org.eclipse.jst.j2ee.core, + org.eclipse.jpt.db, + org.eclipse.jpt.utility, + org.eclipse.text, + org.eclipse.wst.common.emf, + org.eclipse.wst.common.frameworks, + org.eclipse.wst.common.modulecore, + org.eclipse.wst.common.project.facet.core, + org.eclipse.wst.sse.core, + org.eclipse.wst.validation, + org.eclipse.wst.xml.core, + org.eclipse.xsd +Export-Package: org.eclipse.jpt.core.internal, + org.eclipse.jpt.core.internal.content.java, + org.eclipse.jpt.core.internal.content.java.mappings, + org.eclipse.jpt.core.internal.content.java.mappings.util, + org.eclipse.jpt.core.internal.content.java.util, + org.eclipse.jpt.core.internal.content.orm, + org.eclipse.jpt.core.internal.content.orm.resource, + org.eclipse.jpt.core.internal.content.orm.util, + org.eclipse.jpt.core.internal.content.persistence, + org.eclipse.jpt.core.internal.content.persistence.resource, + org.eclipse.jpt.core.internal.content.persistence.util, + org.eclipse.jpt.core.internal.facet, + org.eclipse.jpt.core.internal.jdtutility, + org.eclipse.jpt.core.internal.mappings, + org.eclipse.jpt.core.internal.mappings.util, + org.eclipse.jpt.core.internal.platform, + org.eclipse.jpt.core.internal.platform.generic, + org.eclipse.jpt.core.internal.prefs, + org.eclipse.jpt.core.internal.synch, + org.eclipse.jpt.core.internal.util, + org.eclipse.jpt.core.internal.validation +Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/jpa/plugins/org.eclipse.jpt.core/build.properties b/jpa/plugins/org.eclipse.jpt.core/build.properties new file mode 100644 index 0000000000..9494ab4dcb --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/build.properties @@ -0,0 +1,22 @@ +############################################################################### +# Copyright (c) 2006 Oracle. +# 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: +# Oracle. - initial API and implementation +############################################################################### +javacSource=1.5 +javacTarget=1.5 +source.. = src/,\ + property_files/ +output.. = bin/ +bin.includes = .,\ + model/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +src.includes = model/ diff --git a/jpa/plugins/org.eclipse.jpt.core/component.xml b/jpa/plugins/org.eclipse.jpt.core/component.xml new file mode 100644 index 0000000000..2311024fcd --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/component.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt.core"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.core" fragment="false"/></component>
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/model/DaliEmfFormatter.xml b/jpa/plugins/org.eclipse.jpt.core/model/DaliEmfFormatter.xml new file mode 100644 index 0000000000..0c60c82f8f --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/model/DaliEmfFormatter.xml @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="UTF-8"?> +<profiles version="10"> +<profile kind="CodeFormatterProfile" name="DaliEMFFormatter" version="10"> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="2"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="1"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="80"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="32"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="48"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="1"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="32"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/> +<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/> +<setting id="org.eclipse.jdt.core.compiler.source" value="1.5"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/> +<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.5"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="insert"/> +<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="true"/> +<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.5"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="52"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="1"/> +<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/> +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.comment.format_comments" value="true"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/> +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/> +</profile> +</profiles> diff --git a/jpa/plugins/org.eclipse.jpt.core/model/core.ecore b/jpa/plugins/org.eclipse.jpt.core/model/core.ecore new file mode 100644 index 0000000000..96c4982baa --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/model/core.ecore @@ -0,0 +1,529 @@ +<?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="internal" + nsURI="jpt.core.xmi" nsPrefix="jpt.core"> + <eClassifiers xsi:type="ecore:EClass" name="IJpaModel" abstract="true" interface="true"/> + <eClassifiers xsi:type="ecore:EClass" name="JpaModel" eSuperTypes="#//JpaEObject #//IJpaModel"> + <eStructuralFeatures xsi:type="ecore:EReference" name="projects" upperBound="-1" + eType="#//IJpaProject" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IJpaEObject" abstract="true" interface="true"> + <eOperations name="getJpaProject" eType="#//IJpaProject"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JpaEObject" abstract="true" eSuperTypes="#//IJpaEObject"/> + <eClassifiers xsi:type="ecore:EClass" name="IJpaProject" abstract="true" interface="true" + eSuperTypes="#//IJpaEObject"> + <eOperations name="getModel" lowerBound="1" eType="#//IJpaModel"/> + <eOperations name="getPlatform" ordered="false" unique="false" lowerBound="1" + eType="#//IJpaPlatform"/> + <eOperations name="setPlatform"> + <eParameters name="platformId" ordered="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + </eOperations> + <eOperations name="getDataSource" lowerBound="1" eType="#//IJpaDataSource"/> + <eOperations name="setDataSource" ordered="false" unique="false" lowerBound="1"> + <eParameters name="connectionProfileName" ordered="false" unique="false" lowerBound="1" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JpaProject" eSuperTypes="#//JpaEObject #//IJpaProject"> + <eStructuralFeatures xsi:type="ecore:EReference" name="platform" ordered="false" + unique="false" lowerBound="1" eType="#//IJpaPlatform" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="dataSource" ordered="false" + unique="false" eType="#//IJpaDataSource" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="files" upperBound="-1" + eType="#//IJpaFile" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IJpaPlatform" abstract="true" interface="true"/> + <eClassifiers xsi:type="ecore:EClass" name="IJpaDataSource" abstract="true" interface="true" + eSuperTypes="#//IJpaEObject"> + <eOperations name="getConnectionProfileName" ordered="false" unique="false" lowerBound="1" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JpaDataSource" eSuperTypes="#//JpaEObject #//IJpaDataSource"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="connectionProfileName" + ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IJpaFile" abstract="true" interface="true" + eSuperTypes="#//IJpaEObject"> + <eOperations name="getContentId" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eOperations name="getContent" eType="#//IJpaRootContentNode"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JpaFile" eSuperTypes="#//JpaEObject #//IJpaFile"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="contentId" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="content" eType="#//IJpaRootContentNode" + containment="true" eOpposite="#//IJpaRootContentNode/jpaFile"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IJpaSourceObject" abstract="true" interface="true" + eSuperTypes="#//IJpaEObject"> + <eOperations name="getJpaFile" eType="#//IJpaFile"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IXmlEObject" abstract="true" interface="true" + eSuperTypes="#//IJpaEObject #//IJpaSourceObject"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlEObject" abstract="true" eSuperTypes="#//JpaEObject #//IXmlEObject"/> + <eClassifiers xsi:type="ecore:EClass" name="IJpaContentNode" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eOperations name="getJpaFile" lowerBound="1" eType="#//IJpaFile"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IJpaRootContentNode" abstract="true" + interface="true" eSuperTypes="#//IJpaContentNode"> + <eStructuralFeatures xsi:type="ecore:EReference" name="jpaFile" eType="#//IJpaFile" + changeable="false" defaultValueLiteral="" eOpposite="#//JpaFile/content"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IPersistentType" abstract="true" interface="true" + eSuperTypes="#//IJpaContentNode"> + <eOperations name="getMapping" lowerBound="1" eType="#//ITypeMapping"/> + <eOperations name="parentPersistentType" eType="#//IPersistentType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="mappingKey" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ITypeMapping" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eOperations name="getPersistentType" lowerBound="1" eType="#//IPersistentType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="tableName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="NullTypeMapping" eSuperTypes="#//JpaEObject #//ITypeMapping #//IJpaSourceObject"/> + <eClassifiers xsi:type="ecore:EClass" name="IPersistentAttribute" abstract="true" + interface="true" eSuperTypes="#//IJpaContentNode"> + <eOperations name="getMapping" lowerBound="1" eType="#//IAttributeMapping"/> + <eOperations name="typeMapping" lowerBound="1" eType="#//ITypeMapping"/> + <eOperations name="getName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="mappingKey" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IAttributeMapping" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eOperations name="getPersistentAttribute" lowerBound="1" eType="#//IPersistentAttribute"/> + <eOperations name="isDefault" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="AccessType"> + <eLiterals name="Default" literal="Default"/> + <eLiterals name="PROPERTY" value="1" literal="Property"/> + <eLiterals name="FIELD" value="2" literal="Field"/> + </eClassifiers> + <eSubpackages name="mappings" nsURI="jpt.core.mappings.xmi" nsPrefix="jpt.core.mappings"> + <eClassifiers xsi:type="ecore:EClass" name="IMappedSuperclass" abstract="true" + interface="true" eSuperTypes="#//ITypeMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="IEntity" abstract="true" interface="true" + eSuperTypes="#//ITypeMapping"> + <eOperations name="discriminatorValueIsAllowed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eOperations name="getSecondaryTables" upperBound="-1" eType="#//mappings/ISecondaryTable"/> + <eOperations name="parentEntity" eType="#//mappings/IEntity"/> + <eOperations name="rootEntity" eType="#//mappings/IEntity"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="table" lowerBound="1" + eType="#//mappings/ITable" changeable="false" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="primaryKeyJoinColumns" + upperBound="-1" eType="#//mappings/IPrimaryKeyJoinColumn" changeable="false" + volatile="true" transient="true" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedPrimaryKeyJoinColumns" + upperBound="-1" eType="#//mappings/IPrimaryKeyJoinColumn" containment="true" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultPrimaryKeyJoinColumns" + upperBound="-1" eType="#//mappings/IPrimaryKeyJoinColumn" containment="true" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="inheritanceStrategy" + eType="#//mappings/InheritanceType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultDiscriminatorValue" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedDiscriminatorValue" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="discriminatorValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="discriminatorColumn" + eType="#//mappings/IDiscriminatorColumn" changeable="false" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceGenerator" eType="#//mappings/ISequenceGenerator" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="tableGenerator" eType="#//mappings/ITableGenerator" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="attributeOverrides" upperBound="-1" + eType="#//mappings/IAttributeOverride" changeable="false" volatile="true" + transient="true" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedAttributeOverrides" + upperBound="-1" eType="#//mappings/IAttributeOverride" containment="true" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultAttributeOverrides" + upperBound="-1" eType="#//mappings/IAttributeOverride" containment="true" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="associationOverrides" + upperBound="-1" eType="#//mappings/IAssociationOverride" changeable="false" + volatile="true" transient="true" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedAssociationOverrides" + upperBound="-1" eType="#//mappings/IAssociationOverride" containment="true" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultAssociationOverrides" + upperBound="-1" eType="#//mappings/IAssociationOverride" containment="true" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="namedQueries" upperBound="-1" + eType="#//mappings/INamedQuery" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="namedNativeQueries" upperBound="-1" + eType="#//mappings/INamedNativeQuery" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IEmbeddable" abstract="true" interface="true" + eSuperTypes="#//ITypeMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="ITable" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedCatalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultCatalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedSchema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultSchema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="INamedColumn" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnDefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IAbstractColumn" abstract="true" interface="true" + eSuperTypes="#//mappings/INamedColumn"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="#//mappings/DefaultFalseBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullable" eType="#//mappings/DefaultTrueBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="insertable" eType="#//mappings/DefaultTrueBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="updatable" eType="#//mappings/DefaultTrueBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="table" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedTable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultTable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IColumn" abstract="true" interface="true" + eSuperTypes="#//mappings/IAbstractColumn"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" + defaultValueLiteral="255"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="precision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="scale" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IColumnMapping" abstract="true" interface="true"> + <eOperations name="getColumn" eType="#//mappings/IColumn"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IBasic" abstract="true" interface="true" + eSuperTypes="#//IAttributeMapping #//mappings/IColumnMapping"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="#//mappings/DefaultEagerFetchType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="optional" eType="#//mappings/DefaultTrueBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="column" lowerBound="1" + eType="#//mappings/IColumn" changeable="false" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="lob" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="temporal" eType="#//mappings/TemporalType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="enumerated" eType="#//mappings/EnumType"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IId" abstract="true" interface="true" + eSuperTypes="#//IAttributeMapping #//mappings/IColumnMapping"> + <eStructuralFeatures xsi:type="ecore:EReference" name="column" lowerBound="1" + eType="#//mappings/IColumn" changeable="false" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="generatedValue" eType="#//mappings/IGeneratedValue" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="temporal" eType="#//mappings/TemporalType"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="tableGenerator" eType="#//mappings/ITableGenerator" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceGenerator" eType="#//mappings/ISequenceGenerator" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ITransient" abstract="true" interface="true" + eSuperTypes="#//IAttributeMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="IVersion" abstract="true" interface="true" + eSuperTypes="#//IAttributeMapping #//mappings/IColumnMapping"> + <eStructuralFeatures xsi:type="ecore:EReference" name="column" lowerBound="1" + eType="#//mappings/IColumn" changeable="false" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="temporal" eType="#//mappings/TemporalType"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IEmbeddedId" abstract="true" interface="true" + eSuperTypes="#//IAttributeMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="IEmbedded" abstract="true" interface="true" + eSuperTypes="#//IAttributeMapping"> + <eOperations name="embeddable" eType="#//mappings/IEmbeddable"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="attributeOverrides" upperBound="-1" + eType="#//mappings/IAttributeOverride" changeable="false" volatile="true" + transient="true" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedAttributeOverrides" + upperBound="-1" eType="#//mappings/IAttributeOverride" containment="true" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultAttributeOverrides" + upperBound="-1" eType="#//mappings/IAttributeOverride" containment="true" + resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IRelationshipMapping" abstract="true" + interface="true" eSuperTypes="#//IAttributeMapping"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetEntity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedTargetEntity" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultTargetEntity" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="resolvedTargetEntity" + eType="#//mappings/IEntity"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="INonOwningMapping" abstract="true" + interface="true" eSuperTypes="#//mappings/IRelationshipMapping"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="mappedBy" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IMultiRelationshipMapping" abstract="true" + interface="true" eSuperTypes="#//mappings/INonOwningMapping"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="#//mappings/DefaultLazyFetchType"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="joinTable" lowerBound="1" + eType="#//mappings/IJoinTable" changeable="false" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="orderBy" lowerBound="1" + eType="#//mappings/IOrderBy" changeable="false" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IOneToMany" abstract="true" interface="true" + eSuperTypes="#//mappings/IMultiRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="IManyToMany" abstract="true" interface="true" + eSuperTypes="#//mappings/IMultiRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="ISingleRelationshipMapping" abstract="true" + interface="true" eSuperTypes="#//mappings/IRelationshipMapping"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="fetch" eType="#//mappings/DefaultEagerFetchType"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="joinColumns" upperBound="-1" + eType="#//mappings/IJoinColumn" changeable="false" volatile="true" transient="true" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedJoinColumns" + upperBound="-1" eType="#//mappings/IJoinColumn" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultJoinColumns" upperBound="-1" + eType="#//mappings/IJoinColumn" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IManyToOne" abstract="true" interface="true" + eSuperTypes="#//mappings/ISingleRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="IOneToOne" abstract="true" interface="true" + eSuperTypes="#//mappings/ISingleRelationshipMapping #//mappings/INonOwningMapping"/> + <eClassifiers xsi:type="ecore:EEnum" name="DefaultEagerFetchType"> + <eLiterals name="Default" literal="Default (Eager)"/> + <eLiterals name="EAGER" value="1" literal="Eager"/> + <eLiterals name="LAZY" value="2" literal="Lazy"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="DefaultLazyFetchType"> + <eLiterals name="Default" literal="Default (Lazy)"/> + <eLiterals name="LAZY" value="1" literal="Lazy"/> + <eLiterals name="EAGER" value="2" literal="Eager"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="DefaultFalseBoolean"> + <eLiterals name="Default" literal="Default (False)"/> + <eLiterals name="false" value="1" literal="False"/> + <eLiterals name="true" value="2" literal="True"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="DefaultTrueBoolean"> + <eLiterals name="Default" literal="Default (False)"/> + <eLiterals name="true" value="1" literal="True"/> + <eLiterals name="false" value="2" literal="False"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="TemporalType"> + <eLiterals name="Null" literal=""/> + <eLiterals name="DATE" value="1" literal="Date"/> + <eLiterals name="TIME" value="2" literal="Time"/> + <eLiterals name="TIMESTAMP" value="3" literal="Timestamp"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IJoinTable" abstract="true" interface="true" + eSuperTypes="#//mappings/ITable"> + <eStructuralFeatures xsi:type="ecore:EReference" name="joinColumns" upperBound="-1" + eType="#//mappings/IJoinColumn" changeable="false" volatile="true" transient="true" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedJoinColumns" + upperBound="-1" eType="#//mappings/IJoinColumn" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultJoinColumns" upperBound="-1" + eType="#//mappings/IJoinColumn" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="inverseJoinColumns" upperBound="-1" + eType="#//mappings/IJoinColumn" changeable="false" volatile="true" transient="true" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedInverseJoinColumns" + upperBound="-1" eType="#//mappings/IJoinColumn" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultInverseJoinColumns" + upperBound="-1" eType="#//mappings/IJoinColumn" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IAbstractJoinColumn" abstract="true" + interface="true" eSuperTypes="#//mappings/INamedColumn"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="referencedColumnName" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedReferencedColumnName" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultReferencedColumnName" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IJoinColumn" abstract="true" interface="true" + eSuperTypes="#//mappings/IAbstractColumn #//mappings/IAbstractJoinColumn"/> + <eClassifiers xsi:type="ecore:EClass" name="IOverride" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IAttributeOverride" abstract="true" + interface="true" eSuperTypes="#//mappings/IOverride #//mappings/IColumnMapping"> + <eStructuralFeatures xsi:type="ecore:EReference" name="column" lowerBound="1" + eType="#//mappings/IColumn" changeable="false" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IAssociationOverride" abstract="true" + interface="true" eSuperTypes="#//mappings/IOverride"> + <eStructuralFeatures xsi:type="ecore:EReference" name="joinColumns" upperBound="-1" + eType="#//mappings/IJoinColumn" changeable="false" volatile="true" transient="true" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedJoinColumns" + upperBound="-1" eType="#//mappings/IJoinColumn" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultJoinColumns" upperBound="-1" + eType="#//mappings/IJoinColumn" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IDiscriminatorColumn" abstract="true" + interface="true" eSuperTypes="#//IJpaSourceObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="discriminatorType" eType="#//mappings/DiscriminatorType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnDefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultLength" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + defaultValueLiteral="31"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedLength" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + defaultValueLiteral="-1"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="length" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + changeable="false" volatile="true" transient="true" derived="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="InheritanceType"> + <eLiterals name="Default" literal="Default (Single Table)"/> + <eLiterals name="SINGLE_TABLE" value="1" literal="Single Table"/> + <eLiterals name="JOINED" value="2" literal="Joined"/> + <eLiterals name="TABLE_PER_CLASS" value="3" literal="Table per Class"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="DiscriminatorType"> + <eLiterals name="Default" literal="Default (String)"/> + <eLiterals name="STRING" value="1" literal="String"/> + <eLiterals name="CHAR" value="2" literal="Char"/> + <eLiterals name="INTEGER" value="3" literal="Integer"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ISecondaryTable" abstract="true" interface="true" + eSuperTypes="#//mappings/ITable"/> + <eClassifiers xsi:type="ecore:EClass" name="IPrimaryKeyJoinColumn" abstract="true" + interface="true" eSuperTypes="#//mappings/IAbstractJoinColumn"/> + <eClassifiers xsi:type="ecore:EClass" name="IGenerator" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialValue" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedInitialValue" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + defaultValueLiteral="-1"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultInitialValue" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="allocationSize" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedAllocationSize" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + defaultValueLiteral="-1"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultAllocationSize" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + changeable="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ITableGenerator" abstract="true" interface="true" + eSuperTypes="#//mappings/IGenerator"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="table" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedTable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultTable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedCatalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultCatalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedSchema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultSchema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="pkColumnName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedPkColumnName" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultPkColumnName" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueColumnName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedValueColumnName" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueColumnName" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="pkColumnValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedPkColumnValue" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultPkColumnValue" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ISequenceGenerator" abstract="true" + interface="true" eSuperTypes="#//mappings/IGenerator"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="sequenceName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedSequenceName" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultSequenceName" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IGeneratedValue" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="strategy" eType="#//mappings/GenerationType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="generator" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="GenerationType"> + <eLiterals name="Default" literal="Default (Auto)"/> + <eLiterals name="Auto" value="1"/> + <eLiterals name="Identity" value="2"/> + <eLiterals name="Sequence" value="3"/> + <eLiterals name="Table" value="4"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="EnumType"> + <eLiterals name="Default" literal="Default (Ordinal)"/> + <eLiterals name="ORDINAL" value="1" literal="Ordinal"/> + <eLiterals name="STRING" value="2" literal="String"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IOrderBy" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//mappings/OrderingType"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="OrderingType"> + <eLiterals name="NONE" literal="None"/> + <eLiterals name="PRIMARY_KEY" value="1" literal="Primary Key"/> + <eLiterals name="CUSTOM" value="2" literal="Custom"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IQuery" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="query" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="hints" upperBound="-1" + eType="#//mappings/IQueryHint" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="INamedQuery" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject #//mappings/IQuery"/> + <eClassifiers xsi:type="ecore:EClass" name="INamedNativeQuery" abstract="true" + interface="true" eSuperTypes="#//IJpaSourceObject #//mappings/IQuery"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="resultClass" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="resultSetMapping" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IQueryHint" abstract="true" interface="true" + eSuperTypes="#//IJpaSourceObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + </eClassifiers> + </eSubpackages> +</ecore:EPackage> diff --git a/jpa/plugins/org.eclipse.jpt.core/model/coreModels.genmodel b/jpa/plugins/org.eclipse.jpt.core/model/coreModels.genmodel new file mode 100644 index 0000000000..1869eab0b9 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/model/coreModels.genmodel @@ -0,0 +1,656 @@ +<?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.jpt.core/src" + creationCommands="false" creationIcons="false" editDirectory="" editorDirectory="" + modelPluginID="org.eclipse.jpt.core" modelName="Core" editPluginClass="" editorPluginClass="" + suppressInterfaces="true" codeFormatting="true" testsDirectory="" testSuiteClass="" + importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore javaModel.genmodel#//java"> + <foreignModel>core.ecore</foreignModel> + <foreignModel>java.ecore</foreignModel> + <foreignModel>orm.ecore</foreignModel> + <foreignModel>persistence.ecore</foreignModel> + <genPackages prefix="JpaCore" basePackage="org.eclipse.jpt.core" disposableProviderFactory="true" + ecorePackage="core.ecore#/"> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//AccessType"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//AccessType/Default"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//AccessType/PROPERTY"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//AccessType/FIELD"/> + </genEnums> + <genClasses ecoreClass="core.ecore#//IJpaModel"/> + <genClasses ecoreClass="core.ecore#//JpaModel"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//JpaModel/projects"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//IJpaEObject"> + <genOperations ecoreOperation="core.ecore#//IJpaEObject/getJpaProject"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//JpaEObject"/> + <genClasses ecoreClass="core.ecore#//IJpaProject"> + <genOperations ecoreOperation="core.ecore#//IJpaProject/getModel"/> + <genOperations ecoreOperation="core.ecore#//IJpaProject/getPlatform"/> + <genOperations ecoreOperation="core.ecore#//IJpaProject/setPlatform"> + <genParameters ecoreParameter="core.ecore#//IJpaProject/setPlatform/platformId"/> + </genOperations> + <genOperations ecoreOperation="core.ecore#//IJpaProject/getDataSource"/> + <genOperations ecoreOperation="core.ecore#//IJpaProject/setDataSource"> + <genParameters ecoreParameter="core.ecore#//IJpaProject/setDataSource/connectionProfileName"/> + </genOperations> + </genClasses> + <genClasses ecoreClass="core.ecore#//JpaProject"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//JpaProject/platform"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//JpaProject/dataSource"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//JpaProject/files"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//IJpaPlatform"/> + <genClasses ecoreClass="core.ecore#//IJpaDataSource"> + <genOperations ecoreOperation="core.ecore#//IJpaDataSource/getConnectionProfileName"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//JpaDataSource"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//JpaDataSource/connectionProfileName"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//IJpaFile"> + <genOperations ecoreOperation="core.ecore#//IJpaFile/getContentId"/> + <genOperations ecoreOperation="core.ecore#//IJpaFile/getContent"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//JpaFile"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//JpaFile/contentId"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//JpaFile/content"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//IJpaSourceObject"> + <genOperations ecoreOperation="core.ecore#//IJpaSourceObject/getJpaFile"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//IXmlEObject"/> + <genClasses image="false" ecoreClass="core.ecore#//XmlEObject"/> + <genClasses ecoreClass="core.ecore#//IJpaContentNode"> + <genOperations ecoreOperation="core.ecore#//IJpaContentNode/getJpaFile"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//IJpaRootContentNode"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference core.ecore#//IJpaRootContentNode/jpaFile"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//IPersistentType"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//IPersistentType/mappingKey"/> + <genOperations ecoreOperation="core.ecore#//IPersistentType/getMapping"/> + <genOperations ecoreOperation="core.ecore#//IPersistentType/parentPersistentType"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//ITypeMapping"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//ITypeMapping/name"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//ITypeMapping/tableName"/> + <genOperations ecoreOperation="core.ecore#//ITypeMapping/getPersistentType"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//NullTypeMapping"/> + <genClasses ecoreClass="core.ecore#//IPersistentAttribute"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//IPersistentAttribute/mappingKey"/> + <genOperations ecoreOperation="core.ecore#//IPersistentAttribute/getMapping"/> + <genOperations ecoreOperation="core.ecore#//IPersistentAttribute/typeMapping"/> + <genOperations ecoreOperation="core.ecore#//IPersistentAttribute/getName"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//IAttributeMapping"> + <genOperations ecoreOperation="core.ecore#//IAttributeMapping/getPersistentAttribute"/> + <genOperations ecoreOperation="core.ecore#//IAttributeMapping/isDefault"/> + </genClasses> + <nestedGenPackages prefix="JpaCoreMappings" basePackage="org.eclipse.jpt.core.internal" + disposableProviderFactory="true" ecorePackage="core.ecore#//mappings"> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/DefaultEagerFetchType"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultEagerFetchType/Default"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultEagerFetchType/EAGER"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultEagerFetchType/LAZY"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/DefaultLazyFetchType"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultLazyFetchType/Default"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultLazyFetchType/LAZY"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultLazyFetchType/EAGER"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/DefaultFalseBoolean"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultFalseBoolean/Default"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultFalseBoolean/false"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultFalseBoolean/true"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/DefaultTrueBoolean"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultTrueBoolean/Default"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultTrueBoolean/true"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DefaultTrueBoolean/false"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/TemporalType"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/TemporalType/Null"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/TemporalType/DATE"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/TemporalType/TIME"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/TemporalType/TIMESTAMP"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/InheritanceType"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/InheritanceType/Default"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/InheritanceType/SINGLE_TABLE"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/InheritanceType/JOINED"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/InheritanceType/TABLE_PER_CLASS"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/DiscriminatorType"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DiscriminatorType/Default"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DiscriminatorType/STRING"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DiscriminatorType/CHAR"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/DiscriminatorType/INTEGER"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/GenerationType"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/GenerationType/Default"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/GenerationType/Auto"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/GenerationType/Identity"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/GenerationType/Sequence"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/GenerationType/Table"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/EnumType"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/EnumType/Default"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/EnumType/ORDINAL"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/EnumType/STRING"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="core.ecore#//mappings/OrderingType"> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/OrderingType/NONE"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/OrderingType/PRIMARY_KEY"/> + <genEnumLiterals ecoreEnumLiteral="core.ecore#//mappings/OrderingType/CUSTOM"/> + </genEnums> + <genClasses ecoreClass="core.ecore#//mappings/IMappedSuperclass"/> + <genClasses ecoreClass="core.ecore#//mappings/IEntity"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IEntity/specifiedName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IEntity/defaultName"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/table"/> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/primaryKeyJoinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/specifiedPrimaryKeyJoinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/defaultPrimaryKeyJoinColumns"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IEntity/inheritanceStrategy"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IEntity/defaultDiscriminatorValue"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IEntity/specifiedDiscriminatorValue"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EAttribute core.ecore#//mappings/IEntity/discriminatorValue"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/discriminatorColumn"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/sequenceGenerator"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/tableGenerator"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/attributeOverrides"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/specifiedAttributeOverrides"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/defaultAttributeOverrides"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/associationOverrides"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/specifiedAssociationOverrides"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/defaultAssociationOverrides"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/namedQueries"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEntity/namedNativeQueries"/> + <genOperations ecoreOperation="core.ecore#//mappings/IEntity/discriminatorValueIsAllowed"/> + <genOperations ecoreOperation="core.ecore#//mappings/IEntity/getSecondaryTables"/> + <genOperations ecoreOperation="core.ecore#//mappings/IEntity/parentEntity"/> + <genOperations ecoreOperation="core.ecore#//mappings/IEntity/rootEntity"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IEmbeddable"/> + <genClasses ecoreClass="core.ecore#//mappings/ITable"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITable/name"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITable/specifiedName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITable/defaultName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITable/catalog"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITable/specifiedCatalog"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITable/defaultCatalog"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITable/schema"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITable/specifiedSchema"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITable/defaultSchema"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/INamedColumn"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/INamedColumn/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/INamedColumn/specifiedName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/INamedColumn/defaultName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/INamedColumn/columnDefinition"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IAbstractColumn"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractColumn/unique"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractColumn/nullable"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractColumn/insertable"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractColumn/updatable"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractColumn/table"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractColumn/specifiedTable"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractColumn/defaultTable"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IColumn"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IColumn/length"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IColumn/precision"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IColumn/scale"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IColumnMapping"> + <genOperations ecoreOperation="core.ecore#//mappings/IColumnMapping/getColumn"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IBasic"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IBasic/fetch"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IBasic/optional"/> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IBasic/column"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IBasic/lob"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IBasic/temporal"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IBasic/enumerated"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IId"> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IId/column"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IId/generatedValue"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IId/temporal"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IId/tableGenerator"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IId/sequenceGenerator"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/ITransient"/> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IVersion"> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IVersion/column"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IVersion/temporal"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IEmbeddedId"/> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IEmbedded"> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IEmbedded/attributeOverrides"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEmbedded/specifiedAttributeOverrides"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IEmbedded/defaultAttributeOverrides"/> + <genOperations ecoreOperation="core.ecore#//mappings/IEmbedded/embeddable"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IRelationshipMapping"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IRelationshipMapping/targetEntity"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IRelationshipMapping/specifiedTargetEntity"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IRelationshipMapping/defaultTargetEntity"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IRelationshipMapping/resolvedTargetEntity"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/INonOwningMapping"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/INonOwningMapping/mappedBy"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IMultiRelationshipMapping"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IMultiRelationshipMapping/fetch"/> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IMultiRelationshipMapping/joinTable"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference core.ecore#//mappings/IMultiRelationshipMapping/orderBy"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IOneToMany"/> + <genClasses ecoreClass="core.ecore#//mappings/IManyToMany"/> + <genClasses ecoreClass="core.ecore#//mappings/ISingleRelationshipMapping"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ISingleRelationshipMapping/fetch"/> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/ISingleRelationshipMapping/joinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/ISingleRelationshipMapping/specifiedJoinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/ISingleRelationshipMapping/defaultJoinColumns"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IManyToOne"/> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IOneToOne"/> + <genClasses ecoreClass="core.ecore#//mappings/IJoinTable"> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IJoinTable/joinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IJoinTable/specifiedJoinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IJoinTable/defaultJoinColumns"/> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IJoinTable/inverseJoinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IJoinTable/specifiedInverseJoinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IJoinTable/defaultInverseJoinColumns"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IAbstractJoinColumn"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractJoinColumn/referencedColumnName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractJoinColumn/specifiedReferencedColumnName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IAbstractJoinColumn/defaultReferencedColumnName"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IJoinColumn"/> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IOverride"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IOverride/name"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IAttributeOverride"> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IAttributeOverride/column"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IAssociationOverride"> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference core.ecore#//mappings/IAssociationOverride/joinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IAssociationOverride/specifiedJoinColumns"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IAssociationOverride/defaultJoinColumns"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/IDiscriminatorColumn"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IDiscriminatorColumn/defaultName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IDiscriminatorColumn/specifiedName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IDiscriminatorColumn/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IDiscriminatorColumn/discriminatorType"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IDiscriminatorColumn/columnDefinition"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IDiscriminatorColumn/defaultLength"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IDiscriminatorColumn/specifiedLength"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IDiscriminatorColumn/length"/> + </genClasses> + <genClasses ecoreClass="core.ecore#//mappings/ISecondaryTable"/> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IPrimaryKeyJoinColumn"/> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IGenerator"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IGenerator/name"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IGenerator/initialValue"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IGenerator/specifiedInitialValue"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IGenerator/defaultInitialValue"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IGenerator/allocationSize"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IGenerator/specifiedAllocationSize"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IGenerator/defaultAllocationSize"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/ITableGenerator"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/table"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/specifiedTable"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/defaultTable"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/catalog"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/specifiedCatalog"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/defaultCatalog"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/schema"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/specifiedSchema"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/defaultSchema"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/pkColumnName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/specifiedPkColumnName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/defaultPkColumnName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/valueColumnName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/specifiedValueColumnName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/defaultValueColumnName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/pkColumnValue"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/specifiedPkColumnValue"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ITableGenerator/defaultPkColumnValue"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/ISequenceGenerator"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ISequenceGenerator/sequenceName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ISequenceGenerator/specifiedSequenceName"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/ISequenceGenerator/defaultSequenceName"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IGeneratedValue"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IGeneratedValue/strategy"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IGeneratedValue/generator"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IOrderBy"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IOrderBy/value"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IOrderBy/type"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IQuery"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IQuery/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IQuery/query"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference core.ecore#//mappings/IQuery/hints"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/INamedQuery"/> + <genClasses image="false" ecoreClass="core.ecore#//mappings/INamedNativeQuery"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/INamedNativeQuery/resultClass"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/INamedNativeQuery/resultSetMapping"/> + </genClasses> + <genClasses image="false" ecoreClass="core.ecore#//mappings/IQueryHint"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IQueryHint/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute core.ecore#//mappings/IQueryHint/value"/> + </genClasses> + </nestedGenPackages> + </genPackages> + <genPackages prefix="JpaJava" basePackage="org.eclipse.jpt.core.internal.content" + disposableProviderFactory="true" ecorePackage="java.ecore#/"> + <genClasses image="false" ecoreClass="java.ecore#//JavaEObject"> + <genOperations ecoreOperation="java.ecore#//JavaEObject/getJpaFile"/> + <genOperations ecoreOperation="java.ecore#//JavaEObject/getRoot"/> + </genClasses> + <genClasses ecoreClass="java.ecore#//JpaCompilationUnit"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference java.ecore#//JpaCompilationUnit/types"/> + </genClasses> + <genClasses ecoreClass="java.ecore#//JavaPersistentType"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference java.ecore#//JavaPersistentType/mapping"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference java.ecore#//JavaPersistentType/attributes"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaPersistentType/access"/> + </genClasses> + <genClasses ecoreClass="java.ecore#//JavaPersistentAttribute"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference java.ecore#//JavaPersistentAttribute/defaultMapping"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference java.ecore#//JavaPersistentAttribute/specifiedMapping"/> + </genClasses> + <genClasses image="false" ecoreClass="java.ecore#//IJavaTypeMapping"> + <genOperations ecoreOperation="java.ecore#//IJavaTypeMapping/initialize"/> + </genClasses> + <genClasses image="false" ecoreClass="java.ecore#//IJavaAttributeMapping"> + <genOperations ecoreOperation="java.ecore#//IJavaAttributeMapping/initialize"/> + </genClasses> + <nestedGenPackages prefix="JpaJavaMappings" basePackage="org.eclipse.jpt.core.internal.content.java" + disposableProviderFactory="true" ecorePackage="java.ecore#//mappings"> + <genClasses image="false" ecoreClass="java.ecore#//mappings/JavaTypeMapping"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaEntity"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference java.ecore#//mappings/JavaEntity/secondaryTables"/> + </genClasses> + <genClasses ecoreClass="java.ecore#//mappings/JavaMappedSuperclass"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaEmbeddable"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaNullTypeMapping"/> + <genClasses image="false" ecoreClass="java.ecore#//mappings/JavaAttributeMapping"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaBasic"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaId"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaTransient"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaVersion"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaEmbeddedId"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaEmbedded"/> + <genClasses image="false" ecoreClass="java.ecore#//mappings/JavaRelationshipMapping"/> + <genClasses image="false" ecoreClass="java.ecore#//mappings/JavaSingleRelationshipMapping"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaManyToOne"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaOneToOne"/> + <genClasses image="false" ecoreClass="java.ecore#//mappings/JavaMultiRelationshipMapping"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaOneToMany"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaManyToMany"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaNullAttributeMapping"/> + <genClasses image="false" ecoreClass="java.ecore#//mappings/AbstractJavaTable"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaTable"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaSecondaryTable"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaJoinTable"/> + <genClasses image="false" ecoreClass="java.ecore#//mappings/JavaNamedColumn"/> + <genClasses image="false" ecoreClass="java.ecore#//mappings/AbstractJavaColumn"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaColumn"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaJoinColumn"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaOverride"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaAttributeOverride"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaAssociationOverride"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaDiscriminatorColumn"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaPrimaryKeyJoinColumn"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaGeneratedValue"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaGenerator"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaTableGenerator"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaSequenceGenerator"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaOrderBy"/> + <genClasses image="false" ecoreClass="java.ecore#//mappings/JavaAbstractQuery"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaNamedQuery"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaNamedNativeQuery"/> + <genClasses ecoreClass="java.ecore#//mappings/JavaQueryHint"/> + </nestedGenPackages> + </genPackages> + <genPackages prefix="Orm" basePackage="org.eclipse.jpt.core.internal.content" disposableProviderFactory="true" + ecorePackage="orm.ecore#/"> + <genClasses ecoreClass="orm.ecore#//XmlRootContentNode"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//XmlRootContentNode/entityMappings"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//EntityMappingsInternal"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsInternal/root"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/version"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/description"/> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsInternal/persistenceUnitMetadataInternal"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/packageInternal"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/defaultSchema"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/specifiedSchema"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/schema"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/defaultCatalog"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/specifiedCatalog"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/catalog"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/defaultAccess"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/specifiedAccess"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsInternal/access"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsInternal/typeMappings"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsInternal/persistentTypes"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsInternal/sequenceGenerators"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsInternal/tableGenerators"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsInternal/namedQueries"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsInternal/namedNativeQueries"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//EntityMappings"> + <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference orm.ecore#//EntityMappings/persistenceUnitMetadata"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappings/package"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//EntityMappingsForXml"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//EntityMappingsForXml/persistenceUnitMetadataForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//EntityMappingsForXml/packageForXml"/> + </genClasses> + <genClasses image="false" ecoreClass="orm.ecore#//XmlTypeMapping"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlTypeMapping/defaultAccess"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlTypeMapping/specifiedAccess"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlTypeMapping/access"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlTypeMapping/metadataComplete"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//XmlTypeMapping/persistentType"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlPersistentType"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlPersistentType/class"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//XmlPersistentType/attributeMappings"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//XmlPersistentType/specifiedAttributeMappings"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//XmlPersistentType/virtualAttributeMappings"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//XmlPersistentType/persistentAttributes"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//XmlPersistentType/specifiedPersistentAttributes"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//XmlPersistentType/virtualPersistentAttributes"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlMappedSuperclass"/> + <genClasses ecoreClass="orm.ecore#//XmlEntityInternal"/> + <genClasses ecoreClass="orm.ecore#//XmlEntityForXml"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//XmlEntityForXml/tableForXml"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//XmlEntityForXml/discriminatorColumnForXml"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlEntity"> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference orm.ecore#//XmlEntity/secondaryTables"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//XmlEntity/specifiedSecondaryTables"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//XmlEntity/defaultSecondaryTables"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlEmbeddable"/> + <genClasses image="false" ecoreClass="orm.ecore#//XmlAttributeMapping"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//XmlAttributeMapping/persistentAttribute"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlNullAttributeMapping"/> + <genClasses ecoreClass="orm.ecore#//XmlBasic"/> + <genClasses ecoreClass="orm.ecore#//XmlId"/> + <genClasses ecoreClass="orm.ecore#//XmlTransient"/> + <genClasses ecoreClass="orm.ecore#//XmlEmbedded"/> + <genClasses ecoreClass="orm.ecore#//XmlEmbeddedId"/> + <genClasses ecoreClass="orm.ecore#//XmlVersion"/> + <genClasses image="false" ecoreClass="orm.ecore#//XmlMultiRelationshipMappingInternal"/> + <genClasses image="false" ecoreClass="orm.ecore#//XmlMultiRelationshipMappingForXml"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//XmlMultiRelationshipMappingForXml/joinTableForXml"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//XmlMultiRelationshipMappingForXml/orderByForXml"/> + </genClasses> + <genClasses image="false" ecoreClass="orm.ecore#//XmlMultiRelationshipMapping"/> + <genClasses ecoreClass="orm.ecore#//XmlOneToMany"/> + <genClasses ecoreClass="orm.ecore#//XmlManyToMany"/> + <genClasses ecoreClass="orm.ecore#//XmlPersistentAttribute"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlPersistentAttribute/name"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//PersistenceUnitMetadataInternal"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitMetadataInternal/xmlMappingMetadataCompleteInternal"/> + <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference orm.ecore#//PersistenceUnitMetadataInternal/persistenceUnitDefaultsInternal"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//PersistenceUnitMetadata"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitMetadata/xmlMappingMetadataComplete"/> + <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference orm.ecore#//PersistenceUnitMetadata/persistenceUnitDefaults"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//PersistenceUnitMetadataForXml"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitMetadataForXml/xmlMappingMetadataCompleteForXml"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//PersistenceUnitMetadataForXml/persistenceUnitDefaultsForXml"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//PersistenceUnitDefaultsInternal"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaultsInternal/schemaInternal"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaultsInternal/catalogInternal"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaultsInternal/accessInternal"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaultsInternal/cascadePersistInternal"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//PersistenceUnitDefaults"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaults/schema"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaults/catalog"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaults/access"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaults/cascadePersist"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//PersistenceUnitDefaultsForXml"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaultsForXml/schemaForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaultsForXml/catalogForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaultsForXml/accessForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//PersistenceUnitDefaultsForXml/cascadePersistForXml"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlTable"/> + <genClasses image="false" ecoreClass="orm.ecore#//AbstractXmlNamedColumn"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlNamedColumn/specifiedNameForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlNamedColumn/columnDefinitionForXml"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//AbstractXmlColumn"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlColumn/uniqueForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlColumn/nullableForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlColumn/insertableForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlColumn/updatableForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlColumn/specifiedTableForXml"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlColumn"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlColumn/lengthForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlColumn/precisionForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlColumn/scaleForXml"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlJoinColumn"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlJoinColumn/specifiedReferencedColumnNameForXml"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//IXmlColumnMapping"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference orm.ecore#//IXmlColumnMapping/columnForXml"/> + <genOperations ecoreOperation="orm.ecore#//IXmlColumnMapping/makeColumnForXmlNonNull"/> + <genOperations ecoreOperation="orm.ecore#//IXmlColumnMapping/makeColumnForXmlNull"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlManyToOne"/> + <genClasses ecoreClass="orm.ecore#//XmlOneToOne"/> + <genClasses image="false" ecoreClass="orm.ecore#//XmlSingleRelationshipMapping"/> + <genClasses image="false" ecoreClass="orm.ecore#//XmlRelationshipMapping"/> + <genClasses ecoreClass="orm.ecore#//XmlJoinTable"/> + <genClasses ecoreClass="orm.ecore#//AbstractXmlTable"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlTable/specifiedNameForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlTable/specifiedCatalogForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//AbstractXmlTable/specifiedSchemaForXml"/> + </genClasses> + <genClasses image="false" ecoreClass="orm.ecore#//XmlOverride"/> + <genClasses ecoreClass="orm.ecore#//XmlAttributeOverride"/> + <genClasses ecoreClass="orm.ecore#//XmlAssociationOverride"/> + <genClasses ecoreClass="orm.ecore#//XmlDiscriminatorColumn"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlDiscriminatorColumn/specifiedNameForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlDiscriminatorColumn/discriminatorTypeForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlDiscriminatorColumn/columnDefinitionForXml"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlDiscriminatorColumn/specifiedLengthForXml"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlSecondaryTable"/> + <genClasses ecoreClass="orm.ecore#//XmlPrimaryKeyJoinColumn"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute orm.ecore#//XmlPrimaryKeyJoinColumn/specifiedReferencedColumnNameForXml"/> + </genClasses> + <genClasses ecoreClass="orm.ecore#//XmlGeneratedValue"/> + <genClasses image="false" ecoreClass="orm.ecore#//XmlGenerator"/> + <genClasses ecoreClass="orm.ecore#//XmlSequenceGenerator"/> + <genClasses ecoreClass="orm.ecore#//XmlTableGenerator"/> + <genClasses ecoreClass="orm.ecore#//XmlOrderBy"/> + <genClasses image="false" ecoreClass="orm.ecore#//AbstractXmlQuery"/> + <genClasses ecoreClass="orm.ecore#//XmlNamedQuery"/> + <genClasses ecoreClass="orm.ecore#//XmlNamedNativeQuery"/> + <genClasses ecoreClass="orm.ecore#//XmlQueryHint"/> + </genPackages> + <genPackages prefix="Persistence" basePackage="org.eclipse.jpt.core.internal.content" + disposableProviderFactory="true" ecorePackage="persistence.ecore#/"> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="persistence.ecore#//PersistenceUnitTransactionType"> + <genEnumLiterals ecoreEnumLiteral="persistence.ecore#//PersistenceUnitTransactionType/JTA"/> + <genEnumLiterals ecoreEnumLiteral="persistence.ecore#//PersistenceUnitTransactionType/RESOURCE_LOCAL"/> + </genEnums> + <genDataTypes ecoreDataType="persistence.ecore#//PersistenceUnitTransactionTypeObject"/> + <genDataTypes ecoreDataType="persistence.ecore#//Version"/> + <genClasses ecoreClass="persistence.ecore#//PersistenceXmlRootContentNode"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference persistence.ecore#//PersistenceXmlRootContentNode/persistence"/> + </genClasses> + <genClasses ecoreClass="persistence.ecore#//Persistence"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference persistence.ecore#//Persistence/persistenceUnits"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//Persistence/version"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference persistence.ecore#//Persistence/root"/> + </genClasses> + <genClasses ecoreClass="persistence.ecore#//PersistenceUnit"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//PersistenceUnit/description"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//PersistenceUnit/provider"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//PersistenceUnit/jtaDataSource"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//PersistenceUnit/nonJtaDataSource"/> + <genFeatures createChild="false" ecoreFeature="ecore:EReference persistence.ecore#//PersistenceUnit/mappingFiles"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//PersistenceUnit/jarFiles"/> + <genFeatures createChild="false" ecoreFeature="ecore:EReference persistence.ecore#//PersistenceUnit/classes"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//PersistenceUnit/excludeUnlistedClasses"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference persistence.ecore#//PersistenceUnit/properties"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//PersistenceUnit/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//PersistenceUnit/transactionType"/> + </genClasses> + <genClasses ecoreClass="persistence.ecore#//MappingFileRef"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//MappingFileRef/fileName"/> + </genClasses> + <genClasses ecoreClass="persistence.ecore#//JavaClassRef"> + <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference persistence.ecore#//JavaClassRef/javaClass"/> + </genClasses> + <genClasses ecoreClass="persistence.ecore#//Properties"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference persistence.ecore#//Properties/properties"/> + </genClasses> + <genClasses ecoreClass="persistence.ecore#//Property"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//Property/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute persistence.ecore#//Property/value"/> + </genClasses> + </genPackages> +</genmodel:GenModel> diff --git a/jpa/plugins/org.eclipse.jpt.core/model/java.ecore b/jpa/plugins/org.eclipse.jpt.core/model/java.ecore new file mode 100644 index 0000000000..605cc31a9a --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/model/java.ecore @@ -0,0 +1,90 @@ +<?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="java" + nsURI="jpt.java.xmi" nsPrefix="org.eclipse.jpt.core.content.java"> + <eClassifiers xsi:type="ecore:EClass" name="JavaEObject" abstract="true" eSuperTypes="core.ecore#//JpaEObject core.ecore#//IJpaSourceObject"> + <eOperations name="getJpaFile" eType="ecore:EClass core.ecore#//IJpaFile"/> + <eOperations name="getRoot" eType="ecore:EClass core.ecore#//IJpaRootContentNode"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JpaCompilationUnit" eSuperTypes="#//JavaEObject core.ecore#//IJpaRootContentNode"> + <eStructuralFeatures xsi:type="ecore:EReference" name="types" upperBound="-1" + eType="#//JavaPersistentType" containment="true" resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JavaPersistentType" eSuperTypes="#//JavaEObject core.ecore#//IPersistentType"> + <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1" + eType="#//IJavaTypeMapping" defaultValueLiteral="" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1" + eType="#//JavaPersistentAttribute" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="ecore:EEnum core.ecore#//AccessType" + changeable="false" defaultValueLiteral=""/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JavaPersistentAttribute" eSuperTypes="#//JavaEObject core.ecore#//IPersistentAttribute"> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultMapping" lowerBound="1" + eType="#//IJavaAttributeMapping" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedMapping" lowerBound="1" + eType="#//IJavaAttributeMapping" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IJavaTypeMapping" abstract="true" interface="true" + eSuperTypes="core.ecore#//ITypeMapping"> + <eOperations name="initialize"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IJavaAttributeMapping" abstract="true" + interface="true" eSuperTypes="core.ecore#//IAttributeMapping"> + <eOperations name="initialize"/> + </eClassifiers> + <eSubpackages name="mappings" nsURI="jpt.core.java.mappings.xmi" nsPrefix="jpt.core.java.mappings"> + <eClassifiers xsi:type="ecore:EClass" name="JavaTypeMapping" abstract="true" eSuperTypes="#//JavaEObject #//IJavaTypeMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaEntity" eSuperTypes="#//mappings/JavaTypeMapping core.ecore#//mappings/IEntity"> + <eStructuralFeatures xsi:type="ecore:EReference" name="secondaryTables" upperBound="-1" + eType="ecore:EClass core.ecore#//mappings/ISecondaryTable" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JavaMappedSuperclass" eSuperTypes="#//mappings/JavaTypeMapping core.ecore#//mappings/IMappedSuperclass"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaEmbeddable" eSuperTypes="#//mappings/JavaTypeMapping core.ecore#//mappings/IEmbeddable"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaNullTypeMapping" eSuperTypes="#//mappings/JavaTypeMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaAttributeMapping" abstract="true" + eSuperTypes="#//JavaEObject #//IJavaAttributeMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaBasic" eSuperTypes="#//mappings/JavaAttributeMapping core.ecore#//mappings/IBasic"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaId" eSuperTypes="#//mappings/JavaAttributeMapping core.ecore#//mappings/IId"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaTransient" eSuperTypes="#//mappings/JavaAttributeMapping core.ecore#//mappings/ITransient"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaVersion" eSuperTypes="#//mappings/JavaAttributeMapping core.ecore#//mappings/IVersion"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaEmbeddedId" eSuperTypes="#//mappings/JavaAttributeMapping core.ecore#//mappings/IEmbeddedId"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaEmbedded" eSuperTypes="#//mappings/JavaAttributeMapping core.ecore#//mappings/IEmbedded"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaRelationshipMapping" abstract="true" + eSuperTypes="#//mappings/JavaAttributeMapping core.ecore#//mappings/IRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaSingleRelationshipMapping" abstract="true" + eSuperTypes="#//mappings/JavaRelationshipMapping core.ecore#//mappings/ISingleRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaManyToOne" eSuperTypes="#//mappings/JavaSingleRelationshipMapping core.ecore#//mappings/IManyToOne"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaOneToOne" eSuperTypes="#//mappings/JavaSingleRelationshipMapping core.ecore#//mappings/IOneToOne"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaMultiRelationshipMapping" abstract="true" + eSuperTypes="#//mappings/JavaRelationshipMapping core.ecore#//mappings/IMultiRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaOneToMany" eSuperTypes="#//mappings/JavaMultiRelationshipMapping core.ecore#//mappings/IOneToMany"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaManyToMany" eSuperTypes="#//mappings/JavaMultiRelationshipMapping core.ecore#//mappings/IManyToMany"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaNullAttributeMapping" eSuperTypes="#//mappings/JavaAttributeMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="AbstractJavaTable" abstract="true" + eSuperTypes="#//JavaEObject core.ecore#//mappings/ITable"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaTable" eSuperTypes="#//mappings/AbstractJavaTable"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaSecondaryTable" eSuperTypes="#//mappings/AbstractJavaTable core.ecore#//mappings/ISecondaryTable"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaJoinTable" eSuperTypes="#//mappings/AbstractJavaTable core.ecore#//mappings/IJoinTable"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaNamedColumn" abstract="true" eSuperTypes="#//JavaEObject core.ecore#//mappings/INamedColumn"/> + <eClassifiers xsi:type="ecore:EClass" name="AbstractJavaColumn" abstract="true" + eSuperTypes="#//mappings/JavaNamedColumn core.ecore#//mappings/IAbstractColumn"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaColumn" eSuperTypes="#//mappings/AbstractJavaColumn core.ecore#//mappings/IColumn"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaJoinColumn" eSuperTypes="#//mappings/AbstractJavaColumn core.ecore#//mappings/IJoinColumn"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaOverride" abstract="true" eSuperTypes="#//JavaEObject core.ecore#//mappings/IOverride"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaAttributeOverride" eSuperTypes="#//mappings/JavaOverride core.ecore#//mappings/IAttributeOverride"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaAssociationOverride" eSuperTypes="#//mappings/JavaOverride core.ecore#//mappings/IAssociationOverride"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaDiscriminatorColumn" eSuperTypes="#//JavaEObject core.ecore#//mappings/IDiscriminatorColumn"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaPrimaryKeyJoinColumn" eSuperTypes="#//JavaEObject core.ecore#//mappings/IPrimaryKeyJoinColumn"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaGeneratedValue" eSuperTypes="#//JavaEObject core.ecore#//mappings/IGeneratedValue"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaGenerator" abstract="true" eSuperTypes="#//JavaEObject core.ecore#//mappings/IGenerator"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaTableGenerator" eSuperTypes="#//mappings/JavaGenerator core.ecore#//mappings/ITableGenerator"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaSequenceGenerator" eSuperTypes="#//mappings/JavaGenerator core.ecore#//mappings/ISequenceGenerator"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaOrderBy" eSuperTypes="#//JavaEObject core.ecore#//mappings/IOrderBy"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaAbstractQuery" abstract="true" + eSuperTypes="#//JavaEObject core.ecore#//mappings/IQuery"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaNamedQuery" eSuperTypes="#//mappings/JavaAbstractQuery core.ecore#//mappings/INamedQuery"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaNamedNativeQuery" eSuperTypes="#//mappings/JavaAbstractQuery core.ecore#//mappings/INamedNativeQuery"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaQueryHint" eSuperTypes="#//JavaEObject core.ecore#//mappings/IQueryHint"/> + </eSubpackages> +</ecore:EPackage> diff --git a/jpa/plugins/org.eclipse.jpt.core/model/javaModel.ecore b/jpa/plugins/org.eclipse.jpt.core/model/javaModel.ecore new file mode 100644 index 0000000000..87cfd4f59e --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/model/javaModel.ecore @@ -0,0 +1,353 @@ +<?xml version="1.0" encoding="ASCII"?> +<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="java" + nsURI="java.xmi" nsPrefix="org.eclipse.jem.java"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Changes to synch up with Java3e:
- deleted JavaElement, BodyElement which didn't add anything useful
- deleted NestedClass and the association which described nesting, contents can be used instead
- deleted extends/extendedBy which is replaced with MOF subtype/supertype
- deleted the clumsy main diagram
- moved the MOF inheritance details to the MOF binding diagram
- deleted "final" on JavaParameter, don't know what that was supposed to be
- deleted the Category junk
- changed the Block-typed attributes on Field, Method, Initializer to be associations to Block

Outstanding questions/issues:
- JavaParameterKind should go away if we get the base Parameter kind fixed up
"/> + </eAnnotations> + <eClassifiers xsi:type="ecore:EClass" name="JavaClass" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"> + <eOperations name="isNested" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eOperations name="getField" eType="#//Field"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return an Field with the passed name, or null."/> + </eAnnotations> + <eParameters name="fieldName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eOperations name="getFieldExtended" eType="#//Field"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value=" Return an Field with the passed name from this JavaClass or any supertypes.

Return null if a Field named fieldName is not found."/> + </eAnnotations> + <eParameters name="fieldName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eOperations name="getFieldNamed" eType="#//Field"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return an Field with the passed name, or null."/> + </eAnnotations> + <eParameters name="fieldName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eOperations name="getFieldsExtended" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return all fields, including those from supertypes."/> + </eAnnotations> + </eOperations> + <eOperations name="getMethod" eType="#//Method"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Get the method of this name and these parameters. It will not look up the supertype hierarchy."/> + </eAnnotations> + <eParameters name="methodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eParameters name="parameterTypes" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="List of parameter types."/> + </eAnnotations> + </eParameters> + </eOperations> + <eOperations name="getMethodElementSignatures" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return a List of Strings that represent MethodElement signatures from most general to most specific."/> + </eAnnotations> + </eOperations> + <eOperations name="getMethodExtended" eType="#//Method"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Get the method of this name and these parameters. It will look up the supertype hierarchy."/> + </eAnnotations> + <eParameters name="methodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eParameters name="parameterTypes" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="List of parameter types."/> + </eAnnotations> + </eParameters> + </eOperations> + <eOperations name="getMethodsExtended" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return all methods, including those from supertypes."/> + </eAnnotations> + </eOperations> + <eOperations name="getOnlySpecificMethods" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return a List of Methods that begins with @aMethodNamePrefix and is not included in the @excludedNames list. If @aMethodNamePrefix is null, all methods will be returned.
"/> + </eAnnotations> + <eParameters name="aMethodNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eParameters name="excludedNames" eType="#//JTypeList"/> + </eOperations> + <eOperations name="getPublicMethod" eType="#//Method"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return a method matching the name, and non-return parameters with fully qualified types matching all the types in the list, if it exists. It will not look up the supertype hierarchy."/> + </eAnnotations> + <eParameters name="methodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eParameters name="parameterTypes" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="List of parameter types."/> + </eAnnotations> + </eParameters> + </eOperations> + <eOperations name="getPublicMethods" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return all methods, it will not go up the supertype hierarchy."/> + </eAnnotations> + </eOperations> + <eOperations name="getPublicMethodsExtended" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return all public methods, including those from supertypes."/> + </eAnnotations> + </eOperations> + <eOperations name="getPublicMethodsNamed" eType="#//JTypeList"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Returns a filtered list on the methods of this class, having a name equal to that of the parameter."/> + </eAnnotations> + <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eOperations name="getSupertype" eType="#//JavaClass"/> + <eOperations name="implementsInterface" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Test whether the receiver implements the passed interface (or one of its supertypes)."/> + </eAnnotations> + <eParameters name="interfaceType" eType="#//JavaClass"/> + </eOperations> + <eOperations name="infoString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return a string showing our details."/> + </eAnnotations> + </eOperations> + <eOperations name="inheritsFrom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Tests whether this class inherits from the passed in class."/> + </eAnnotations> + <eParameters name="javaClass" eType="#//JavaClass"/> + </eOperations> + <eOperations name="isExistingType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Does this type exist."/> + </eAnnotations> + </eOperations> + <eOperations name="isInterface" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Is this an interface."/> + </eAnnotations> + </eOperations> + <eOperations name="setSupertype"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Set the supertype."/> + </eAnnotations> + <eParameters name="javaclass" eType="#//JavaClass"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//TypeKind"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="public" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="implementsInterfaces" upperBound="-1" + eType="#//JavaClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="classImport" upperBound="-1" + eType="#//JavaClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="packageImports" upperBound="-1" + eType="#//JavaPackage"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="fields" upperBound="-1" + eType="#//Field" containment="true" eOpposite="#//Field/javaClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="methods" upperBound="-1" + eType="#//Method" containment="true" eOpposite="#//Method/javaClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" upperBound="-1" + eType="#//Initializer" containment="true" eOpposite="#//Initializer/javaClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="declaredClasses" upperBound="-1" + eType="#//JavaClass" eOpposite="#//JavaClass/declaringClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="declaringClass" eType="#//JavaClass" + eOpposite="#//JavaClass/declaredClasses"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="javaPackage" eType="#//JavaPackage" + changeable="false" volatile="true" transient="true" eOpposite="#//JavaPackage/javaClasses"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1" + eType="#//JavaEvent" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="allEvents" upperBound="-1" + eType="#//JavaEvent" volatile="true" transient="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Initializer"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" eType="#//JavaClass" + transient="true" eOpposite="#//JavaClass/initializers"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//Block"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JavaParameter" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EParameter"> + <eOperations name="isArray" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Is this parameter type an array type."/> + </eAnnotations> + </eOperations> + <eOperations name="isReturn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Is this a return parameter."/> + </eAnnotations> + </eOperations> + <eOperations name="getJavaType" eType="#//JTypeJavaHelpers"/> + <eOperations name="getQualifiedName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterKind" eType="#//JavaParameterKind"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Method" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation"> + <eOperations name="getContainingJavaClass" eType="#//JavaClass"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return the java class that this method is defined in."/> + </eAnnotations> + </eOperations> + <eOperations name="getMethodElementSignature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return a String with the the method name and its parameters. e.g. <code> setFirstName(java.lang.String) </code> .
 "/> + </eAnnotations> + </eOperations> + <eOperations name="getParameter" eType="#//JavaParameter"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return a Parameter with the passed name, or null."/> + </eAnnotations> + <eParameters name="parameterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eOperations name="getReturnType" eType="#//JTypeJavaHelpers"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Get the return type."/> + </eAnnotations> + </eOperations> + <eOperations name="setReturnType"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Set the return type"/> + </eAnnotations> + <eParameters name="type" eType="#//JTypeJavaHelpers"/> + </eOperations> + <eOperations name="getSignature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Replicate the functionality of java.lang.reflect.Method.toString().

Returns a string describing this Method. The string is formatted as the method access modifiers, if any, followed by the method return type, followed by a space, followed by the class declaring the method, followed by a period, followed by the method name, followed by a parenthesized, comma-separated list of the method's formal parameter types. If the method throws checked exceptions, the parameter list is followed by a space, followed by the word throws followed by a comma-separated list of the thrown exception types.

For example:

 public boolean java.lang.Object.equals(java.lang.Object)

The access modifiers are placed in canonical order as specified by "The Java Language Specification". This is public, <tt>protected</tt> or <tt>private</tt> first, and then other modifiers in the following order: <tt>abstract</tt>, <tt>static</tt>, <tt>final</tt>, <tt>synchronized</tt> <tt>native</tt>.
"/> + </eAnnotations> + </eOperations> + <eOperations name="isGenerated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Returns true if the method is system generated.
This is usually determined by the @generated tag in the comment."/> + </eAnnotations> + </eOperations> + <eOperations name="setIsGenerated"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Set the isGenerated flag."/> + </eAnnotations> + <eParameters name="generated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </eOperations> + <eOperations name="isVoid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Is this a void return type method."/> + </eAnnotations> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="native" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="constructor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="javaVisibility" eType="#//JavaVisibilityKind"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" + eType="#//JavaParameter" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="javaExceptions" upperBound="-1" + eType="#//JavaClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" eType="#//JavaClass" + transient="true" eOpposite="#//JavaClass/methods"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//Block"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Field" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement"> + <eOperations name="getContainingJavaClass" eType="#//JavaClass"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Get the class that this field is within."/> + </eAnnotations> + </eOperations> + <eOperations name="isArray" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Is this field an array type."/> + </eAnnotations> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="javaVisibility" eType="#//JavaVisibilityKind"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" eType="#//JavaClass" + transient="true" eOpposite="#//JavaClass/fields"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="initializer" eType="#//Block" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="TypeKind"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="UNDEFINED=1 CLASS=2 INTERFACE=3 EXCEPTION=4"/> + </eAnnotations> + <eLiterals name="UNDEFINED"/> + <eLiterals name="CLASS" value="1"/> + <eLiterals name="INTERFACE" value="2"/> + <eLiterals name="EXCEPTION" value="3"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Block"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" + eType="#//Block" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Block"/> + <eClassifiers xsi:type="ecore:EClass" name="Statement" eSuperTypes="#//Block"/> + <eClassifiers xsi:type="ecore:EClass" name="JavaPackage" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage"> + <eStructuralFeatures xsi:type="ecore:EReference" name="javaClasses" upperBound="-1" + eType="#//JavaClass" changeable="false" volatile="true" transient="true" eOpposite="#//JavaClass/javaPackage"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="JavaVisibilityKind"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="PACKAGE=1
PUBLIC=2
PRIVATE=3
PROTECTED=4"/> + </eAnnotations> + <eLiterals name="PUBLIC"/> + <eLiterals name="PRIVATE" value="1"/> + <eLiterals name="PROTECTED" value="2"/> + <eLiterals name="PACKAGE" value="3"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="JavaParameterKind"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="IN=0
OUT=1
INOUT=2
RETURN=3"/> + </eAnnotations> + <eLiterals name="IN"/> + <eLiterals name="OUT" value="1"/> + <eLiterals name="INOUT" value="2"/> + <eLiterals name="RETURN" value="3"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JavaDataType" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"> + <eOperations name="getDefaultValueString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Return the default string representing the default value of the primitive."/> + </eAnnotations> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ArrayType" eSuperTypes="#//JavaClass"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Describes a Java Array type
 For multi-dimensional arrays, it is unlikely that the component type will be
 specified directly. This would require instantiating a chain of component types
 such as String[][][][]->String[][][]->String[][]->String[]->String.

 The component type relationship will be computed if the finalComponentType
 and array dimensions is specified.
 
 For this reason, the preferred way to create is through the JavaRefFactory factory method:
 createArrayType(JavaClass finalComponentType, int dimensions)"/> + </eAnnotations> + <eOperations name="getFinalComponentType" eType="#//JTypeJavaHelpers"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Get the final component type for this Array Type.

In order to ensure a unique instance, we will resolve this type using reflection. It turns out to be most efficient to just do this by trimming the name."/> + </eAnnotations> + </eOperations> + <eOperations name="getComponentTypeAsHelper" eType="#//JTypeJavaHelpers"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Get the component type of this array. 

If this is a multi-dimensional array, the component type will be the nested array type."/> + </eAnnotations> + </eOperations> + <eOperations name="isPrimitiveArray" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Is this an array of java primitives"/> + </eAnnotations> + </eOperations> + <eOperations name="setComponentType"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="Set the component type."/> + </eAnnotations> + <eParameters name="helperComponentType" eType="#//JTypeJavaHelpers"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="arrayDimensions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="componentType" lowerBound="1" + eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="JTypeJavaHelpers" instanceClassName="org.eclipse.jem.java.JavaHelpers"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="This interface is a common interface between JavaClass and JavaDataType plus some common helper methods."/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="JTypeList" instanceClassName="java.util.List"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="documentation" value="java.util.List type"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JavaEvent" abstract="true" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/> +</ecore:EPackage> diff --git a/jpa/plugins/org.eclipse.jpt.core/model/javaModel.genmodel b/jpa/plugins/org.eclipse.jpt.core/model/javaModel.genmodel new file mode 100644 index 0000000000..f21ce09e58 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/model/javaModel.genmodel @@ -0,0 +1,173 @@ +<?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.jpt.core/model" + editDirectory="/org.eclipse.jem.edit/src" editorDirectory="/org.eclipse.jem.editor/src" + modelPluginID="" modelName="Java" modelPluginClass="" editPluginClass="java.provider.JavaEditPlugin" + editorPluginClass="java.presentation.JavaEditorPlugin" updateClasspath="false" + booleanFlagsField="eFlags" booleanFlagsReservedBits="8" importerID="org.eclipse.emf.importer.ecore" + usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"> + <foreignModel>javaModel.ecore</foreignModel> + <genPackages prefix="JavaRef" basePackage="org.eclipse.jem" classPackageSuffix="internal.impl" + ecorePackage="javaModel.ecore#/"> + <genEnums ecoreEnum="javaModel.ecore#//TypeKind"> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//TypeKind/UNDEFINED"/> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//TypeKind/CLASS"/> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//TypeKind/INTERFACE"/> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//TypeKind/EXCEPTION"/> + </genEnums> + <genEnums ecoreEnum="javaModel.ecore#//JavaVisibilityKind"> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//JavaVisibilityKind/PUBLIC"/> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//JavaVisibilityKind/PRIVATE"/> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//JavaVisibilityKind/PROTECTED"/> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//JavaVisibilityKind/PACKAGE"/> + </genEnums> + <genEnums ecoreEnum="javaModel.ecore#//JavaParameterKind"> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//JavaParameterKind/IN"/> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//JavaParameterKind/OUT"/> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//JavaParameterKind/INOUT"/> + <genEnumLiterals ecoreEnumLiteral="javaModel.ecore#//JavaParameterKind/RETURN"/> + </genEnums> + <genDataTypes ecoreDataType="javaModel.ecore#//JTypeJavaHelpers"/> + <genDataTypes ecoreDataType="javaModel.ecore#//JTypeList"/> + <genClasses ecoreClass="javaModel.ecore#//JavaClass"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//JavaClass/kind"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//JavaClass/public"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//JavaClass/final"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/implementsInterfaces"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/classImport"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/packageImports"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/fields"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/methods"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/initializers"/> + <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/declaredClasses"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/declaringClass"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/javaPackage"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/events"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//JavaClass/allEvents"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/isNested"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getField"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getField/fieldName"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getFieldExtended"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getFieldExtended/fieldName"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getFieldNamed"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getFieldNamed/fieldName"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getFieldsExtended"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getMethod"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getMethod/methodName"/> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getMethod/parameterTypes"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getMethodElementSignatures"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getMethodExtended"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getMethodExtended/methodName"/> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getMethodExtended/parameterTypes"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getMethodsExtended"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getOnlySpecificMethods"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getOnlySpecificMethods/aMethodNamePrefix"/> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getOnlySpecificMethods/excludedNames"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getPublicMethod"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getPublicMethod/methodName"/> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getPublicMethod/parameterTypes"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getPublicMethods"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getPublicMethodsExtended"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getPublicMethodsNamed"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/getPublicMethodsNamed/name"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/getSupertype"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/implementsInterface"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/implementsInterface/interfaceType"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/infoString"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/inheritsFrom"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/inheritsFrom/javaClass"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/isExistingType"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/isInterface"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaClass/setSupertype"> + <genParameters ecoreParameter="javaModel.ecore#//JavaClass/setSupertype/javaclass"/> + </genOperations> + </genClasses> + <genClasses ecoreClass="javaModel.ecore#//Initializer"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Initializer/isStatic"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//Initializer/javaClass"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//Initializer/source"/> + </genClasses> + <genClasses ecoreClass="javaModel.ecore#//JavaParameter"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//JavaParameter/final"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//JavaParameter/parameterKind"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaParameter/isArray"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaParameter/isReturn"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaParameter/getJavaType"/> + <genOperations ecoreOperation="javaModel.ecore#//JavaParameter/getQualifiedName"/> + </genClasses> + <genClasses ecoreClass="javaModel.ecore#//Method"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Method/abstract"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Method/native"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Method/synchronized"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Method/final"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Method/constructor"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Method/static"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Method/javaVisibility"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference javaModel.ecore#//Method/parameters"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//Method/javaExceptions"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//Method/javaClass"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//Method/source"/> + <genOperations ecoreOperation="javaModel.ecore#//Method/getContainingJavaClass"/> + <genOperations ecoreOperation="javaModel.ecore#//Method/getMethodElementSignature"/> + <genOperations ecoreOperation="javaModel.ecore#//Method/getParameter"> + <genParameters ecoreParameter="javaModel.ecore#//Method/getParameter/parameterName"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//Method/getReturnType"/> + <genOperations ecoreOperation="javaModel.ecore#//Method/setReturnType"> + <genParameters ecoreParameter="javaModel.ecore#//Method/setReturnType/type"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//Method/getSignature"/> + <genOperations ecoreOperation="javaModel.ecore#//Method/isGenerated"/> + <genOperations ecoreOperation="javaModel.ecore#//Method/setIsGenerated"> + <genParameters ecoreParameter="javaModel.ecore#//Method/setIsGenerated/generated"/> + </genOperations> + <genOperations ecoreOperation="javaModel.ecore#//Method/isVoid"/> + </genClasses> + <genClasses ecoreClass="javaModel.ecore#//Field"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Field/final"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Field/static"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Field/javaVisibility"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Field/transient"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Field/volatile"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//Field/javaClass"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference javaModel.ecore#//Field/initializer"/> + <genOperations ecoreOperation="javaModel.ecore#//Field/getContainingJavaClass"/> + <genOperations ecoreOperation="javaModel.ecore#//Field/isArray"/> + </genClasses> + <genClasses ecoreClass="javaModel.ecore#//Block"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Block/source"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//Block/name"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference javaModel.ecore#//Block/contents"/> + </genClasses> + <genClasses ecoreClass="javaModel.ecore#//Comment"/> + <genClasses ecoreClass="javaModel.ecore#//Statement"/> + <genClasses ecoreClass="javaModel.ecore#//JavaPackage"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//JavaPackage/javaClasses"/> + </genClasses> + <genClasses ecoreClass="javaModel.ecore#//JavaDataType"> + <genOperations ecoreOperation="javaModel.ecore#//JavaDataType/getDefaultValueString"/> + </genClasses> + <genClasses ecoreClass="javaModel.ecore#//ArrayType"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute javaModel.ecore#//ArrayType/arrayDimensions"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EReference javaModel.ecore#//ArrayType/componentType"/> + <genOperations ecoreOperation="javaModel.ecore#//ArrayType/getFinalComponentType"/> + <genOperations ecoreOperation="javaModel.ecore#//ArrayType/getComponentTypeAsHelper"/> + <genOperations ecoreOperation="javaModel.ecore#//ArrayType/isPrimitiveArray"/> + <genOperations ecoreOperation="javaModel.ecore#//ArrayType/setComponentType"> + <genParameters ecoreParameter="javaModel.ecore#//ArrayType/setComponentType/helperComponentType"/> + </genOperations> + </genClasses> + <genClasses ecoreClass="javaModel.ecore#//JavaEvent"/> + </genPackages> +</genmodel:GenModel> diff --git a/jpa/plugins/org.eclipse.jpt.core/model/orm.ecore b/jpa/plugins/org.eclipse.jpt.core/model/orm.ecore new file mode 100644 index 0000000000..2d3a575788 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/model/orm.ecore @@ -0,0 +1,270 @@ +<?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="orm" + nsURI="jpt.orm.xmi" nsPrefix="org.eclipse.jpt.core.content.orm"> + <eClassifiers xsi:type="ecore:EClass" name="XmlRootContentNode" eSuperTypes="core.ecore#//XmlEObject core.ecore#//IJpaRootContentNode"> + <eStructuralFeatures xsi:type="ecore:EReference" name="entityMappings" ordered="false" + unique="false" lowerBound="1" eType="#//EntityMappingsInternal" resolveProxies="false" + eOpposite="#//EntityMappingsInternal/root"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EntityMappingsInternal" eSuperTypes="core.ecore#//XmlEObject core.ecore#//IJpaContentNode #//EntityMappingsForXml #//EntityMappings"> + <eStructuralFeatures xsi:type="ecore:EReference" name="root" ordered="false" unique="false" + lowerBound="1" eType="#//XmlRootContentNode" defaultValueLiteral="" resolveProxies="false" + eOpposite="#//XmlRootContentNode/entityMappings"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistenceUnitMetadataInternal" + lowerBound="1" eType="#//PersistenceUnitMetadataInternal" changeable="false" + defaultValueLiteral="" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageInternal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultSchema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedSchema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" transient="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultCatalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedCatalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" transient="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultAccess" eType="ecore:EEnum core.ecore#//AccessType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedAccess" eType="ecore:EEnum core.ecore#//AccessType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="ecore:EEnum core.ecore#//AccessType" + changeable="false" volatile="true" transient="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="typeMappings" upperBound="-1" + eType="#//XmlTypeMapping" defaultValueLiteral="" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistentTypes" upperBound="-1" + eType="#//XmlPersistentType" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceGenerators" upperBound="-1" + eType="#//XmlSequenceGenerator" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="tableGenerators" upperBound="-1" + eType="#//XmlTableGenerator" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="namedQueries" upperBound="-1" + eType="#//XmlNamedQuery" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="namedNativeQueries" upperBound="-1" + eType="#//XmlNamedNativeQuery" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EntityMappings" abstract="true" interface="true"> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistenceUnitMetadata" + eType="#//PersistenceUnitMetadata" changeable="false" volatile="true" defaultValueLiteral="" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="package" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EntityMappingsForXml" abstract="true" + interface="true"> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistenceUnitMetadataForXml" + eType="#//PersistenceUnitMetadataForXml" volatile="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlTypeMapping" abstract="true" eSuperTypes="core.ecore#//XmlEObject core.ecore#//ITypeMapping"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultAccess" eType="ecore:EEnum core.ecore#//AccessType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedAccess" eType="ecore:EEnum core.ecore#//AccessType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="ecore:EEnum core.ecore#//AccessType" + changeable="false" volatile="true" transient="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="metadataComplete" eType="ecore:EEnum core.ecore#//mappings/DefaultFalseBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistentType" lowerBound="1" + eType="#//XmlPersistentType" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlPersistentType" eSuperTypes="core.ecore#//XmlEObject core.ecore#//IPersistentType"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="attributeMappings" upperBound="-1" + eType="#//XmlAttributeMapping" changeable="false" volatile="true" transient="true" + containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedAttributeMappings" + upperBound="-1" eType="#//XmlAttributeMapping" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="virtualAttributeMappings" + upperBound="-1" eType="#//XmlAttributeMapping" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistentAttributes" upperBound="-1" + eType="#//XmlPersistentAttribute" changeable="false" volatile="true" transient="true" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedPersistentAttributes" + upperBound="-1" eType="#//XmlPersistentAttribute" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="virtualPersistentAttributes" + upperBound="-1" eType="#//XmlPersistentAttribute" resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlMappedSuperclass" eSuperTypes="#//XmlTypeMapping core.ecore#//mappings/IMappedSuperclass"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlEntityInternal" eSuperTypes="#//XmlTypeMapping #//XmlEntityForXml #//XmlEntity"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlEntityForXml" abstract="true" interface="true"> + <eStructuralFeatures xsi:type="ecore:EReference" name="tableForXml" eType="#//XmlTable" + volatile="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="discriminatorColumnForXml" + eType="#//XmlDiscriminatorColumn" volatile="true" resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlEntity" abstract="true" interface="true" + eSuperTypes="core.ecore#//mappings/IEntity"> + <eStructuralFeatures xsi:type="ecore:EReference" name="secondaryTables" upperBound="-1" + eType="ecore:EClass core.ecore#//mappings/ISecondaryTable" changeable="false" + volatile="true" transient="true" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="specifiedSecondaryTables" + upperBound="-1" eType="ecore:EClass core.ecore#//mappings/ISecondaryTable" + containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultSecondaryTables" + upperBound="-1" eType="ecore:EClass core.ecore#//mappings/ISecondaryTable" + containment="true" resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddable" eSuperTypes="#//XmlTypeMapping core.ecore#//mappings/IEmbeddable"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlAttributeMapping" abstract="true" + eSuperTypes="core.ecore#//XmlEObject core.ecore#//IAttributeMapping"> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistentAttribute" lowerBound="1" + eType="#//XmlPersistentAttribute" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlNullAttributeMapping" eSuperTypes="#//XmlAttributeMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlBasic" eSuperTypes="#//XmlAttributeMapping core.ecore#//mappings/IBasic #//IXmlColumnMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlId" eSuperTypes="#//XmlAttributeMapping core.ecore#//mappings/IId #//IXmlColumnMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlTransient" eSuperTypes="#//XmlAttributeMapping core.ecore#//mappings/ITransient"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlEmbedded" eSuperTypes="#//XmlAttributeMapping core.ecore#//mappings/IEmbedded"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddedId" eSuperTypes="#//XmlAttributeMapping core.ecore#//mappings/IEmbeddedId"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlVersion" eSuperTypes="#//XmlAttributeMapping core.ecore#//mappings/IVersion #//IXmlColumnMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlMultiRelationshipMappingInternal" + abstract="true" eSuperTypes="#//XmlRelationshipMapping core.ecore#//mappings/IMultiRelationshipMapping #//XmlMultiRelationshipMappingForXml #//XmlMultiRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlMultiRelationshipMappingForXml" abstract="true" + interface="true"> + <eStructuralFeatures xsi:type="ecore:EReference" name="joinTableForXml" eType="#//XmlJoinTable" + volatile="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="orderByForXml" eType="#//XmlOrderBy" + volatile="true" resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlMultiRelationshipMapping" abstract="true" + interface="true" eSuperTypes="core.ecore#//mappings/IMultiRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlOneToMany" eSuperTypes="#//XmlMultiRelationshipMappingInternal core.ecore#//mappings/IOneToMany"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlManyToMany" eSuperTypes="#//XmlMultiRelationshipMappingInternal core.ecore#//mappings/IManyToMany"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlPersistentAttribute" eSuperTypes="core.ecore#//XmlEObject core.ecore#//IPersistentAttribute"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PersistenceUnitMetadataInternal" eSuperTypes="core.ecore#//XmlEObject #//PersistenceUnitMetadataForXml #//PersistenceUnitMetadata"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="xmlMappingMetadataCompleteInternal" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistenceUnitDefaultsInternal" + lowerBound="1" eType="#//PersistenceUnitDefaultsInternal" changeable="false" + defaultValueLiteral="" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PersistenceUnitMetadata" abstract="true" + interface="true" eSuperTypes="core.ecore#//IXmlEObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="xmlMappingMetadataComplete" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistenceUnitDefaults" + eType="#//PersistenceUnitDefaults" changeable="false" volatile="true" defaultValueLiteral="" + resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PersistenceUnitMetadataForXml" abstract="true" + interface="true" eSuperTypes="core.ecore#//IXmlEObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="xmlMappingMetadataCompleteForXml" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistenceUnitDefaultsForXml" + eType="#//PersistenceUnitDefaultsForXml" volatile="true" defaultValueLiteral="" + resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PersistenceUnitDefaultsInternal" eSuperTypes="core.ecore#//XmlEObject #//PersistenceUnitDefaults #//PersistenceUnitDefaultsForXml"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="schemaInternal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalogInternal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="accessInternal" eType="ecore:EEnum core.ecore#//AccessType" + defaultValueLiteral=""/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="cascadePersistInternal" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PersistenceUnitDefaults" abstract="true" + interface="true" eSuperTypes="core.ecore#//IXmlEObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="schema" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalog" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="ecore:EEnum core.ecore#//AccessType" + volatile="true" defaultValueLiteral=""/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="cascadePersist" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PersistenceUnitDefaultsForXml" abstract="true" + interface="true" eSuperTypes="core.ecore#//IXmlEObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="schemaForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="catalogForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="accessForXml" eType="ecore:EEnum core.ecore#//AccessType" + volatile="true" defaultValueLiteral=""/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="cascadePersistForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlTable" eSuperTypes="#//AbstractXmlTable core.ecore#//mappings/ITable"/> + <eClassifiers xsi:type="ecore:EClass" name="AbstractXmlNamedColumn" abstract="true" + eSuperTypes="core.ecore#//XmlEObject core.ecore#//mappings/INamedColumn"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedNameForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnDefinitionForXml" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="AbstractXmlColumn" abstract="true" eSuperTypes="#//AbstractXmlNamedColumn core.ecore#//mappings/IAbstractColumn"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueForXml" eType="ecore:EEnum core.ecore#//mappings/DefaultFalseBoolean" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullableForXml" eType="ecore:EEnum core.ecore#//mappings/DefaultTrueBoolean" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="insertableForXml" eType="ecore:EEnum core.ecore#//mappings/DefaultTrueBoolean" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="updatableForXml" eType="ecore:EEnum core.ecore#//mappings/DefaultTrueBoolean" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedTableForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlColumn" eSuperTypes="#//AbstractXmlColumn core.ecore#//mappings/IColumn"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="lengthForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" + volatile="true" defaultValueLiteral="255"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="precisionForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="scaleForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" + volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlJoinColumn" eSuperTypes="#//AbstractXmlColumn core.ecore#//mappings/IJoinColumn"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedReferencedColumnNameForXml" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="IXmlColumnMapping" abstract="true" interface="true" + eSuperTypes="core.ecore#//mappings/IColumnMapping"> + <eOperations name="makeColumnForXmlNonNull"/> + <eOperations name="makeColumnForXmlNull"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="columnForXml" eType="#//XmlColumn" + volatile="true" resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlManyToOne" eSuperTypes="#//XmlSingleRelationshipMapping core.ecore#//mappings/IManyToOne"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlOneToOne" eSuperTypes="#//XmlSingleRelationshipMapping core.ecore#//mappings/IOneToOne"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlSingleRelationshipMapping" abstract="true" + eSuperTypes="#//XmlRelationshipMapping core.ecore#//mappings/ISingleRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlRelationshipMapping" abstract="true" + eSuperTypes="#//XmlAttributeMapping core.ecore#//mappings/IRelationshipMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlJoinTable" eSuperTypes="#//AbstractXmlTable core.ecore#//mappings/IJoinTable"/> + <eClassifiers xsi:type="ecore:EClass" name="AbstractXmlTable" abstract="true" eSuperTypes="core.ecore#//XmlEObject core.ecore#//mappings/ITable"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedNameForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedCatalogForXml" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedSchemaForXml" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlOverride" abstract="true" eSuperTypes="core.ecore#//XmlEObject core.ecore#//mappings/IOverride"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlAttributeOverride" eSuperTypes="#//XmlOverride core.ecore#//mappings/IAttributeOverride #//IXmlColumnMapping"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlAssociationOverride" eSuperTypes="#//XmlOverride core.ecore#//mappings/IAssociationOverride"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlDiscriminatorColumn" eSuperTypes="core.ecore#//XmlEObject core.ecore#//mappings/IDiscriminatorColumn"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedNameForXml" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="discriminatorTypeForXml" + eType="ecore:EEnum core.ecore#//mappings/DiscriminatorType" volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="columnDefinitionForXml" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" volatile="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedLengthForXml" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt" + volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlSecondaryTable" eSuperTypes="#//AbstractXmlTable core.ecore#//mappings/ISecondaryTable"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlPrimaryKeyJoinColumn" eSuperTypes="#//AbstractXmlNamedColumn core.ecore#//mappings/IPrimaryKeyJoinColumn"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="specifiedReferencedColumnNameForXml" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" volatile="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XmlGeneratedValue" eSuperTypes="core.ecore#//XmlEObject core.ecore#//mappings/IGeneratedValue"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlGenerator" abstract="true" eSuperTypes="core.ecore#//XmlEObject core.ecore#//mappings/IGenerator"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlSequenceGenerator" eSuperTypes="#//XmlGenerator core.ecore#//mappings/ISequenceGenerator"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlTableGenerator" eSuperTypes="#//XmlGenerator core.ecore#//mappings/ITableGenerator"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlOrderBy" eSuperTypes="core.ecore#//XmlEObject core.ecore#//mappings/IOrderBy"/> + <eClassifiers xsi:type="ecore:EClass" name="AbstractXmlQuery" abstract="true" eSuperTypes="core.ecore#//XmlEObject core.ecore#//mappings/IQuery"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlNamedQuery" eSuperTypes="#//AbstractXmlQuery core.ecore#//mappings/INamedQuery"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlNamedNativeQuery" eSuperTypes="#//AbstractXmlQuery core.ecore#//mappings/INamedNativeQuery"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlQueryHint" eSuperTypes="core.ecore#//XmlEObject core.ecore#//mappings/IQueryHint"/> +</ecore:EPackage> diff --git a/jpa/plugins/org.eclipse.jpt.core/model/persistence.ecore b/jpa/plugins/org.eclipse.jpt.core/model/persistence.ecore new file mode 100644 index 0000000000..628ffd690f --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/model/persistence.ecore @@ -0,0 +1,70 @@ +<?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="persistence" + nsURI="persistence.xmi" nsPrefix="org.eclipse.jpt.core.content.persistence"> + <eClassifiers xsi:type="ecore:EClass" name="PersistenceXmlRootContentNode" eSuperTypes="core.ecore#//XmlEObject core.ecore#//IJpaRootContentNode"> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistence" eType="#//Persistence" + eOpposite="#//Persistence/root"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Persistence" eSuperTypes="core.ecore#//XmlEObject"> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistenceUnits" upperBound="-1" + eType="#//PersistenceUnit" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false" + lowerBound="1" eType="#//Version"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="root" ordered="false" unique="false" + lowerBound="1" eType="#//PersistenceXmlRootContentNode" resolveProxies="false" + eOpposite="#//PersistenceXmlRootContentNode/persistence"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PersistenceUnit" eSuperTypes="core.ecore#//XmlEObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" unique="false" + eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" unique="false" + eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="jtaDataSource" unique="false" + eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonJtaDataSource" unique="false" + eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="mappingFiles" unique="false" + upperBound="-1" eType="#//MappingFileRef" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="jarFiles" unique="false" + upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="classes" unique="false" + upperBound="-1" eType="#//JavaClassRef" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="excludeUnlistedClasses" + unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean" + defaultValueLiteral="false" unsettable="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="properties" eType="#//Properties" + containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="transactionType" unique="false" + eType="#//PersistenceUnitTransactionType" defaultValueLiteral="JTA" unsettable="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="MappingFileRef" eSuperTypes="core.ecore#//XmlEObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="fileName" ordered="false" + unique="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="JavaClassRef" eSuperTypes="core.ecore#//XmlEObject"> + <eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" ordered="false" + unique="false" lowerBound="1" eType="ecore:EClass javaModel.ecore#//JavaClass" + resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Properties" eSuperTypes="core.ecore#//XmlEObject"> + <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1" + eType="#//Property" containment="true" resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Property" eSuperTypes="core.ecore#//XmlEObject"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="PersistenceUnitTransactionType"> + <eLiterals name="JTA"/> + <eLiterals name="RESOURCE_LOCAL" value="1"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="PersistenceUnitTransactionTypeObject" + instanceClassName="org.eclipse.emf.common.util.Enumerator"/> + <eClassifiers xsi:type="ecore:EDataType" name="Version" instanceClassName="java.lang.String"/> +</ecore:EPackage> diff --git a/jpa/plugins/org.eclipse.jpt.core/plugin.properties b/jpa/plugins/org.eclipse.jpt.core/plugin.properties new file mode 100644 index 0000000000..92b7c44540 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/plugin.properties @@ -0,0 +1,36 @@ +############################################################################### +# Copyright (c) 2006 Oracle. +# 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: +# Oracle. - initial API and implementation +############################################################################### +# ==================================================================== +# To code developer: +# Do NOT change the properties between this line and the +# "%%% END OF TRANSLATED PROPERTIES %%%" line. +# Make a new property name, append to the end of the file and change +# the code to use the new property. +# ==================================================================== + +# ==================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# ==================================================================== + +pluginName = Java Persistence API Tools - Core +providerName = Eclipse.org + +JPA_PLATFORM="JPA Platform" +JPA_PROBLEM_MARKER=JPA Problem Marker +JPA_FILE_CONTENT=JPA File Content + +GENERIC_PLATFORM_LABEL=Generic + +JPA_FACET_LABEL=Java Persistence +JPA_FACET_DESCRIPTION=Adds support for writing persistent meta-data using Java Persistence Architecture. +JPA_PRESET_LABEL=Utility JPA project with Java 5.0 +JPA_TEMPLATE_LABEL=JPA Project +JPA_VALIDATOR=JPA Validator diff --git a/jpa/plugins/org.eclipse.jpt.core/plugin.xml b/jpa/plugins/org.eclipse.jpt.core/plugin.xml new file mode 100644 index 0000000000..31e7a5ebd3 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/plugin.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<plugin> + <extension-point + id="jpaPlatform" name="%JPA_PLATFORM" schema="schema/jpaPlatform.exsd"/> + + + <extension + point="org.eclipse.core.resources.markers" + id="jpaProblemMarker" + name="%JPA_PROBLEM_MARKER"> + <persistent value="true"/> + + <!-- Can't use text marker until we have specific models for each input type (XML, java) + <super type="org.eclipse.core.resources.textmarker"/> + --> + + <super type="org.eclipse.wst.validation.problemmarker"/> + </extension> + + + <extension + point="org.eclipse.core.runtime.adapters"> + + <factory + class="org.eclipse.jpt.core.internal.JpaProjectAdapterFactory" + adaptableType="org.eclipse.core.resources.IProject"> + <adapter type="org.eclipse.jpt.core.internal.IJpaProject"/> + </factory> + + <factory + class="org.eclipse.jpt.core.internal.JpaProjectAdapterFactory" + adaptableType="org.eclipse.jdt.core.IJavaProject"> + <adapter type="org.eclipse.jpt.core.internal.IJpaProject"/> + </factory> + + </extension> + + + <extension + point="org.eclipse.core.runtime.contentTypes"> + + <content-type + base-type="org.eclipse.core.runtime.xml" + file-names="orm.xml" + id="org.eclipse.jpt.core.content.orm" + name="ORM XML Content" + priority="normal"> + Only allowing file names of orm.xml. Extenders will have to specify a different file name. + Limitation with WTP translators for registering files names instead of content types + </content-type> + <content-type + base-type="org.eclipse.core.runtime.xml" + file-names="persistence.xml" + id="org.eclipse.jpt.core.content.persistence" + name="Persistence XML Content" + priority="normal"> + Only allowing file names of persistence.xml. + </content-type> + + </extension> + + + <extension + point="org.eclipse.core.runtime.preferences"> + + <initializer + class="org.eclipse.jpt.core.internal.prefs.JpaPreferenceInitializer"/> + + </extension> + + + <extension + point="org.eclipse.jpt.core.jpaPlatform"> + + <jpaPlatform + id="generic" + label="%GENERIC_PLATFORM_LABEL" + class="org.eclipse.jpt.core.internal.platform.generic.GenericPlatform"/> + + </extension> + + + <extension + point="org.eclipse.wst.common.project.facet.core.facets"> + + <project-facet id="jpt.jpa"> + <label>%JPA_FACET_LABEL</label> + <description>%JPA_FACET_DESCRIPTION</description> + </project-facet> + + <project-facet-version facet="jpt.jpa" version="1.0"> + <constraint> + <and> + <requires facet="jst.java" version="[5.0"/> + <or> + <requires facet="jst.utility" version="[1.0"/> + <requires facet="jst.appclient" version="[1.2"/> + <requires facet="jst.ejb" version="[1.1"/> + <requires facet="jst.connector" version="[1.0"/> + <requires facet="jst.web" version="[2.2"/> + </or> + </and> + </constraint> + </project-facet-version> + + <preset id="jpt.jpa.preset"> + <label>%JPA_PRESET_LABEL</label> + <facet id="jst.java" version="5.0"/> + <facet id="jst.utility" version="1.0"/> + <facet id="jpt.jpa" version="1.0"/> + </preset> + + <template id="jpt.jpa.template"> + <label>%JPA_TEMPLATE_LABEL</label> + <fixed facet="jst.java"/> + <fixed facet="jst.utility"/> + <fixed facet="jpt.jpa"/> + <preset id="jpt.jpa.preset"/> + </template> + + <action facet="jpt.jpa" type="INSTALL" id="jpt.jpa.install"> + <config-factory class="org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider"/> + <delegate class="org.eclipse.jpt.core.internal.facet.JpaFacetInstallDelegate"/> + </action> + + <action facet="jpt.jpa" type="UNINSTALL" id="jpt.jpa.uninstall"> + <delegate class="org.eclipse.jpt.core.internal.facet.JpaFacetUninstallDelegate"/> + </action> + + <event-handler facet="jpt.jpa" type="POST_INSTALL"> + <delegate class="org.eclipse.jpt.core.internal.facet.JpaFacetPostInstallDelegate"/> + </event-handler> + + </extension> + + + <extension + point="org.eclipse.wst.common.project.facet.core.runtimes"> + + <supported> + <runtime-component any="true"/> + <facet id="jpt.jpa"/> + </supported> + + </extension> + + + <extension + point="org.eclipse.wst.validation.validator" + id="jpaValidator" + name="%JPA_VALIDATOR"> + + <validator> + <enablement> + <and> + <test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="jpt.jpa"/> + </and> + </enablement> + + <filter + objectClass="org.eclipse.core.resources.IFile" + nameFilter="orm.xml"/> + <filter + objectClass="org.eclipse.core.resources.IFile" + nameFilter="persistence.xml"/> + <filter + objectClass="org.eclipse.core.resources.IFile" + nameFilter="*.java"/> + + <run class="org.eclipse.jpt.core.internal.validation.JpaValidator"/> + <helper class="org.eclipse.jpt.core.internal.validation.JpaHelper"/> + + <markerId markerIdValue="jpaProblemMarker"/> + + + <!-- don't know what this does + <dependentValidator depValValue="true"/> + --> + + </validator> + + </extension> + + +</plugin> diff --git a/jpa/plugins/org.eclipse.jpt.core/property_files/jpa_core.properties b/jpa/plugins/org.eclipse.jpt.core/property_files/jpa_core.properties new file mode 100644 index 0000000000..8a59a2cb7d --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/property_files/jpa_core.properties @@ -0,0 +1,18 @@ +############################################################################### +# Copyright (c) 2007 Oracle. +# 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: +# Oracle. - initial API and implementation +############################################################################### + +VALIDATE_PLATFORM_NOT_SPECIFIED=Platform must be specified +VALIDATE_CONNECTION_NOT_SPECIFIED=Connection must be specified +VALIDATE_CONNECTION_NOT_CONNECTED=Connection must be active to get data source specific help and validation. +SYNCHRONIZE_CLASSES_JOB=Synchronizing classes +SYNCHRONIZING_CLASSES_TASK=Synchronizing classes ... +INVALID_PERSISTENCE_XML_CONTENT=Invalid persistence.xml content +ERROR_WRITING_FILE=Could not write to persistence.xml
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/property_files/jpa_validation.properties b/jpa/plugins/org.eclipse.jpt.core/property_files/jpa_validation.properties new file mode 100644 index 0000000000..bcec2fa7f6 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/property_files/jpa_validation.properties @@ -0,0 +1,55 @@ +############################################################################### +# Copyright (c) 2007 Oracle. +# 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: +# Oracle. - initial API and implementation +############################################################################### + +PROJECT_NO_CONNECTION=No connection specified for project. No data-specific validation will be performed. +PROJECT_INACTIVE_CONNECTION=Connection \"{0}\" is not active. No validation will be done against the data source. +PROJECT_NO_PERSISTENCE_XML=No persistence.xml file in project +PROJECT_MULTIPLE_PERSISTENCE_XML=Multiple persistence.xml files in project +PERSISTENCE_XML_INVALID_CONTENT=Invalid content (no root node) +PERSISTENCE_NO_PERSISTENCE_UNIT=No persistence unit defined +PERSISTENCE_MULTIPLE_PERSISTENCE_UNITS=Multiple persistence units defined +PERSISTENCE_UNIT_UNSPECIFIED_MAPPING_FILE=Unspecified mapping file +PERSISTENCE_UNIT_NONEXISTENT_MAPPING_FILE=Mapping file \"{0}\" cannot be resolved +PERSISTENCE_UNIT_INVALID_MAPPING_FILE=Mapping file \"{0}\" does not have ORM content +PERSISTENCE_UNIT_DUPLICATE_MAPPING_FILE=Duplicate mapping file \"{0}\" +PERSISTENCE_UNIT_UNSPECIFIED_CLASS=Unspecified class +PERSISTENCE_UNIT_NONEXISTENT_CLASS=Class \"{0}\" cannot be resolved +PERSISTENCE_UNIT_INVALID_CLASS=Class \"{0}\" is not annotated as a persistent class +PERSISTENCE_UNIT_DUPLICATE_CLASS=Duplicate class \"{0}\" +ENTITY_MAPPINGS_MULTIPLE_METADATA=Metadata for persistence unit \"{0}\" specified in multiple mapping files +PERSISTENT_TYPE_UNSPECIFIED_CLASS=Unspecified class +PERSISTENT_TYPE_UNRESOLVED_CLASS=Class \"{0}\" cannot be resolved +ENTITY_NO_ID=Entity \"{0}\" has no Id or EmbeddedId +PERSISTENT_ATTRIBUTE_UNSPECIFIED_NAME=Unspecified name +PERSISTENT_ATTRIBUTE_UNRESOLVED_NAME=Attribute \"{0}\" in class \"{1}\" cannot be resolved +PERSISTENT_ATTRIBUTE_INVALID_MAPPING=Attribute \"{0}\" has invalid mapping type in this context +TABLE_UNRESOLVED_SCHEMA=Schema \"{0}\" cannot be resolved for table \"{1}\" +TABLE_UNRESOLVED_NAME=Table \"{0}\" cannot be resolved +JOIN_TABLE_UNRESOLVED_SCHEMA=Schema \"{0}\" cannot be resolved for join table \"{1}\" +VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_SCHEMA=In virtual attribute \"{0}\", schema \"{1}\" cannot be resolved for join table \"{2}\" +JOIN_TABLE_UNRESOLVED_NAME=Join table \"{0}\" cannot be resolved +VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_NAME=In virtual attribute \"{0}\",, join table \"{1}\" cannot be resolved +COLUMN_UNRESOLVED_TABLE=Table \"{0}\" for column \"{1}\" cannot be resolved +VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_TABLE=In virtual attribute \"{0}\", table \"{1}\" for column \"{2}\" cannot be resolved +VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_TABLE=In virtual attribute override \"{0}\", table \"{1}\" for column \"{2}\" cannot be resolved +COLUMN_UNRESOLVED_NAME=Column \"{0}\" cannot be resolved +VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME=In virtual attribute \"{0}\", column \"{1}\" cannot be resolved +VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=In virtual attribute override \"{0}\", column \"{1}\" cannot be resolved +JOIN_COLUMN_UNRESOLVED_TABLE=Table \"{0}\" for join column \"{1}\" cannot be resolved +VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_TABLE=In virtual attribute \"{0}\", table \"{1}\" for join column \"{2}\" cannot be resolved +VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_TABLE=In virtual association override \"{0}\", table \"{1}\" for join column \"{2}\" cannot be resolved +JOIN_COLUMN_UNRESOLVED_NAME=Join column \"{0}\" cannot be resolved +VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_NAME=In virtual attribute \"{0}\", join column \"{1}\" cannot be resolved +VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME=In virtual association override \"{0}\", join column \"{1}\" cannot be resolved +JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME=Referenced column \"{0}\" in join column \"{1}\" cannot be resolved +VIRTUAL_ATTRIBUTE_JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME=In virtual attribute \"{0}\", referenced column \"{1}\" in join column \"{2}\" cannot be resolved +VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME=In virtual association override \"{0}\", referenced column \"{1}\" in join column \"{2}\" cannot be resolved +GENERATED_VALUE_UNRESOLVED_GENERATOR=No generator named \"{0}\" is defined in persistence unit diff --git a/jpa/plugins/org.eclipse.jpt.core/schema/jpaPlatform.exsd b/jpa/plugins/org.eclipse.jpt.core/schema/jpaPlatform.exsd new file mode 100644 index 0000000000..dbdb3ec6f5 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/schema/jpaPlatform.exsd @@ -0,0 +1,122 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!-- Schema file written by PDE --> +<schema targetNamespace="org.eclipse.jpt.core"> +<annotation> + <appInfo> + <meta.schema plugin="org.eclipse.jpt.core" id="jpaPlatform" name="JPA Platform"/> + </appInfo> + <documentation> + [Enter description of this extension point.] + </documentation> + </annotation> + + <element name="extension"> + <complexType> + <sequence> + <element ref="jpaPlatform" minOccurs="1" maxOccurs="unbounded"/> + </sequence> + <attribute name="point" type="string" use="required"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + <attribute name="id" type="string"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + <attribute name="name" type="string"> + <annotation> + <documentation> + + </documentation> + <appInfo> + <meta.attribute translatable="true"/> + </appInfo> + </annotation> + </attribute> + </complexType> + </element> + + <element name="jpaPlatform"> + <complexType> + <attribute name="id" type="string" use="required"> + <annotation> + <documentation> + + </documentation> + </annotation> + </attribute> + <attribute name="label" type="string" use="required"> + <annotation> + <documentation> + An translatable string representation of the platform. + </documentation> + <appInfo> + <meta.attribute translatable="true"/> + </appInfo> + </annotation> + </attribute> + <attribute name="class" type="string" use="required"> + <annotation> + <documentation> + + </documentation> + <appInfo> + <meta.attribute kind="java" basedOn="org.eclipse.jpt.core.internal.IJpaPlatform"/> + </appInfo> + </annotation> + </attribute> + </complexType> + </element> + + <annotation> + <appInfo> + <meta.section type="since"/> + </appInfo> + <documentation> + [Enter the first release in which this extension point appears.] + </documentation> + </annotation> + + <annotation> + <appInfo> + <meta.section type="examples"/> + </appInfo> + <documentation> + [Enter extension point usage example here.] + </documentation> + </annotation> + + <annotation> + <appInfo> + <meta.section type="apiInfo"/> + </appInfo> + <documentation> + [Enter API information here.] + </documentation> + </annotation> + + <annotation> + <appInfo> + <meta.section type="implementation"/> + </appInfo> + <documentation> + [Enter information about supplied implementation of this extension point.] + </documentation> + </annotation> + + <annotation> + <appInfo> + <meta.section type="copyright"/> + </appInfo> + <documentation> + + </documentation> + </annotation> + +</schema> diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AccessType.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AccessType.java new file mode 100644 index 0000000000..fd74cc97d5 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AccessType.java @@ -0,0 +1,237 @@ +/** + * <copyright> + * </copyright> + * + * $Id: AccessType.java,v 1.1 2007/04/25 20:09:35 pfullbright Exp $ + */ +package org.eclipse.jpt.core.internal; + +import static org.eclipse.jpt.core.internal.AccessType.DEFAULT_VALUE; +import static org.eclipse.jpt.core.internal.AccessType.FIELD_VALUE; +import static org.eclipse.jpt.core.internal.AccessType.PROPERTY_VALUE; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import org.eclipse.emf.common.util.Enumerator; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Access Type</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getAccessType() + * @model + * @generated + */ +public enum AccessType implements Enumerator { + /** + * The '<em><b>Default</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #DEFAULT_VALUE + * @generated + * @ordered + */ + DEFAULT(0, "Default", "Default"), + /** + * The '<em><b>PROPERTY</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PROPERTY_VALUE + * @generated + * @ordered + */ + PROPERTY(1, "PROPERTY", "Property"), + /** + * The '<em><b>FIELD</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #FIELD_VALUE + * @generated + * @ordered + */ + FIELD(2, "FIELD", "Field"); + /** + * The '<em><b>Default</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Default</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #DEFAULT + * @model name="Default" + * @generated + * @ordered + */ + public static final int DEFAULT_VALUE = 0; + + /** + * The '<em><b>PROPERTY</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>PROPERTY</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PROPERTY + * @model literal="Property" + * @generated + * @ordered + */ + public static final int PROPERTY_VALUE = 1; + + /** + * The '<em><b>FIELD</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>FIELD</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #FIELD + * @model literal="Field" + * @generated + * @ordered + */ + public static final int FIELD_VALUE = 2; + + /** + * An array of all the '<em><b>Access Type</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final AccessType[] VALUES_ARRAY = new AccessType[] { + DEFAULT, PROPERTY, FIELD, + }; + + /** + * A public read-only list of all the '<em><b>Access Type</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<AccessType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Access Type</b></em>' literal with the specified literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static AccessType get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + AccessType result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Access Type</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static AccessType getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + AccessType result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Access Type</b></em>' literal with the specified integer value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static AccessType get(int value) { + switch (value) { + case DEFAULT_VALUE : + return DEFAULT; + case PROPERTY_VALUE : + return PROPERTY; + case FIELD_VALUE : + return FIELD; + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final int value; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String name; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private AccessType(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getValue() { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + return literal; + } +} //AccessType diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IAttributeMapping.java new file mode 100644 index 0000000000..82dc9123c7 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IAttributeMapping.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IAttribute Mapping</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIAttributeMapping() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IAttributeMapping extends IJpaSourceObject +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" required="true" + * @generated + */ + IPersistentAttribute getPersistentAttribute(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" + * @generated + */ + boolean isDefault(); + + /** + * Return a unique key for the IPersistentAttributeMapping. If this is defined in + * an extension they should be equal. + */ + String getKey(); + + /** + * If the mapping is for a primary key column, return the column's name, + * otherwise return null. + */ + String primaryKeyColumnName(); + + /** + * Return the mapping for the attribute mapping's attribute's type. + */ + ITypeMapping typeMapping(); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaContentNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaContentNode.java new file mode 100644 index 0000000000..e6fdeefa45 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaContentNode.java @@ -0,0 +1,36 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IJpa Content Node</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaContentNode() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJpaContentNode extends IJpaSourceObject +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" required="true" + * @generated + */ + IJpaFile getJpaFile(); + + /** + * Return a unique identifier for all of this class of content nodes + */ + Object getId(); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaCoreConstants.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaCoreConstants.java new file mode 100644 index 0000000000..e1ed7f74d9 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaCoreConstants.java @@ -0,0 +1,28 @@ +/******************************************************************************* + * Copyright (c) 2005, 2007 Oracle. 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: + * Oracle - initial API and implementation + *******************************************************************************/ +package org.eclipse.jpt.core.internal; + +public interface IJpaCoreConstants +{ + /** + * Possible configuration option + */ + public static final String JPA_PLATFORM = JpaCorePlugin.PLUGIN_ID + ".platform"; //$NON-NLS-1$ + + /** + * Possible configuration option + */ + public static final String DATA_SOURCE_CONNECTION_NAME = JpaCorePlugin.PLUGIN_ID + ".dataSource.connectionName"; //$NON-NLS-1$ + + /** + * Name of META-INF directory + */ + public static final String META_INF = "META-INF"; +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaDataSource.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaDataSource.java new file mode 100644 index 0000000000..889ff5109f --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaDataSource.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.jpt.db.internal.Connection; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IJpa Data Source</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaDataSource() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJpaDataSource extends IJpaEObject +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" unique="false" required="true" ordered="false" + * @generated + */ + String getConnectionProfileName(); + + Connection getConnection(); +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaEObject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaEObject.java new file mode 100644 index 0000000000..ac28dc1c7d --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaEObject.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.core.resources.IResource; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IPersistence Element</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaEObject() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJpaEObject extends EObject +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" + * @generated + */ + IJpaProject getJpaProject(); + + /** + * Return the resource that most directly contains this object + */ + IResource getResource(); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaFile.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaFile.java new file mode 100644 index 0000000000..842ec08a00 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaFile.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.core.resources.IFile; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IPersistence File</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaFile() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJpaFile extends IJpaEObject +{ + /** + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Content</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @model kind="operation" + * @generated + */ + IJpaRootContentNode getContent(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" required="true" + * @generated + */ + String getContentId(); + + /** + * Return the IFile associated with this JPA file + */ + IFile getFile(); + + /** + * Return the content node corresponding to the given offset in the source. + * This may (and often will) be <code>null</code>. + */ + IJpaContentNode getContentNode(int offset); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaFileContentProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaFileContentProvider.java new file mode 100644 index 0000000000..846217ebc7 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaFileContentProvider.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.core.resources.IFile; + +/** + * A JpaProject corresponds to an IProject and containts of JpaFiles. + * A JpaFile corresponds to a file resource in the project and contains + * an IJpaRootContentNode. Specify an IJpaFileContentProvider for each + * file contentType to be included in the JpaProject. + * + * See IJpaPlatform + * + */ +public interface IJpaFileContentProvider +{ + /** + * Create the IJpaRootContentNode for the given IFile. + * This will be set on the corresponding JpaFile in the JpaProject. + * The file passed in will have a contentType that matches + * the one returned by the contentType() method. + */ + IJpaRootContentNode buildRootContent(IFile file); + + /** + * Return the contentType of the file to be included in the JpaProject. + * This contentType should correspond to one specified through the + * org.eclipse.core.runtime.contentTypes extension point. + * @return + */ + String contentType(); +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaModel.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaModel.java new file mode 100644 index 0000000000..343ded1f2c --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaModel.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Iterator; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IJpa Model</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaModel() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJpaModel extends EObject +{ + /** + * Returns the IJpaProject corresponding to the given IProject. + * Returns <code>null</code> if unable to associate the given IProject + * with an IJpaProject. + */ + IJpaProject getJpaProject(IProject project) throws CoreException; + + /** + * Returns a (non-modifiable) Iterator on all the IJpaProjects in the model. + */ + Iterator<IJpaProject> jpaProjects(); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaPlatform.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaPlatform.java new file mode 100644 index 0000000000..41f5632d9b --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaPlatform.java @@ -0,0 +1,125 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Collection; +import java.util.List; +import org.eclipse.jpt.core.internal.content.java.IJavaAttributeMapping; +import org.eclipse.jpt.core.internal.content.java.IJavaTypeMapping; +import org.eclipse.jpt.core.internal.platform.IContext; +import org.eclipse.wst.validation.internal.provisional.core.IMessage; + +/** + * This interface is to be implemented by a JPA vendor to provide extensions to + * the core JPA model. The core JPA model will provide functinality for JPA + * spec annotations in java and the orm.xml mapping file. + * The org.eclipse.jpt.core.genericPlatform extension supplies + * IJpaFileContentProvider for those file types. As another vendor option you + * will have to supply those IJpaFileContentProviders as well or different ones + * as necessary. + * + * See the org.eclipse.jpt.core.jpaPlatform extension point + */ +public interface IJpaPlatform +{ + /** + * Get the ID for this platform + */ + String getId(); + + /** + * Set the ID for this platform + * + * ************* + * * IMPORTANT * For INTERNAL use only!! + * ************* + */ + void setId(String theId); + + /** + * Get the IJpaProject for this platform + */ + IJpaProject getProject(); + + /** + * Set the IJpaProject on this platform + */ + void setProject(IJpaProject jpaProject); + + /** + * Return a collection of IJpaFileContentProviders. These will be used to + * determine which files will be read from an IProject based on contentType. + * These contentProviders should have unique contentTypes. + * @return + */ + Collection<IJpaFileContentProvider> jpaFileContentProviders(); + + /** + * Build a project context to be used when resynching the intra-model + * references and creating validation problems. + * The JPA model containment hierarchy is inappropriate to use as a context + * for defaults because it is based on the IJpaProject containing files. + * The defaults context for the jpa model is based on the persistence.xml + * and the mapping files and classes it contains. + * + * @see refreshDefaults(Object) + * @return + */ + IContext buildProjectContext(); + + /** + * Build a type context to be used when resynching the intra-model + * references and creating validation problems. + * The JPA model containment hierarchy is inappropriate to use as a context + * for defaults because it is based on the IJpaProject containing files. + * The defaults context for the jpa model is based on the persistence.xml + * and the mapping files and classes it contains. + * + * @see refreshDefaults(Object) + * @return + */ + IContext buildJavaTypeContext(IContext parentContext, IJavaTypeMapping typeMapping); + + /** + * Build an attribute context to be used when resynching the intra-model + * references and creating validation problems. + * The JPA model containment hierarchy is inappropriate to use as a context + * for defaults because it is based on the IJpaProject containing files. + * The defaults context for the jpa model is based on the persistence.xml + * and the mapping files and classes it contains. + * + * @see refreshDefaults(Object) + * @return + */ + IContext buildJavaAttributeContext(IContext parentContext, IJavaAttributeMapping attributeMapping); + + /** + * Resynchronize intra-model connections given the context hierarchy the + * IJpaPlatform built in buildContextHierarchy(). + * This will be called each time an update to the jpa model occurs. If an + * update occurs while the resynch() job is in process, another resynch() + * will be started upon completion. + * @param contextHierarchy + */ + void resynch(IContext contextHierarchy); + + /** + * Adds validation messages to the growing list of messages + */ + void addToMessages(List<IMessage> messages); + /** + * Returns the IGeneratorRepository for the persistence unit of the + * given IPersistentType. A NullGeneratorRepository should be returned + * if the IPersistentType is not part of a persistence unit + * @param persistentType + * @return + */ + // IGeneratorRepository generatorRepository(IPersistentType persistentType); +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaProject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaProject.java new file mode 100644 index 0000000000..cb8490c3c5 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaProject.java @@ -0,0 +1,113 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Collection; +import java.util.Iterator; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; +import org.eclipse.jpt.core.internal.content.java.JavaPersistentType; +import org.eclipse.jpt.db.internal.ConnectionProfile; +import org.eclipse.wst.validation.internal.provisional.core.IMessage; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IJpa Project</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaProject() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJpaProject extends IJpaEObject +{ + /** + * Return the IProject associated with this JPA project + */ + IProject getProject(); + + /** + * Return the IJavaProject associated with the JPA project + */ + IJavaProject getJavaProject(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" required="true" + * @generated + */ + IJpaModel getModel(); + + IJpaPlatform getPlatform(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model platformIdRequired="true" platformIdOrdered="false" + * @generated + */ + void setPlatform(String platformId); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" required="true" + * @generated + */ + IJpaDataSource getDataSource(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model connectionProfileNameUnique="false" connectionProfileNameRequired="true" connectionProfileNameOrdered="false" + * @generated + */ + void setDataSource(String connectionProfileName); + + /** + * Returns the IJpaFile corresponding to the given IFile. + * Returns <code>null</code> if unable to associate the given IFile + * with an IJpaFile. + */ + IJpaFile getJpaFile(IFile file) throws CoreException; + + /** + * Return a Collection of IJpaFiles for the given contentType. + * The contentType should match that given in the IJpaFileContentProvider + */ + Collection<IJpaFile> jpaFiles(String contentType); + + /** + * Returns a (non-modifiable) Iterator on all the IJpaFiles in the project. + */ + Iterator<IJpaFile> jpaFiles(); + + /** + * Return a JavaPersistentType for the IType, if it exists, null otherwise. + */ + JavaPersistentType findJavaPersistentType(IType type); + + /** + * Reconnect the model together, recalculating default values as needed + */ + void resynch(); + + /** + * Returns all the validation messages for this project + */ + Iterator<IMessage> validationMessages(); + + ConnectionProfile connectionProfile(); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaRootContentNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaRootContentNode.java new file mode 100644 index 0000000000..763e65e7ca --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaRootContentNode.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: Oracle. - initial API and implementation + *******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.jdt.core.ElementChangedEvent; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IJpa Root Content Node</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.IJpaRootContentNode#getJpaFile <em>Jpa File</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaRootContentNode() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJpaRootContentNode extends IJpaContentNode +{ + /** + * Returns the value of the '<em><b>Jpa File</b></em>' container reference. + * The default value is <code>""</code>. + * It is bidirectional and its opposite is '{@link org.eclipse.jpt.core.internal.JpaFile#getContent <em>Content</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Jpa File</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>Jpa File</em>' container reference. + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaRootContentNode_JpaFile() + * @see org.eclipse.jpt.core.internal.JpaFile#getContent + * @model opposite="content" changeable="false" + * @generated + */ + IJpaFile getJpaFile(); + + /** + * Return the content node corresponding to the given offset in the source. + * This may (and often will) be <code>null</code>. + */ + IJpaContentNode getContentNode(int offset); + + /** + * Handle java change as befits this file content + */ + void handleJavaElementChangedEvent(ElementChangedEvent event); + + /** + * Dispose before removed from model + */ + void dispose(); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaSourceObject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaSourceObject.java new file mode 100644 index 0000000000..4cb58e7ee8 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IJpaSourceObject.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2007 Oracle. 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: + * Oracle - initial API and implementation + *******************************************************************************/ +package org.eclipse.jpt.core.internal; + +/** + * A JPA object that can be mapped to a source location, contained within a + * JPA file. + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaSourceObject() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJpaSourceObject extends IJpaEObject +{ + /** + * Return the JPA file containing this object. + */ + IJpaFile getJpaFile(); + + /** + * Return the source location for this object. + */ + ITextRange getTextRange(); +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IMappingKeys.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IMappingKeys.java new file mode 100644 index 0000000000..f219fb0a6e --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IMappingKeys.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +public interface IMappingKeys +{ + String ENTITY_TYPE_MAPPING_KEY = "entity"; + String MAPPED_SUPERCLASS_TYPE_MAPPING_KEY = "mappedSuperclass"; + String EMBEDDABLE_TYPE_MAPPING_KEY = "embeddable"; + String NULL_TYPE_MAPPING_KEY = null; + + String BASIC_ATTRIBUTE_MAPPING_KEY = "basic"; + String ID_ATTRIBUTE_MAPPING_KEY = "id"; + String MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY = "manyToMany"; + String MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY = "manyToOne"; + String ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY = "oneToOne"; + String ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY = "oneToMany"; + String EMBEDDED_ATTRIBUTE_MAPPING_KEY = "embedded"; + String EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY = "embeddedId"; + String TRANSIENT_ATTRIBUTE_MAPPING_KEY = "transient"; + String VERSION_ATTRIBUTE_MAPPING_KEY = "version"; + +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IPersistentAttribute.java new file mode 100644 index 0000000000..39bfb346f1 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IPersistentAttribute.java @@ -0,0 +1,92 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Iterator; +import org.eclipse.jpt.core.internal.jdtutility.Attribute; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IPersistent Attribute</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.IPersistentAttribute#getMappingKey <em>Mapping Key</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIPersistentAttribute() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IPersistentAttribute extends IJpaContentNode +{ + /** + * Returns the value of the '<em><b>Mapping Key</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping Key</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping Key</em>' attribute. + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIPersistentAttribute_MappingKey() + * @model required="true" changeable="false" + * @generated + */ + String getMappingKey(); + + void setMappingKey(String value, boolean default_); + + /** + * Returns an iterator on all mapping keys that are available for this attribute. + */ + Iterator candidateMappingKeys(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" required="true" + * @generated + */ + IAttributeMapping getMapping(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model required="true" + * @generated + */ + ITypeMapping typeMapping(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" + * @generated + */ + String getName(); + + /** + * Return the java Attribute that this IPersistentAttribute is associated with + * @return + */ + Attribute getAttribute(); + + String defaultKey(); + + /** + * If the attribute is mapped to a primary key column, return the + * column's name, otherwise return null. + */ + String primaryKeyColumnName(); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IPersistentType.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IPersistentType.java new file mode 100644 index 0000000000..324f0c79b6 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IPersistentType.java @@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Iterator; +import org.eclipse.jdt.core.IType; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IPersistent Type</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.IPersistentType#getMappingKey <em>Mapping Key</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIPersistentType() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IPersistentType extends IJpaContentNode +{ + /** + * Returns the value of the '<em><b>Mapping Key</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping Key</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping Key</em>' attribute. + * @see #setMappingKey(String) + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIPersistentType_MappingKey() + * @model required="true" + * @generated + */ + String getMappingKey(); + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.IPersistentType#getMappingKey <em>Mapping Key</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mapping Key</em>' attribute. + * @see #getMappingKey() + * @generated + */ + void setMappingKey(String value); + + /** + * Returns an iterator on all mapping keys that are available for this type. + */ + Iterator<String> candidateMappingKeys(); + + /** + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @model kind="operation" required="true" + * @generated + */ + ITypeMapping getMapping(); + + /** + * Return the parent IPersistentType from the inheritance hierarchy. + * If the java inheritance parent is not a IPersistentType then continue + * up the hierarchy. Return null if this persistentType is the root + * persistent type. + * @model + * @generated + */ + IPersistentType parentPersistentType(); + + /** + * Return a read-only iterator of the contained IPersistentAttributes + * @return + */ + Iterator<IPersistentAttribute> attributes(); + + /** + * Return a read-only iterator of the all the IPersistentAttributes + * in the hierarchy + * @return + */ + Iterator<IPersistentAttribute> allAttributes(); + + Iterator<IPersistentType> inheritanceHierarchy(); + + /** + * Return the corresponding JDT IType, if it resolves to a single IType + */ + IType findJdtType(); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/ITextRange.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/ITextRange.java new file mode 100644 index 0000000000..9636f5078f --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/ITextRange.java @@ -0,0 +1,41 @@ +/******************************************************************************* + * Copyright (c) 2005, 2006 Oracle. 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: Oracle. - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +/** + * A text range defines the offset into and length of a piece of text + * <p> + * This interface is not intended to be implemented by clients. + * </p> + */ +public interface ITextRange +{ + + /** + * Returns the length of the text. + * + * @return the length of the text + */ + int getLength(); + + /** + * Returns the offset of the text. + * + * @return the offset of the text + */ + int getOffset(); + + /** + * Retruns the line number in the text + * + * @return line number + */ + int getLineNumber(); + +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/ITypeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/ITypeMapping.java new file mode 100644 index 0000000000..8329aac842 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/ITypeMapping.java @@ -0,0 +1,128 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Iterator; +import org.eclipse.jpt.core.internal.mappings.ITable; +import org.eclipse.jpt.db.internal.Table; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>I Type Mapping</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.ITypeMapping#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.jpt.core.internal.ITypeMapping#getTableName <em>Table Name</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getITypeMapping() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface ITypeMapping extends IJpaSourceObject +{ + /** + * Return a unique key for the ITypeMapping. If this is defined in + * an extension they should be equal. + * @return + */ + String getKey(); + + IPersistentType getPersistentType(); + + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getITypeMapping_Name() + * @model changeable="false" volatile="true" derived="true" + * @generated + */ + String getName(); + + /** + * Returns the value of the '<em><b>Table Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Table Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Table Name</em>' attribute. + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getITypeMapping_TableName() + * @model changeable="false" volatile="true" derived="true" + * @generated + */ + String getTableName(); + + /** + * Return the type mapping's "associated" tables, which includes the + * primary table and the collection of secondary tables. + */ + Iterator<ITable> associatedTables(); + + /** + * Return the type mapping's "associated" tables, which includes the + * primary table and the collection of secondary tables, as well as all + * inherited "associated" tables. + */ + Iterator<ITable> associatedTablesIncludingInherited(); + + /** + * Return the names of the type mapping's "associated" tables, + * which includes the primary table and the collection of secondary + * tables, as well as the names of all the inherited "associated" tables. + */ + Iterator<String> associatedTableNamesIncludingInherited(); + + /** + * return the resolved primary db table + */ + Table primaryDbTable(); + + /** + * return the resolved associated db table with the passed in name + */ + Table dbTable(String tableName); + + /** + * Return whether the specified table is invalid for any annotations + * associated with the type mapping. + */ + boolean tableNameIsInvalid(String tableName); + + /** + * Return an Iterator of attribute names. The attributes must be BasicMappings or IdMappings + * found in any MappedSuperclass in the inheritance hierarchy + */ + Iterator<String> overridableAttributeNames(); + + /** + * Return an Iterator of attribute names. The attributes must be OneToOneMappings or ManyToOneMappings + * found in any MappedSuperclass in the inheritance hierarchy + */ + Iterator<String> overridableAssociationNames(); + + /** + * Return whether the given attribute mapping key is valid for this particular + * type mapping + * (for example, id's are not valid for an embeddable type mapping) + */ + boolean attributeMappingKeyAllowed(String attributeMappingKey); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IXmlEObject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IXmlEObject.java new file mode 100644 index 0000000000..9e10d438d8 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/IXmlEObject.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2007 Oracle. 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: Oracle. - initial API and implementation + *******************************************************************************/ +package org.eclipse.jpt.core.internal; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IXml EObject</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIXmlEObject() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IXmlEObject extends IJpaEObject, IJpaSourceObject +{ + boolean isAllFeaturesUnset(); +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCoreFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCoreFactory.java new file mode 100644 index 0000000000..38235cd132 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCoreFactory.java @@ -0,0 +1,209 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +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; + +/** + * <!-- 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.jpt.core.internal.JpaCorePackage + * @generated + */ +public class JpaCoreFactory extends EFactoryImpl +{ + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final JpaCoreFactory eINSTANCE = init(); + + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static JpaCoreFactory init() { + try { + JpaCoreFactory theJpaCoreFactory = (JpaCoreFactory) EPackage.Registry.INSTANCE.getEFactory("jpt.core.xmi"); + if (theJpaCoreFactory != null) { + return theJpaCoreFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new JpaCoreFactory(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JpaCoreFactory() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case JpaCorePackage.JPA_MODEL : + return createJpaModel(); + case JpaCorePackage.JPA_PROJECT : + return createJpaProject(); + case JpaCorePackage.JPA_DATA_SOURCE : + return createJpaDataSource(); + case JpaCorePackage.JPA_FILE : + return createJpaFile(); + case JpaCorePackage.NULL_TYPE_MAPPING : + return createNullTypeMapping(); + default : + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) { + switch (eDataType.getClassifierID()) { + case JpaCorePackage.ACCESS_TYPE : + return createAccessTypeFromString(eDataType, initialValue); + default : + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) { + switch (eDataType.getClassifierID()) { + case JpaCorePackage.ACCESS_TYPE : + return convertAccessTypeToString(eDataType, instanceValue); + default : + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JpaModel createJpaModel() { + JpaModel jpaModel = new JpaModel(); + return jpaModel; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JpaProject createJpaProject() { + JpaProject jpaProject = new JpaProject(); + return jpaProject; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JpaDataSource createJpaDataSource() { + JpaDataSource jpaDataSource = new JpaDataSource(); + return jpaDataSource; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JpaFile createJpaFile() { + JpaFile jpaFile = new JpaFile(); + return jpaFile; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NullTypeMapping createNullTypeMapping() { + NullTypeMapping nullTypeMapping = new NullTypeMapping(); + return nullTypeMapping; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AccessType createAccessTypeFromString(EDataType eDataType, String initialValue) { + AccessType result = AccessType.get(initialValue); + if (result == null) + throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertAccessTypeToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JpaCorePackage getJpaCorePackage() { + return (JpaCorePackage) getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static JpaCorePackage getPackage() { + return JpaCorePackage.eINSTANCE; + } +} //JpaCoreFactory diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCoreMessages.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCoreMessages.java new file mode 100644 index 0000000000..c003a6c600 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCoreMessages.java @@ -0,0 +1,41 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.osgi.util.NLS; + +public class JpaCoreMessages extends NLS +{ + private static final String BUNDLE_NAME = "jpa_core"; //$NON-NLS-1$ + + static { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, JpaCoreMessages.class); + } + + public static String VALIDATE_PLATFORM_NOT_SPECIFIED; + + public static String VALIDATE_CONNECTION_NOT_SPECIFIED; + + public static String VALIDATE_CONNECTION_NOT_CONNECTED; + + public static String SYNCHRONIZE_CLASSES_JOB; + + public static String SYNCHRONIZING_CLASSES_TASK; + + public static String INVALID_PERSISTENCE_XML_CONTENT; + + public static String ERROR_WRITING_FILE; + + + private JpaCoreMessages() { + throw new UnsupportedOperationException(); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCorePackage.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCorePackage.java new file mode 100644 index 0000000000..32aa468216 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCorePackage.java @@ -0,0 +1,1783 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.eclipse.jem.java.JavaRefPackage; +import org.eclipse.jpt.core.internal.content.java.JpaJavaPackage; +import org.eclipse.jpt.core.internal.content.java.mappings.JpaJavaMappingsPackage; +import org.eclipse.jpt.core.internal.content.orm.OrmPackage; +import org.eclipse.jpt.core.internal.content.persistence.PersistencePackage; +import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage; + +/** + * <!-- 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 enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaCoreFactory + * @model kind="package" + * @generated + */ +public class JpaCorePackage extends EPackageImpl +{ + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final String eNAME = "internal"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final String eNS_URI = "jpt.core.xmi"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final String eNS_PREFIX = "jpt.core"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final JpaCorePackage eINSTANCE = org.eclipse.jpt.core.internal.JpaCorePackage.init(); + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IJpaModel <em>IJpa Model</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaModel + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaModel() + * @generated + */ + public static final int IJPA_MODEL = 0; + + /** + * The number of structural features of the '<em>IJpa Model</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_MODEL_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IJpaEObject <em>IJpa EObject</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaEObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaEObject() + * @generated + */ + public static final int IJPA_EOBJECT = 2; + + /** + * The number of structural features of the '<em>IJpa EObject</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_EOBJECT_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.JpaEObject <em>Jpa EObject</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaEObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaEObject() + * @generated + */ + public static final int JPA_EOBJECT = 3; + + /** + * The number of structural features of the '<em>Jpa EObject</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_EOBJECT_FEATURE_COUNT = IJPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.JpaModel <em>Jpa Model</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaModel + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaModel() + * @generated + */ + public static final int JPA_MODEL = 1; + + /** + * The feature id for the '<em><b>Projects</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_MODEL__PROJECTS = JPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Jpa Model</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_MODEL_FEATURE_COUNT = JPA_EOBJECT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.XmlEObject <em>Xml EObject</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.XmlEObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getXmlEObject() + * @generated + */ + public static final int XML_EOBJECT = 13; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IJpaProject <em>IJpa Project</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaProject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaProject() + * @generated + */ + public static final int IJPA_PROJECT = 4; + + /** + * The number of structural features of the '<em>IJpa Project</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_PROJECT_FEATURE_COUNT = IJPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.JpaProject <em>Jpa Project</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaProject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaProject() + * @generated + */ + public static final int JPA_PROJECT = 5; + + /** + * The feature id for the '<em><b>Platform</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_PROJECT__PLATFORM = JPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Data Source</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_PROJECT__DATA_SOURCE = JPA_EOBJECT_FEATURE_COUNT + 1; + + /** + * The feature id for the '<em><b>Files</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_PROJECT__FILES = JPA_EOBJECT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the '<em>Jpa Project</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_PROJECT_FEATURE_COUNT = JPA_EOBJECT_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IJpaPlatform <em>IJpa Platform</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaPlatform + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaPlatform() + * @generated + */ + public static final int IJPA_PLATFORM = 6; + + /** + * The number of structural features of the '<em>IJpa Platform</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_PLATFORM_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IJpaDataSource <em>IJpa Data Source</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaDataSource + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaDataSource() + * @generated + */ + public static final int IJPA_DATA_SOURCE = 7; + + /** + * The number of structural features of the '<em>IJpa Data Source</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_DATA_SOURCE_FEATURE_COUNT = IJPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.JpaDataSource <em>Jpa Data Source</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaDataSource + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaDataSource() + * @generated + */ + public static final int JPA_DATA_SOURCE = 8; + + /** + * The feature id for the '<em><b>Connection Profile Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_DATA_SOURCE__CONNECTION_PROFILE_NAME = JPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Jpa Data Source</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_DATA_SOURCE_FEATURE_COUNT = JPA_EOBJECT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IJpaFile <em>IJpa File</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaFile + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaFile() + * @generated + */ + public static final int IJPA_FILE = 9; + + /** + * The number of structural features of the '<em>IJpa File</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_FILE_FEATURE_COUNT = IJPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.JpaFile <em>Jpa File</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaFile + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaFile() + * @generated + */ + public static final int JPA_FILE = 10; + + /** + * The feature id for the '<em><b>Content Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_FILE__CONTENT_ID = JPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Content</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_FILE__CONTENT = JPA_EOBJECT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Jpa File</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int JPA_FILE_FEATURE_COUNT = JPA_EOBJECT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IJpaSourceObject <em>IJpa Source Object</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaSourceObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaSourceObject() + * @generated + */ + public static final int IJPA_SOURCE_OBJECT = 11; + + /** + * The number of structural features of the '<em>IJpa Source Object</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_SOURCE_OBJECT_FEATURE_COUNT = IJPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IXmlEObject <em>IXml EObject</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IXmlEObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIXmlEObject() + * @generated + */ + public static final int IXML_EOBJECT = 12; + + /** + * The number of structural features of the '<em>IXml EObject</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IXML_EOBJECT_FEATURE_COUNT = IJPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Xml EObject</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_EOBJECT_FEATURE_COUNT = JPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IJpaContentNode <em>IJpa Content Node</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaContentNode + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaContentNode() + * @generated + */ + public static final int IJPA_CONTENT_NODE = 14; + + /** + * The number of structural features of the '<em>IJpa Content Node</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_CONTENT_NODE_FEATURE_COUNT = IJPA_SOURCE_OBJECT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IJpaRootContentNode <em>IJpa Root Content Node</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaRootContentNode + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaRootContentNode() + * @generated + */ + public static final int IJPA_ROOT_CONTENT_NODE = 15; + + /** + * The feature id for the '<em><b>Jpa File</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_ROOT_CONTENT_NODE__JPA_FILE = IJPA_CONTENT_NODE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>IJpa Root Content Node</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IJPA_ROOT_CONTENT_NODE_FEATURE_COUNT = IJPA_CONTENT_NODE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IPersistentType <em>IPersistent Type</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IPersistentType + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIPersistentType() + * @generated + */ + public static final int IPERSISTENT_TYPE = 16; + + /** + * The feature id for the '<em><b>Mapping Key</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IPERSISTENT_TYPE__MAPPING_KEY = IJPA_CONTENT_NODE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>IPersistent Type</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IPERSISTENT_TYPE_FEATURE_COUNT = IJPA_CONTENT_NODE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.ITypeMapping <em>IType Mapping</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.ITypeMapping + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getITypeMapping() + * @generated + */ + public static final int ITYPE_MAPPING = 17; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int ITYPE_MAPPING__NAME = IJPA_SOURCE_OBJECT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Table Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int ITYPE_MAPPING__TABLE_NAME = IJPA_SOURCE_OBJECT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>IType Mapping</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int ITYPE_MAPPING_FEATURE_COUNT = IJPA_SOURCE_OBJECT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.NullTypeMapping <em>Null Type Mapping</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.NullTypeMapping + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getNullTypeMapping() + * @generated + */ + public static final int NULL_TYPE_MAPPING = 18; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int NULL_TYPE_MAPPING__NAME = JPA_EOBJECT_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Table Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int NULL_TYPE_MAPPING__TABLE_NAME = JPA_EOBJECT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Null Type Mapping</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int NULL_TYPE_MAPPING_FEATURE_COUNT = JPA_EOBJECT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IPersistentAttribute <em>IPersistent Attribute</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IPersistentAttribute + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIPersistentAttribute() + * @generated + */ + public static final int IPERSISTENT_ATTRIBUTE = 19; + + /** + * The feature id for the '<em><b>Mapping Key</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IPERSISTENT_ATTRIBUTE__MAPPING_KEY = IJPA_CONTENT_NODE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>IPersistent Attribute</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IPERSISTENT_ATTRIBUTE_FEATURE_COUNT = IJPA_CONTENT_NODE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.IAttributeMapping <em>IAttribute Mapping</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IAttributeMapping + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIAttributeMapping() + * @generated + */ + public static final int IATTRIBUTE_MAPPING = 20; + + /** + * The number of structural features of the '<em>IAttribute Mapping</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int IATTRIBUTE_MAPPING_FEATURE_COUNT = IJPA_SOURCE_OBJECT_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.AccessType <em>Access Type</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.AccessType + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getAccessType() + * @generated + */ + public static final int ACCESS_TYPE = 21; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iJpaModelEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass jpaModelEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iJpaEObjectEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass jpaEObjectEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass xmlEObjectEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iJpaProjectEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass jpaProjectEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iJpaPlatformEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iJpaDataSourceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass jpaDataSourceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iJpaFileEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass jpaFileEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iJpaSourceObjectEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iXmlEObjectEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iJpaContentNodeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iJpaRootContentNodeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iPersistentTypeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iTypeMappingEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass nullTypeMappingEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iPersistentAttributeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass iAttributeMappingEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum accessTypeEEnum = 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.jpt.core.internal.JpaCorePackage#eNS_URI + * @see #init() + * @generated + */ + private JpaCorePackage() { + super(eNS_URI, JpaCoreFactory.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. Simple + * dependencies are satisfied by calling this method on all + * dependent packages before doing anything else. This method drives + * initialization for interdependent packages directly, in parallel + * with this package, itself. + * <p>Of this package and its interdependencies, all packages which + * have not yet been registered by their URI values are first created + * and registered. The packages are then initialized in two steps: + * meta-model objects for all of the packages are created before any + * are initialized, since one package's meta-model objects may refer to + * those of another. + * <p>Invocation of this method will not affect any packages that have + * already been initialized. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static JpaCorePackage init() { + if (isInited) + return (JpaCorePackage) EPackage.Registry.INSTANCE.getEPackage(JpaCorePackage.eNS_URI); + // Obtain or create and register package + JpaCorePackage theJpaCorePackage = (JpaCorePackage) (EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof JpaCorePackage ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new JpaCorePackage()); + isInited = true; + // Initialize simple dependencies + EcorePackage.eINSTANCE.eClass(); + JavaRefPackage.eINSTANCE.eClass(); + // Obtain or create and register interdependencies + JpaCoreMappingsPackage theJpaCoreMappingsPackage = (JpaCoreMappingsPackage) (EPackage.Registry.INSTANCE.getEPackage(JpaCoreMappingsPackage.eNS_URI) instanceof JpaCoreMappingsPackage ? EPackage.Registry.INSTANCE.getEPackage(JpaCoreMappingsPackage.eNS_URI) : JpaCoreMappingsPackage.eINSTANCE); + JpaJavaPackage theJpaJavaPackage = (JpaJavaPackage) (EPackage.Registry.INSTANCE.getEPackage(JpaJavaPackage.eNS_URI) instanceof JpaJavaPackage ? EPackage.Registry.INSTANCE.getEPackage(JpaJavaPackage.eNS_URI) : JpaJavaPackage.eINSTANCE); + JpaJavaMappingsPackage theJpaJavaMappingsPackage = (JpaJavaMappingsPackage) (EPackage.Registry.INSTANCE.getEPackage(JpaJavaMappingsPackage.eNS_URI) instanceof JpaJavaMappingsPackage ? EPackage.Registry.INSTANCE.getEPackage(JpaJavaMappingsPackage.eNS_URI) : JpaJavaMappingsPackage.eINSTANCE); + OrmPackage theOrmPackage = (OrmPackage) (EPackage.Registry.INSTANCE.getEPackage(OrmPackage.eNS_URI) instanceof OrmPackage ? EPackage.Registry.INSTANCE.getEPackage(OrmPackage.eNS_URI) : OrmPackage.eINSTANCE); + PersistencePackage thePersistencePackage = (PersistencePackage) (EPackage.Registry.INSTANCE.getEPackage(PersistencePackage.eNS_URI) instanceof PersistencePackage ? EPackage.Registry.INSTANCE.getEPackage(PersistencePackage.eNS_URI) : PersistencePackage.eINSTANCE); + // Create package meta-data objects + theJpaCorePackage.createPackageContents(); + theJpaCoreMappingsPackage.createPackageContents(); + theJpaJavaPackage.createPackageContents(); + theJpaJavaMappingsPackage.createPackageContents(); + theOrmPackage.createPackageContents(); + thePersistencePackage.createPackageContents(); + // Initialize created meta-data + theJpaCorePackage.initializePackageContents(); + theJpaCoreMappingsPackage.initializePackageContents(); + theJpaJavaPackage.initializePackageContents(); + theJpaJavaMappingsPackage.initializePackageContents(); + theOrmPackage.initializePackageContents(); + thePersistencePackage.initializePackageContents(); + // Mark meta-data to indicate it can't be changed + theJpaCorePackage.freeze(); + return theJpaCorePackage; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IJpaModel <em>IJpa Model</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IJpa Model</em>'. + * @see org.eclipse.jpt.core.internal.IJpaModel + * @generated + */ + public EClass getIJpaModel() { + return iJpaModelEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.JpaModel <em>Jpa Model</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Jpa Model</em>'. + * @see org.eclipse.jpt.core.internal.JpaModel + * @generated + */ + public EClass getJpaModel() { + return jpaModelEClass; + } + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.core.internal.JpaModel#getProjects <em>Projects</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Projects</em>'. + * @see org.eclipse.jpt.core.internal.JpaModel#getProjects() + * @see #getJpaModel() + * @generated + */ + public EReference getJpaModel_Projects() { + return (EReference) jpaModelEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IJpaEObject <em>IJpa EObject</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IJpa EObject</em>'. + * @see org.eclipse.jpt.core.internal.IJpaEObject + * @generated + */ + public EClass getIJpaEObject() { + return iJpaEObjectEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.JpaEObject <em>Jpa EObject</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Jpa EObject</em>'. + * @see org.eclipse.jpt.core.internal.JpaEObject + * @generated + */ + public EClass getJpaEObject() { + return jpaEObjectEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.XmlEObject <em>Xml EObject</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Xml EObject</em>'. + * @see org.eclipse.jpt.core.internal.XmlEObject + * @generated + */ + public EClass getXmlEObject() { + return xmlEObjectEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IJpaProject <em>IJpa Project</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IJpa Project</em>'. + * @see org.eclipse.jpt.core.internal.IJpaProject + * @generated + */ + public EClass getIJpaProject() { + return iJpaProjectEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.JpaProject <em>Jpa Project</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Jpa Project</em>'. + * @see org.eclipse.jpt.core.internal.JpaProject + * @generated + */ + public EClass getJpaProject() { + return jpaProjectEClass; + } + + /** + * Returns the meta object for the reference '{@link org.eclipse.jpt.core.internal.JpaProject#getPlatform <em>Platform</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Platform</em>'. + * @see org.eclipse.jpt.core.internal.JpaProject#getPlatform() + * @see #getJpaProject() + * @generated + */ + public EReference getJpaProject_Platform() { + return (EReference) jpaProjectEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.jpt.core.internal.JpaProject#getDataSource <em>Data Source</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Data Source</em>'. + * @see org.eclipse.jpt.core.internal.JpaProject#getDataSource() + * @see #getJpaProject() + * @generated + */ + public EReference getJpaProject_DataSource() { + return (EReference) jpaProjectEClass.getEStructuralFeatures().get(1); + } + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.core.internal.JpaProject#getFiles <em>Files</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Files</em>'. + * @see org.eclipse.jpt.core.internal.JpaProject#getFiles() + * @see #getJpaProject() + * @generated + */ + public EReference getJpaProject_Files() { + return (EReference) jpaProjectEClass.getEStructuralFeatures().get(2); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IJpaPlatform <em>IJpa Platform</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IJpa Platform</em>'. + * @see org.eclipse.jpt.core.internal.IJpaPlatform + * @generated + */ + public EClass getIJpaPlatform() { + return iJpaPlatformEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IJpaDataSource <em>IJpa Data Source</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IJpa Data Source</em>'. + * @see org.eclipse.jpt.core.internal.IJpaDataSource + * @generated + */ + public EClass getIJpaDataSource() { + return iJpaDataSourceEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.JpaDataSource <em>Jpa Data Source</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Jpa Data Source</em>'. + * @see org.eclipse.jpt.core.internal.JpaDataSource + * @generated + */ + public EClass getJpaDataSource() { + return jpaDataSourceEClass; + } + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jpt.core.internal.JpaDataSource#getConnectionProfileName <em>Connection Profile Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Connection Profile Name</em>'. + * @see org.eclipse.jpt.core.internal.JpaDataSource#getConnectionProfileName() + * @see #getJpaDataSource() + * @generated + */ + public EAttribute getJpaDataSource_ConnectionProfileName() { + return (EAttribute) jpaDataSourceEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IJpaFile <em>IJpa File</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IJpa File</em>'. + * @see org.eclipse.jpt.core.internal.IJpaFile + * @generated + */ + public EClass getIJpaFile() { + return iJpaFileEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.JpaFile <em>Jpa File</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Jpa File</em>'. + * @see org.eclipse.jpt.core.internal.JpaFile + * @generated + */ + public EClass getJpaFile() { + return jpaFileEClass; + } + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jpt.core.internal.JpaFile#getContentId <em>Content Id</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Content Id</em>'. + * @see org.eclipse.jpt.core.internal.JpaFile#getContentId() + * @see #getJpaFile() + * @generated + */ + public EAttribute getJpaFile_ContentId() { + return (EAttribute) jpaFileEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.jpt.core.internal.JpaFile#getContent <em>Content</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Content</em>'. + * @see org.eclipse.jpt.core.internal.JpaFile#getContent() + * @see #getJpaFile() + * @generated + */ + public EReference getJpaFile_Content() { + return (EReference) jpaFileEClass.getEStructuralFeatures().get(1); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IJpaSourceObject <em>IJpa Source Object</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IJpa Source Object</em>'. + * @see org.eclipse.jpt.core.internal.IJpaSourceObject + * @generated + */ + public EClass getIJpaSourceObject() { + return iJpaSourceObjectEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IXmlEObject <em>IXml EObject</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IXml EObject</em>'. + * @see org.eclipse.jpt.core.internal.IXmlEObject + * @generated + */ + public EClass getIXmlEObject() { + return iXmlEObjectEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IJpaContentNode <em>IJpa Content Node</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IJpa Content Node</em>'. + * @see org.eclipse.jpt.core.internal.IJpaContentNode + * @generated + */ + public EClass getIJpaContentNode() { + return iJpaContentNodeEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IJpaRootContentNode <em>IJpa Root Content Node</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IJpa Root Content Node</em>'. + * @see org.eclipse.jpt.core.internal.IJpaRootContentNode + * @generated + */ + public EClass getIJpaRootContentNode() { + return iJpaRootContentNodeEClass; + } + + /** + * Returns the meta object for the container reference '{@link org.eclipse.jpt.core.internal.IJpaRootContentNode#getJpaFile <em>Jpa File</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Jpa File</em>'. + * @see org.eclipse.jpt.core.internal.IJpaRootContentNode#getJpaFile() + * @see #getIJpaRootContentNode() + * @generated + */ + public EReference getIJpaRootContentNode_JpaFile() { + return (EReference) iJpaRootContentNodeEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IPersistentType <em>IPersistent Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IPersistent Type</em>'. + * @see org.eclipse.jpt.core.internal.IPersistentType + * @generated + */ + public EClass getIPersistentType() { + return iPersistentTypeEClass; + } + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jpt.core.internal.IPersistentType#getMappingKey <em>Mapping Key</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Mapping Key</em>'. + * @see org.eclipse.jpt.core.internal.IPersistentType#getMappingKey() + * @see #getIPersistentType() + * @generated + */ + public EAttribute getIPersistentType_MappingKey() { + return (EAttribute) iPersistentTypeEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.ITypeMapping <em>IType Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IType Mapping</em>'. + * @see org.eclipse.jpt.core.internal.ITypeMapping + * @generated + */ + public EClass getITypeMapping() { + return iTypeMappingEClass; + } + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jpt.core.internal.ITypeMapping#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.jpt.core.internal.ITypeMapping#getName() + * @see #getITypeMapping() + * @generated + */ + public EAttribute getITypeMapping_Name() { + return (EAttribute) iTypeMappingEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jpt.core.internal.ITypeMapping#getTableName <em>Table Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Table Name</em>'. + * @see org.eclipse.jpt.core.internal.ITypeMapping#getTableName() + * @see #getITypeMapping() + * @generated + */ + public EAttribute getITypeMapping_TableName() { + return (EAttribute) iTypeMappingEClass.getEStructuralFeatures().get(1); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.NullTypeMapping <em>Null Type Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Null Type Mapping</em>'. + * @see org.eclipse.jpt.core.internal.NullTypeMapping + * @generated + */ + public EClass getNullTypeMapping() { + return nullTypeMappingEClass; + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IPersistentAttribute <em>IPersistent Attribute</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IPersistent Attribute</em>'. + * @see org.eclipse.jpt.core.internal.IPersistentAttribute + * @generated + */ + public EClass getIPersistentAttribute() { + return iPersistentAttributeEClass; + } + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jpt.core.internal.IPersistentAttribute#getMappingKey <em>Mapping Key</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Mapping Key</em>'. + * @see org.eclipse.jpt.core.internal.IPersistentAttribute#getMappingKey() + * @see #getIPersistentAttribute() + * @generated + */ + public EAttribute getIPersistentAttribute_MappingKey() { + return (EAttribute) iPersistentAttributeEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.IAttributeMapping <em>IAttribute Mapping</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>IAttribute Mapping</em>'. + * @see org.eclipse.jpt.core.internal.IAttributeMapping + * @generated + */ + public EClass getIAttributeMapping() { + return iAttributeMappingEClass; + } + + /** + * Returns the meta object for enum '{@link org.eclipse.jpt.core.internal.AccessType <em>Access Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for enum '<em>Access Type</em>'. + * @see org.eclipse.jpt.core.internal.AccessType + * @generated + */ + public EEnum getAccessType() { + return accessTypeEEnum; + } + + /** + * 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 + */ + public JpaCoreFactory getJpaCoreFactory() { + return (JpaCoreFactory) 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 + iJpaModelEClass = createEClass(IJPA_MODEL); + jpaModelEClass = createEClass(JPA_MODEL); + createEReference(jpaModelEClass, JPA_MODEL__PROJECTS); + iJpaEObjectEClass = createEClass(IJPA_EOBJECT); + jpaEObjectEClass = createEClass(JPA_EOBJECT); + iJpaProjectEClass = createEClass(IJPA_PROJECT); + jpaProjectEClass = createEClass(JPA_PROJECT); + createEReference(jpaProjectEClass, JPA_PROJECT__PLATFORM); + createEReference(jpaProjectEClass, JPA_PROJECT__DATA_SOURCE); + createEReference(jpaProjectEClass, JPA_PROJECT__FILES); + iJpaPlatformEClass = createEClass(IJPA_PLATFORM); + iJpaDataSourceEClass = createEClass(IJPA_DATA_SOURCE); + jpaDataSourceEClass = createEClass(JPA_DATA_SOURCE); + createEAttribute(jpaDataSourceEClass, JPA_DATA_SOURCE__CONNECTION_PROFILE_NAME); + iJpaFileEClass = createEClass(IJPA_FILE); + jpaFileEClass = createEClass(JPA_FILE); + createEAttribute(jpaFileEClass, JPA_FILE__CONTENT_ID); + createEReference(jpaFileEClass, JPA_FILE__CONTENT); + iJpaSourceObjectEClass = createEClass(IJPA_SOURCE_OBJECT); + iXmlEObjectEClass = createEClass(IXML_EOBJECT); + xmlEObjectEClass = createEClass(XML_EOBJECT); + iJpaContentNodeEClass = createEClass(IJPA_CONTENT_NODE); + iJpaRootContentNodeEClass = createEClass(IJPA_ROOT_CONTENT_NODE); + createEReference(iJpaRootContentNodeEClass, IJPA_ROOT_CONTENT_NODE__JPA_FILE); + iPersistentTypeEClass = createEClass(IPERSISTENT_TYPE); + createEAttribute(iPersistentTypeEClass, IPERSISTENT_TYPE__MAPPING_KEY); + iTypeMappingEClass = createEClass(ITYPE_MAPPING); + createEAttribute(iTypeMappingEClass, ITYPE_MAPPING__NAME); + createEAttribute(iTypeMappingEClass, ITYPE_MAPPING__TABLE_NAME); + nullTypeMappingEClass = createEClass(NULL_TYPE_MAPPING); + iPersistentAttributeEClass = createEClass(IPERSISTENT_ATTRIBUTE); + createEAttribute(iPersistentAttributeEClass, IPERSISTENT_ATTRIBUTE__MAPPING_KEY); + iAttributeMappingEClass = createEClass(IATTRIBUTE_MAPPING); + // Create enums + accessTypeEEnum = createEEnum(ACCESS_TYPE); + } + + /** + * <!-- 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 + JpaCoreMappingsPackage theJpaCoreMappingsPackage = (JpaCoreMappingsPackage) EPackage.Registry.INSTANCE.getEPackage(JpaCoreMappingsPackage.eNS_URI); + EcorePackage theEcorePackage = (EcorePackage) EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI); + // Add subpackages + getESubpackages().add(theJpaCoreMappingsPackage); + // Create type parameters + // Set bounds for type parameters + // Add supertypes to classes + jpaModelEClass.getESuperTypes().add(this.getJpaEObject()); + jpaModelEClass.getESuperTypes().add(this.getIJpaModel()); + jpaEObjectEClass.getESuperTypes().add(this.getIJpaEObject()); + iJpaProjectEClass.getESuperTypes().add(this.getIJpaEObject()); + jpaProjectEClass.getESuperTypes().add(this.getJpaEObject()); + jpaProjectEClass.getESuperTypes().add(this.getIJpaProject()); + iJpaDataSourceEClass.getESuperTypes().add(this.getIJpaEObject()); + jpaDataSourceEClass.getESuperTypes().add(this.getJpaEObject()); + jpaDataSourceEClass.getESuperTypes().add(this.getIJpaDataSource()); + iJpaFileEClass.getESuperTypes().add(this.getIJpaEObject()); + jpaFileEClass.getESuperTypes().add(this.getJpaEObject()); + jpaFileEClass.getESuperTypes().add(this.getIJpaFile()); + iJpaSourceObjectEClass.getESuperTypes().add(this.getIJpaEObject()); + iXmlEObjectEClass.getESuperTypes().add(this.getIJpaEObject()); + iXmlEObjectEClass.getESuperTypes().add(this.getIJpaSourceObject()); + xmlEObjectEClass.getESuperTypes().add(this.getJpaEObject()); + xmlEObjectEClass.getESuperTypes().add(this.getIXmlEObject()); + iJpaContentNodeEClass.getESuperTypes().add(this.getIJpaSourceObject()); + iJpaRootContentNodeEClass.getESuperTypes().add(this.getIJpaContentNode()); + iPersistentTypeEClass.getESuperTypes().add(this.getIJpaContentNode()); + iTypeMappingEClass.getESuperTypes().add(this.getIJpaSourceObject()); + nullTypeMappingEClass.getESuperTypes().add(this.getJpaEObject()); + nullTypeMappingEClass.getESuperTypes().add(this.getITypeMapping()); + nullTypeMappingEClass.getESuperTypes().add(this.getIJpaSourceObject()); + iPersistentAttributeEClass.getESuperTypes().add(this.getIJpaContentNode()); + iAttributeMappingEClass.getESuperTypes().add(this.getIJpaSourceObject()); + // Initialize classes and features; add operations and parameters + initEClass(iJpaModelEClass, IJpaModel.class, "IJpaModel", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(jpaModelEClass, JpaModel.class, "JpaModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getJpaModel_Projects(), this.getIJpaProject(), null, "projects", null, 0, -1, JpaModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(iJpaEObjectEClass, IJpaEObject.class, "IJpaEObject", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + addEOperation(iJpaEObjectEClass, this.getIJpaProject(), "getJpaProject", 0, 1); + initEClass(jpaEObjectEClass, JpaEObject.class, "JpaEObject", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(iJpaProjectEClass, IJpaProject.class, "IJpaProject", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + addEOperation(iJpaProjectEClass, this.getIJpaModel(), "getModel", 1, 1); + addEOperation(iJpaProjectEClass, this.getIJpaPlatform(), "getPlatform", 1, 1); + EOperation op = addEOperation(iJpaProjectEClass, null, "setPlatform"); + addEParameter(op, theEcorePackage.getEString(), "platformId", 1, 1); + addEOperation(iJpaProjectEClass, this.getIJpaDataSource(), "getDataSource", 1, 1); + op = addEOperation(iJpaProjectEClass, null, "setDataSource"); + addEParameter(op, theEcorePackage.getEString(), "connectionProfileName", 1, 1); + initEClass(jpaProjectEClass, JpaProject.class, "JpaProject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getJpaProject_Platform(), this.getIJpaPlatform(), null, "platform", null, 1, 1, JpaProject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getJpaProject_DataSource(), this.getIJpaDataSource(), null, "dataSource", null, 0, 1, JpaProject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getJpaProject_Files(), this.getIJpaFile(), null, "files", null, 0, -1, JpaProject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(iJpaPlatformEClass, IJpaPlatform.class, "IJpaPlatform", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(iJpaDataSourceEClass, IJpaDataSource.class, "IJpaDataSource", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + addEOperation(iJpaDataSourceEClass, theEcorePackage.getEString(), "getConnectionProfileName", 1, 1); + initEClass(jpaDataSourceEClass, JpaDataSource.class, "JpaDataSource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getJpaDataSource_ConnectionProfileName(), ecorePackage.getEString(), "connectionProfileName", null, 1, 1, JpaDataSource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEClass(iJpaFileEClass, IJpaFile.class, "IJpaFile", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + addEOperation(iJpaFileEClass, ecorePackage.getEString(), "getContentId", 1, 1); + addEOperation(iJpaFileEClass, this.getIJpaRootContentNode(), "getContent", 0, 1); + initEClass(jpaFileEClass, JpaFile.class, "JpaFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getJpaFile_ContentId(), ecorePackage.getEString(), "contentId", null, 1, 1, JpaFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getJpaFile_Content(), this.getIJpaRootContentNode(), this.getIJpaRootContentNode_JpaFile(), "content", null, 0, 1, JpaFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(iJpaSourceObjectEClass, IJpaSourceObject.class, "IJpaSourceObject", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + addEOperation(iJpaSourceObjectEClass, this.getIJpaFile(), "getJpaFile", 0, 1); + initEClass(iXmlEObjectEClass, IXmlEObject.class, "IXmlEObject", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(xmlEObjectEClass, XmlEObject.class, "XmlEObject", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(iJpaContentNodeEClass, IJpaContentNode.class, "IJpaContentNode", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + addEOperation(iJpaContentNodeEClass, this.getIJpaFile(), "getJpaFile", 1, 1); + initEClass(iJpaRootContentNodeEClass, IJpaRootContentNode.class, "IJpaRootContentNode", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIJpaRootContentNode_JpaFile(), this.getIJpaFile(), this.getJpaFile_Content(), "jpaFile", "", 0, 1, IJpaRootContentNode.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(iPersistentTypeEClass, IPersistentType.class, "IPersistentType", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getIPersistentType_MappingKey(), ecorePackage.getEString(), "mappingKey", null, 1, 1, IPersistentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + addEOperation(iPersistentTypeEClass, this.getITypeMapping(), "getMapping", 1, 1); + addEOperation(iPersistentTypeEClass, this.getIPersistentType(), "parentPersistentType", 0, 1); + initEClass(iTypeMappingEClass, ITypeMapping.class, "ITypeMapping", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getITypeMapping_Name(), ecorePackage.getEString(), "name", null, 0, 1, ITypeMapping.class, !IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEAttribute(getITypeMapping_TableName(), ecorePackage.getEString(), "tableName", null, 0, 1, ITypeMapping.class, !IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + addEOperation(iTypeMappingEClass, this.getIPersistentType(), "getPersistentType", 1, 1); + initEClass(nullTypeMappingEClass, NullTypeMapping.class, "NullTypeMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(iPersistentAttributeEClass, IPersistentAttribute.class, "IPersistentAttribute", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getIPersistentAttribute_MappingKey(), ecorePackage.getEString(), "mappingKey", null, 1, 1, IPersistentAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + addEOperation(iPersistentAttributeEClass, this.getIAttributeMapping(), "getMapping", 1, 1); + addEOperation(iPersistentAttributeEClass, this.getITypeMapping(), "typeMapping", 1, 1); + addEOperation(iPersistentAttributeEClass, theEcorePackage.getEString(), "getName", 0, 1); + initEClass(iAttributeMappingEClass, IAttributeMapping.class, "IAttributeMapping", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + addEOperation(iAttributeMappingEClass, this.getIPersistentAttribute(), "getPersistentAttribute", 1, 1); + addEOperation(iAttributeMappingEClass, theEcorePackage.getEBoolean(), "isDefault", 0, 1); + // Initialize enums and add enum literals + initEEnum(accessTypeEEnum, AccessType.class, "AccessType"); + addEEnumLiteral(accessTypeEEnum, AccessType.DEFAULT); + addEEnumLiteral(accessTypeEEnum, AccessType.PROPERTY); + addEEnumLiteral(accessTypeEEnum, AccessType.FIELD); + // Create resource + createResource(eNS_URI); + } + /** + * <!-- 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 enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + public interface Literals + { + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IJpaModel <em>IJpa Model</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaModel + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaModel() + * @generated + */ + public static final EClass IJPA_MODEL = eINSTANCE.getIJpaModel(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.JpaModel <em>Jpa Model</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaModel + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaModel() + * @generated + */ + public static final EClass JPA_MODEL = eINSTANCE.getJpaModel(); + + /** + * The meta object literal for the '<em><b>Projects</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EReference JPA_MODEL__PROJECTS = eINSTANCE.getJpaModel_Projects(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IJpaEObject <em>IJpa EObject</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaEObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaEObject() + * @generated + */ + public static final EClass IJPA_EOBJECT = eINSTANCE.getIJpaEObject(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.JpaEObject <em>Jpa EObject</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaEObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaEObject() + * @generated + */ + public static final EClass JPA_EOBJECT = eINSTANCE.getJpaEObject(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.XmlEObject <em>Xml EObject</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.XmlEObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getXmlEObject() + * @generated + */ + public static final EClass XML_EOBJECT = eINSTANCE.getXmlEObject(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IJpaProject <em>IJpa Project</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaProject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaProject() + * @generated + */ + public static final EClass IJPA_PROJECT = eINSTANCE.getIJpaProject(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.JpaProject <em>Jpa Project</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaProject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaProject() + * @generated + */ + public static final EClass JPA_PROJECT = eINSTANCE.getJpaProject(); + + /** + * The meta object literal for the '<em><b>Platform</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EReference JPA_PROJECT__PLATFORM = eINSTANCE.getJpaProject_Platform(); + + /** + * The meta object literal for the '<em><b>Data Source</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EReference JPA_PROJECT__DATA_SOURCE = eINSTANCE.getJpaProject_DataSource(); + + /** + * The meta object literal for the '<em><b>Files</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EReference JPA_PROJECT__FILES = eINSTANCE.getJpaProject_Files(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IJpaPlatform <em>IJpa Platform</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaPlatform + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaPlatform() + * @generated + */ + public static final EClass IJPA_PLATFORM = eINSTANCE.getIJpaPlatform(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IJpaDataSource <em>IJpa Data Source</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaDataSource + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaDataSource() + * @generated + */ + public static final EClass IJPA_DATA_SOURCE = eINSTANCE.getIJpaDataSource(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.JpaDataSource <em>Jpa Data Source</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaDataSource + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaDataSource() + * @generated + */ + public static final EClass JPA_DATA_SOURCE = eINSTANCE.getJpaDataSource(); + + /** + * The meta object literal for the '<em><b>Connection Profile Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EAttribute JPA_DATA_SOURCE__CONNECTION_PROFILE_NAME = eINSTANCE.getJpaDataSource_ConnectionProfileName(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IJpaFile <em>IJpa File</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaFile + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaFile() + * @generated + */ + public static final EClass IJPA_FILE = eINSTANCE.getIJpaFile(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.JpaFile <em>Jpa File</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.JpaFile + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaFile() + * @generated + */ + public static final EClass JPA_FILE = eINSTANCE.getJpaFile(); + + /** + * The meta object literal for the '<em><b>Content Id</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EAttribute JPA_FILE__CONTENT_ID = eINSTANCE.getJpaFile_ContentId(); + + /** + * The meta object literal for the '<em><b>Content</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EReference JPA_FILE__CONTENT = eINSTANCE.getJpaFile_Content(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IJpaSourceObject <em>IJpa Source Object</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaSourceObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaSourceObject() + * @generated + */ + public static final EClass IJPA_SOURCE_OBJECT = eINSTANCE.getIJpaSourceObject(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IXmlEObject <em>IXml EObject</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IXmlEObject + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIXmlEObject() + * @generated + */ + public static final EClass IXML_EOBJECT = eINSTANCE.getIXmlEObject(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IJpaContentNode <em>IJpa Content Node</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaContentNode + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaContentNode() + * @generated + */ + public static final EClass IJPA_CONTENT_NODE = eINSTANCE.getIJpaContentNode(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IJpaRootContentNode <em>IJpa Root Content Node</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IJpaRootContentNode + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIJpaRootContentNode() + * @generated + */ + public static final EClass IJPA_ROOT_CONTENT_NODE = eINSTANCE.getIJpaRootContentNode(); + + /** + * The meta object literal for the '<em><b>Jpa File</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EReference IJPA_ROOT_CONTENT_NODE__JPA_FILE = eINSTANCE.getIJpaRootContentNode_JpaFile(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IPersistentType <em>IPersistent Type</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IPersistentType + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIPersistentType() + * @generated + */ + public static final EClass IPERSISTENT_TYPE = eINSTANCE.getIPersistentType(); + + /** + * The meta object literal for the '<em><b>Mapping Key</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EAttribute IPERSISTENT_TYPE__MAPPING_KEY = eINSTANCE.getIPersistentType_MappingKey(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.ITypeMapping <em>IType Mapping</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.ITypeMapping + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getITypeMapping() + * @generated + */ + public static final EClass ITYPE_MAPPING = eINSTANCE.getITypeMapping(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EAttribute ITYPE_MAPPING__NAME = eINSTANCE.getITypeMapping_Name(); + + /** + * The meta object literal for the '<em><b>Table Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EAttribute ITYPE_MAPPING__TABLE_NAME = eINSTANCE.getITypeMapping_TableName(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.NullTypeMapping <em>Null Type Mapping</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.NullTypeMapping + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getNullTypeMapping() + * @generated + */ + public static final EClass NULL_TYPE_MAPPING = eINSTANCE.getNullTypeMapping(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IPersistentAttribute <em>IPersistent Attribute</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IPersistentAttribute + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIPersistentAttribute() + * @generated + */ + public static final EClass IPERSISTENT_ATTRIBUTE = eINSTANCE.getIPersistentAttribute(); + + /** + * The meta object literal for the '<em><b>Mapping Key</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EAttribute IPERSISTENT_ATTRIBUTE__MAPPING_KEY = eINSTANCE.getIPersistentAttribute_MappingKey(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.IAttributeMapping <em>IAttribute Mapping</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.IAttributeMapping + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getIAttributeMapping() + * @generated + */ + public static final EClass IATTRIBUTE_MAPPING = eINSTANCE.getIAttributeMapping(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.AccessType <em>Access Type</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.AccessType + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getAccessType() + * @generated + */ + public static final EEnum ACCESS_TYPE = eINSTANCE.getAccessType(); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCorePlugin.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCorePlugin.java new file mode 100644 index 0000000000..4613850c82 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaCorePlugin.java @@ -0,0 +1,132 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Plugin; +import org.eclipse.core.runtime.Status; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jpt.core.internal.content.orm.OrmInit; +import org.eclipse.jpt.core.internal.content.persistence.PersistenceInit; +import org.osgi.framework.BundleContext; + +public class JpaCorePlugin extends Plugin +{ + private static JpaCorePlugin INSTANCE; + + /** + * The plug-in identifier of the persistence support + * (value <code>"org.eclipse.jpt.core"</code>). + */ + public final static String PLUGIN_ID = "org.eclipse.jpt.core"; //$NON-NLS-1$ + + /** + * The identifier for the JPA facet + * (value <code>"jpt.jpa"</code>). + */ + public final static String FACET_ID = "jpt.jpa"; //$NON-NLS-1$ + + /** + * Value of the content-type for orm.xml mappings files. Use this value to retrieve + * the ORM xml content type from the content type manager, and to add new + * orm.xml-like extensions to this content type. + * + * @see org.eclipse.core.runtime.content.IContentTypeManager#getContentType(String) + */ + public static final String ORM_XML_CONTENT_TYPE = PLUGIN_ID + ".content.orm"; //$NON-NLS-1$ + + public static final String PERSISTENCE_XML_CONTENT_TYPE = PLUGIN_ID + ".content.persistence"; //$NON-NLS-1$ + + public static final String JAVA_CONTENT_TYPE = JavaCore.JAVA_SOURCE_CONTENT_TYPE; + + /** + * Returns the singular IJpaModel corresponding to the current workspace. + * + * @return the singular IJpaModel corresponding to the current workspace. + */ + public static IJpaModel getJpaModel() { + return JpaModelManager.instance().getJpaModel(); + } + + /** + * Returns the IJpaProject corresponding to the given IProject, + * or <code>null</code> if unable to associate the given project with an + * IJpaProject. + * + * @param project the given project + * @return the IJpaProject corresponding to the given project, + * or <code>null</code> if unable to associate the given project with an + * IJpaProject + */ + public static IJpaProject getJpaProject(IProject project) { + return JpaModelManager.instance().getJpaProject(project); + } + + /** + * Returns the IJpaFile corresponding to the given IFile, + * or <code>null</code> if unable to associate the given file with an + * IJpaFile. + * + * @param file the given file + * @return the IJpaFile corresponding to the given file, + * or <code>null</code> if unable to associate the given file with an + * IJpaFile + */ + public static IJpaFile getJpaFile(IFile file) { + return JpaModelManager.instance().getJpaFile(file); + } + + /** + * Returns the singleton DaliPlugin + */ + public static JpaCorePlugin getPlugin() { + return INSTANCE; + } + + public static void log(IStatus status) { + INSTANCE.getLog().log(status); + } + + public static void log(String msg) { + log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null)); + } + + public static void log(Throwable throwable) { + log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable)); + } + + + public JpaCorePlugin() { + super(); + INSTANCE = this; + } + + + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + JpaModelManager.instance().startup(); + OrmInit.init(); + PersistenceInit.init(); + } + + @Override + public void stop(BundleContext context) throws Exception { + try { + JpaModelManager.instance().shutdown(); + } + finally { + super.stop(context); + } + } + +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaDataSource.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaDataSource.java new file mode 100644 index 0000000000..70a2254409 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaDataSource.java @@ -0,0 +1,185 @@ +/******************************************************************************* + * Copyright (c) 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.jpt.db.internal.Connection; +import org.eclipse.jpt.db.internal.ConnectionProfileRepository; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Jpa Data Source</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.JpaDataSource#getConnectionProfileName <em>Connection Profile Name</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaDataSource() + * @model kind="class" + * @generated + */ +public class JpaDataSource extends JpaEObject implements IJpaDataSource +{ + /** + * The default value of the '{@link #getConnectionProfileName() <em>Connection Profile Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getConnectionProfileName() + * @generated + * @ordered + */ + protected static final String CONNECTION_PROFILE_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getConnectionProfileName() <em>Connection Profile Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getConnectionProfileName() + * @generated + * @ordered + */ + protected String connectionProfileName = CONNECTION_PROFILE_NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JpaDataSource() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return JpaCorePackage.Literals.JPA_DATA_SOURCE; + } + + /** + * Returns the value of the '<em><b>Connection Profile Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Connection Profile Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Connection Profile Name</em>' attribute. + * @see #setConnectionProfileName(String) + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaDataSource_ConnectionProfileName() + * @model unique="false" required="true" ordered="false" + * @generated + */ + public String getConnectionProfileName() { + return connectionProfileName; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.JpaDataSource#getConnectionProfileName <em>Connection Profile Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Connection Profile Name</em>' attribute. + * @see #getConnectionProfileName() + * @generated + */ + public void setConnectionProfileName(String newConnectionProfileName) { + String oldConnectionProfileName = connectionProfileName; + connectionProfileName = newConnectionProfileName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JpaCorePackage.JPA_DATA_SOURCE__CONNECTION_PROFILE_NAME, oldConnectionProfileName, connectionProfileName)); + } + + public Connection getConnection() { + return ConnectionProfileRepository.instance().getConnectionWithProfileNamed(getConnectionProfileName()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case JpaCorePackage.JPA_DATA_SOURCE__CONNECTION_PROFILE_NAME : + return getConnectionProfileName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case JpaCorePackage.JPA_DATA_SOURCE__CONNECTION_PROFILE_NAME : + setConnectionProfileName((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JpaCorePackage.JPA_DATA_SOURCE__CONNECTION_PROFILE_NAME : + setConnectionProfileName(CONNECTION_PROFILE_NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JpaCorePackage.JPA_DATA_SOURCE__CONNECTION_PROFILE_NAME : + return CONNECTION_PROFILE_NAME_EDEFAULT == null ? connectionProfileName != null : !CONNECTION_PROFILE_NAME_EDEFAULT.equals(connectionProfileName); + } + 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(" (connectionProfileName: "); + result.append(connectionProfileName); + result.append(')'); + return result.toString(); + } +} // JpaDataSource diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaEObject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaEObject.java new file mode 100644 index 0000000000..3ac5a1f76d --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaEObject.java @@ -0,0 +1,128 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.HashSet; +import java.util.Hashtable; +import java.util.Map; +import java.util.Set; +import org.eclipse.core.resources.IResource; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.EObjectImpl; + +/** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaEObject() + * @model kind="class" abstract="true" + * @generated + */ +public abstract class JpaEObject extends EObjectImpl implements IJpaEObject +{ + /** + * Sets of "insignificant" feature ids, keyed by class. + * This is built up lazily, as the objects are modified. + */ + private static final Map<Class<? extends JpaEObject>, Set<Integer>> insignificantFeatureIdSets = new Hashtable<Class<? extends JpaEObject>, Set<Integer>>(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JpaEObject() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return JpaCorePackage.Literals.JPA_EOBJECT; + } + + public IJpaProject getJpaProject() { + IJpaEObject container = (IJpaEObject) this.eContainer(); + return (container == null) ? null : container.getJpaProject(); + } + + public IResource getResource() { + return this.getJpaProject().getProject(); + } + + // ********** change notification ********** + /** + * override to prevent notification when the object's state is unchanged + */ + @Override + public void eNotify(Notification notification) { + if (!notification.isTouch()) { + super.eNotify(notification); + this.featureChanged(notification.getFeatureID(this.getClass())); + } + } + + protected void featureChanged(int featureId) { + if (this.featureIsSignificant(featureId)) { + IJpaProject project = this.getJpaProject(); + // check that the model is fully initialized + if (project != null) { + project.resynch(); + } + } + } + + protected boolean featureIsSignificant(int featureId) { + return !this.featureIsInsignificant(featureId); + } + + protected boolean featureIsInsignificant(int featureId) { + return this.insignificantFeatureIds().contains(featureId); + } + + /** + * Return a set of the object's "insignificant" feature ids. + * These are the EMF features that, when they change, will NOT cause the + * object (or its containing tree) to be resynched, i.e. defaults calculated. + * If you need instance-based calculation of your "insignificant" aspects, + * override this method. If class-based calculation is sufficient, + * override #addInsignificantFeatureIdsTo(Set). + */ + protected Set<Integer> insignificantFeatureIds() { + synchronized (insignificantFeatureIdSets) { + Set<Integer> insignificantFeatureIds = insignificantFeatureIdSets.get(this.getClass()); + if (insignificantFeatureIds == null) { + insignificantFeatureIds = new HashSet<Integer>(); + this.addInsignificantFeatureIdsTo(insignificantFeatureIds); + insignificantFeatureIdSets.put(this.getClass(), insignificantFeatureIds); + } + return insignificantFeatureIds; + } + } + + /** + * Add the object's "insignificant" feature ids to the specified set. + * These are the EMF features that, when they change, will NOT cause the + * object (or its containing tree) to be resynched, i.e. defaults calculated. + * If class-based calculation of your "insignificant" features is sufficient, + * override this method. If you need instance-based calculation, + * override #insignificantFeatureIds(). + */ + protected void addInsignificantFeatureIdsTo(Set<Integer> insignificantFeatureIds) { + // when you override this method, don't forget to include: + // super.addInsignificantFeatureIdsTo(insignificantFeatureIds); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaFile.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaFile.java new file mode 100644 index 0000000000..08c07ef2d3 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaFile.java @@ -0,0 +1,337 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +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.core.ElementChangedEvent; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Persistence File</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.JpaFile#getContentId <em>Content Id</em>}</li> + * <li>{@link org.eclipse.jpt.core.internal.JpaFile#getContent <em>Content</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaFile() + * @model kind="class" + * @generated + */ +public class JpaFile extends JpaEObject implements IJpaFile +{ + /** + * The default value of the '{@link #getContentId() <em>Content Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getContentId() + * @generated + * @ordered + */ + protected static final String CONTENT_ID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getContentId() <em>Content Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getContentId() + * @generated + * @ordered + */ + protected String contentId = CONTENT_ID_EDEFAULT; + + /** + * The cached value of the '{@link #getContent() <em>Content</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getContent() + * @generated + * @ordered + */ + protected IJpaRootContentNode content; + + /** + * The IFile associated with this JPA file + */ + protected IFile file; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JpaFile() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return JpaCorePackage.Literals.JPA_FILE; + } + + /** + * Returns the value of the '<em><b>Content Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Content Id</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Content Id</em>' attribute. + * @see #setContentId(String) + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaFile_ContentId() + * @model required="true" + * @generated + */ + public String getContentId() { + return contentId; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.JpaFile#getContentId <em>Content Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Content Id</em>' attribute. + * @see #getContentId() + * @generated + */ + public void setContentId(String newContentId) { + String oldContentId = contentId; + contentId = newContentId; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JpaCorePackage.JPA_FILE__CONTENT_ID, oldContentId, contentId)); + } + + /** + * Returns the value of the '<em><b>Content</b></em>' containment reference. + * It is bidirectional and its opposite is '{@link org.eclipse.jpt.core.internal.IJpaRootContentNode#getJpaFile <em>Jpa File</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Content</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>Content</em>' containment reference. + * @see #setContent(IJpaRootContentNode) + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaFile_Content() + * @see org.eclipse.jpt.core.internal.IJpaRootContentNode#getJpaFile + * @model opposite="jpaFile" containment="true" + * @generated + */ + public IJpaRootContentNode getContent() { + return content; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetContent(IJpaRootContentNode newContent, NotificationChain msgs) { + IJpaRootContentNode oldContent = content; + content = newContent; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, JpaCorePackage.JPA_FILE__CONTENT, oldContent, newContent); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.JpaFile#getContent <em>Content</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Content</em>' containment reference. + * @see #getContent() + * @generated + */ + public void setContent(IJpaRootContentNode newContent) { + if (newContent != content) { + NotificationChain msgs = null; + if (content != null) + msgs = ((InternalEObject) content).eInverseRemove(this, JpaCorePackage.IJPA_ROOT_CONTENT_NODE__JPA_FILE, IJpaRootContentNode.class, msgs); + if (newContent != null) + msgs = ((InternalEObject) newContent).eInverseAdd(this, JpaCorePackage.IJPA_ROOT_CONTENT_NODE__JPA_FILE, IJpaRootContentNode.class, msgs); + msgs = basicSetContent(newContent, msgs); + if (msgs != null) + msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JpaCorePackage.JPA_FILE__CONTENT, newContent, newContent)); + } + + /** + * @see IJpaFile#getFile() + */ + public IFile getFile() { + return file; + } + + void setFile(IFile theFile) { + file = theFile; + } + + /** + * INTERNAL ONLY + * Dispose of file before it is removed + */ + void dispose() { + getContent().dispose(); + } + + /** + * INTERNAL ONLY + * Handle java element change event. + */ + void handleEvent(ElementChangedEvent event) { + getContent().handleJavaElementChangedEvent(event); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case JpaCorePackage.JPA_FILE__CONTENT : + if (content != null) + msgs = ((InternalEObject) content).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - JpaCorePackage.JPA_FILE__CONTENT, null, msgs); + return basicSetContent((IJpaRootContentNode) 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 JpaCorePackage.JPA_FILE__CONTENT : + return basicSetContent(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 JpaCorePackage.JPA_FILE__CONTENT_ID : + return getContentId(); + case JpaCorePackage.JPA_FILE__CONTENT : + return getContent(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case JpaCorePackage.JPA_FILE__CONTENT_ID : + setContentId((String) newValue); + return; + case JpaCorePackage.JPA_FILE__CONTENT : + setContent((IJpaRootContentNode) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JpaCorePackage.JPA_FILE__CONTENT_ID : + setContentId(CONTENT_ID_EDEFAULT); + return; + case JpaCorePackage.JPA_FILE__CONTENT : + setContent((IJpaRootContentNode) null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JpaCorePackage.JPA_FILE__CONTENT_ID : + return CONTENT_ID_EDEFAULT == null ? contentId != null : !CONTENT_ID_EDEFAULT.equals(contentId); + case JpaCorePackage.JPA_FILE__CONTENT : + return content != 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(" (contentId: "); + result.append(contentId); + result.append(')'); + return result.toString(); + } + + public IJpaContentNode getContentNode(int offset) { + return getContent().getContentNode(offset); + } + + @Override + public IResource getResource() { + return file; + } +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaFileContentRegistry.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaFileContentRegistry.java new file mode 100644 index 0000000000..054f61261d --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaFileContentRegistry.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * Copyright (c) 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.io.IOException; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.content.IContentType; + +public class JpaFileContentRegistry +{ + private JpaFileContentRegistry() { + super(); + } + + public static IJpaFile getFile(IJpaProject jpaProject, IFile file) { + //attempting to get the contentType based on the file contents. + //have to check the file contents instead of just the file name + //because for xml we base it on the rootElement name + IContentType contentType = null; + try { + contentType = (file == null) ? + null : + Platform.getContentTypeManager().findContentTypeFor(file.getContents(), file.getName()); + } + catch (IOException e) { + JpaCorePlugin.log(e); + } + catch (CoreException e) { + JpaCorePlugin.log(e); + } + if (contentType == null) { + return null; + } + String contentTypeId = contentType.getId(); + IJpaRootContentNode content = buildContent(jpaProject, file, contentTypeId); + + if (content == null) { + return null; + } + JpaFile jpaFile = JpaCoreFactory.eINSTANCE.createJpaFile(); + jpaFile.setFile(file); + jpaFile.setContentId(contentTypeId); + jpaFile.setContent(content); + + return jpaFile; + } + + private static IJpaRootContentNode buildContent(IJpaProject jpaProject, IFile file, String contentTypeId) { + for (IJpaFileContentProvider provider : jpaProject.getPlatform().jpaFileContentProviders()) { + if (provider.contentType().equals(contentTypeId)) { + return provider.buildRootContent(file); + } + } + return null; + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModel.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModel.java new file mode 100644 index 0000000000..2bf6b6e688 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModel.java @@ -0,0 +1,264 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Collection; +import java.util.Iterator; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceProxy; +import org.eclipse.core.resources.IResourceProxyVisitor; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +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.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; +import org.eclipse.jdt.core.ElementChangedEvent; +import org.eclipse.jpt.utility.internal.iterators.CloneIterator; +import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Jpa Model</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.JpaModel#getProjects <em>Projects</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaModel() + * @model kind="class" + * @generated + */ +public class JpaModel extends JpaEObject implements IJpaModel +{ + /** + * The cached value of the '{@link #getProjects() <em>Projects</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getProjects() + * @generated + * @ordered + */ + protected EList<IJpaProject> projects; + + /** + * Flag to indicate whether the model has been filled with projects + */ + private boolean filled = false; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JpaModel() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return JpaCorePackage.Literals.JPA_MODEL; + } + + /** + * Returns the value of the '<em><b>Projects</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.jpt.core.internal.IJpaProject}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Projects</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>Projects</em>' containment reference list. + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaModel_Projects() + * @model type="org.eclipse.jpt.core.internal.IJpaProject" containment="true" + * @generated + */ + public EList<IJpaProject> getProjects() { + if (projects == null) { + projects = new EObjectContainmentEList<IJpaProject>(IJpaProject.class, this, JpaCorePackage.JPA_MODEL__PROJECTS); + } + return projects; + } + + /** + * @see IJpaModel#getJpaProject(IProject) + */ + public synchronized IJpaProject getJpaProject(IProject project) { + for (IJpaProject jpaProject : getProjects()) { + if (jpaProject.getProject().equals(project)) { + return jpaProject; + } + } + if (!this.filled) { + try { + return JpaModelManager.instance().createJpaProject(project); + } + catch (CoreException ce) { + JpaCorePlugin.log(ce.getStatus()); + return null; + } + } + return null; + } + + /** + * @see IJpaModel#jpaProjects() + */ + public Iterator<IJpaProject> jpaProjects() { + return new ReadOnlyIterator<IJpaProject>(getProjects().iterator()); + } + + @Override + public IResource getResource() { + return null; + } + + /** + * INTERNAL ONLY + * Initialize model with workspace resources + */ + void fill() throws CoreException { + if (filled) + return; + IResourceProxyVisitor visitor = new IResourceProxyVisitor() { + public boolean visit(IResourceProxy resourceProxy) throws CoreException { + if (!resourceProxy.isAccessible()) { + return false; + } + switch (resourceProxy.getType()) { + case IResource.ROOT : + return true; + case IResource.PROJECT : + JpaModelManager.instance().fillJpaProject((IProject) resourceProxy.requestResource()); + default : + return false; + } + } + }; + ResourcesPlugin.getWorkspace().getRoot().accept(visitor, IResource.NONE); + filled = true; + } + + /** + * INTERNAL ONLY + * Dispose of model + */ + void dispose() { + for (Iterator<IJpaProject> stream = new CloneIterator<IJpaProject>(getProjects()); stream.hasNext();) { + disposeProject((JpaProject) stream.next()); + } + } + + /** + * INTERNAL ONLY + * Dispose project and remove it + */ + void disposeProject(JpaProject jpaProject) { + jpaProject.dispose(); + getProjects().remove(jpaProject); + } + + /** + * INTERNAL ONLY + * Handle java element change event. + */ + void handleEvent(ElementChangedEvent event) { + for (Iterator<IJpaProject> stream = getProjects().iterator(); stream.hasNext();) { + ((JpaProject) stream.next()).handleEvent(event); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case JpaCorePackage.JPA_MODEL__PROJECTS : + return ((InternalEList<?>) getProjects()).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 JpaCorePackage.JPA_MODEL__PROJECTS : + return getProjects(); + } + 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 JpaCorePackage.JPA_MODEL__PROJECTS : + getProjects().clear(); + getProjects().addAll((Collection<? extends IJpaProject>) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JpaCorePackage.JPA_MODEL__PROJECTS : + getProjects().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JpaCorePackage.JPA_MODEL__PROJECTS : + return projects != null && !projects.isEmpty(); + } + return super.eIsSet(featureID); + } +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModelManager.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModelManager.java new file mode 100644 index 0000000000..ef7317dcf1 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaModelManager.java @@ -0,0 +1,543 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.IWorkspaceRunnable; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.Preferences.IPropertyChangeListener; +import org.eclipse.core.runtime.Preferences.PropertyChangeEvent; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jdt.core.ElementChangedEvent; +import org.eclipse.jdt.core.IElementChangedListener; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jpt.core.internal.prefs.JpaPreferenceConstants; +import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework; + +public class JpaModelManager +{ + private static JpaModelManager INSTANCE; + + + /** + * Returns the singleton JpaModelManager + */ + public final static JpaModelManager instance() { + if (INSTANCE == null) { + INSTANCE = new JpaModelManager(); + } + return INSTANCE; + } + + + /** + * Unique handle onto the JpaModel + */ + JpaModel model; + + /** + * Processes resource changes + */ + private IResourceChangeListener resourceChangeListener; + + /** + * Process element changes + */ + private IElementChangedListener elementChangeListener; + + /** + * Process changes to preferences + */ + private IPropertyChangeListener preferencesListener; + + + private JpaModelManager() { + super(); + model = JpaCoreFactory.eINSTANCE.createJpaModel(); + resourceChangeListener = new ResourceChangeListener(); + elementChangeListener = new ElementChangeListener(); + preferencesListener = new PreferencesListener(); + } + + public void startup() { + try { + buildWorkspace(); + ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener); + JavaCore.addElementChangedListener(elementChangeListener); + JpaCorePlugin.getPlugin().getPluginPreferences().addPropertyChangeListener(preferencesListener); + } + catch (RuntimeException re) { + JpaCorePlugin.log(re); + shutdown(); + } + } + + public void shutdown() { + JpaCorePlugin.getPlugin().getPluginPreferences().removePropertyChangeListener(preferencesListener); + JavaCore.removeElementChangedListener(elementChangeListener); + ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener); + model.dispose(); + } + + private void buildWorkspace() { + Job workspaceBuildJob = new WorkspaceBuildJob(); + workspaceBuildJob.schedule(5000L); //temporary delay for bundle init problem + } + + /** + * Return the workspace-wide IJpaModel + * + * This IJpaProject may not be fully filled (it may not have all the correct + * projects added) if retrieved soon after it is created (e.g. workspace opening, + * project opening, facet installation ...) To ensure it is fully filled in + * those cases, you may instead use getFilledJpaModel(). + * @see getFilledJpaModel() + */ + public IJpaModel getJpaModel() { + return model; + } + + /** + * Return the workspace-wide IJpaModel + * + * This IJpaModel will be fully filled (it will have all the correct projects added). + * @see getJpaProject(IProject) + */ + public IJpaModel getFilledJpaModel() + throws CoreException { + model.fill(); + return model; + } + + /** + * Returns the IJpaProject corresponding to the given IProject. + * Returns <code>null</code> if unable to associate the given project + * with an IJpaProject. + * + * This IJpaProject may not be fully filled (it may not have all the correct + * files added) if retrieved soon after it is created (e.g. workspace opening, + * project opening, facet installation ...) To ensure it is fully filled in + * those cases, you may instead use getFilledJpaProject(IProject). + * @see getFilledJpaProject(IProject) + */ + public synchronized IJpaProject getJpaProject(IProject project) { + if (project == null) { + return null; + } + + return model.getJpaProject(project); + } + + /** + * Returns the IJpaProject corresponding to the given IProject. + * Returns <code>null</code> if unable to associate the given project + * with an IJpaProject. + * + * This IJpaProject will be fully filled (it will have all the correct files added). + * @see getJpaProject(IProject) + */ + public synchronized IJpaProject getFilledJpaProject(IProject project) + throws CoreException { + JpaProject jpaProject = (JpaProject) getJpaProject(project); + + if (jpaProject != null) { + jpaProject.fill(); + } + + return jpaProject; + } + + /** + * INTERNAL ONLY + * + * Fills the IJpaProject associated with the IProject, if it exists + */ + public synchronized void fillJpaProject(IProject project) + throws CoreException { + JpaProject jpaProject = (JpaProject) getJpaProject(project); + + if (jpaProject != null) { + jpaProject.fill(); + } + } + + /** + * INTERNAL ONLY + * Create an IJpaProject without files filled in + */ + public synchronized IJpaProject createJpaProject(IProject project) + throws CoreException { + if (FacetedProjectFramework.hasProjectFacet(project, JpaCorePlugin.FACET_ID)) { + JpaProject jpaProject = JpaCoreFactory.eINSTANCE.createJpaProject(); + jpaProject.setProject(project); + model.getProjects().add(jpaProject); + return jpaProject; + } + return null; + } + + /** + * INTERNAL ONLY + * Create an IJpaProject with files filled in + */ + public synchronized IJpaProject createFilledJpaProject(IProject project) + throws CoreException { + JpaProject jpaProject = (JpaProject) createJpaProject(project); + + if (jpaProject != null) { + jpaProject.fill(); + } + + return jpaProject; + } + + /** + * INTERNAL ONLY + * Dispose the IJpaProject + */ + public void disposeJpaProject(IJpaProject jpaProject) { + model.disposeProject((JpaProject) jpaProject); + } + + /** + * Returns the IJpaFile corresponding to the given IFile. + * Returns <code>null</code> if unable to associate the given file + * with an IJpaFile. + */ + public synchronized IJpaFile getJpaFile(IFile file) { + if (file == null) { + return null; + } + + IProject project = file.getProject(); + JpaProject jpaProject = (JpaProject) getJpaProject(project); + if (jpaProject == null) { + return null; + } + + return jpaProject.getJpaFile(file); + } + + + + private class WorkspaceBuildJob extends Job + { + WorkspaceBuildJob() { + // TODO - Internationalize (? It *is* a system job ...) + super("Initializing JPA Model ..."); + setSystem(true); + setPriority(SHORT); + } + + @Override + protected IStatus run(IProgressMonitor monitor) { + final IWorkspace workspace = ResourcesPlugin.getWorkspace(); + + try { + workspace.run( + new IWorkspaceRunnable() { + public void run(IProgressMonitor progress) throws CoreException { + model.fill(); + } + }, + monitor); + } + catch (CoreException ce) { + return ce.getStatus(); + } + return Status.OK_STATUS; + } + + } + + + private static class ResourceChangeListener + implements IResourceChangeListener + { + ThreadLocal<ResourceChangeProcessor> resourceChangeProcessors = new ThreadLocal<ResourceChangeProcessor>(); + + ResourceChangeListener() { + super(); + } + + public void resourceChanged(IResourceChangeEvent event) { + getResourceChangeProcessor().resourceChanged(event); + } + + public ResourceChangeProcessor getResourceChangeProcessor() { + ResourceChangeProcessor processor = this.resourceChangeProcessors.get(); + if (processor == null) { + processor = new ResourceChangeProcessor(); + this.resourceChangeProcessors.set(processor); + } + return processor; + } + } + + + private static class ResourceChangeProcessor + { + private JpaModel model; + + ResourceChangeProcessor() { + model = JpaModelManager.instance().model; + } + + public void resourceChanged(IResourceChangeEvent event) { + if (event.getSource() instanceof IWorkspace) { + IResource resource = event.getResource(); + IResourceDelta delta = event.getDelta(); + + switch (event.getType()){ + case IResourceChangeEvent.PRE_DELETE : + try { + if ((resource.getType() == IResource.PROJECT) + && (FacetedProjectFramework.hasProjectFacet( + (IProject) resource, JpaCorePlugin.FACET_ID))) { + projectBeingDeleted((IProject) resource); + } + } + catch (CoreException e) { + // project doesn't exist or is not open: ignore + } + return; + + case IResourceChangeEvent.POST_CHANGE : + if (isApplicable(delta)) { // avoid changing due to SYNC or MARKER deltas + checkForProjectsBeingAddedOrRemoved(delta); + checkForFilesBeingAddedOrRemoved(delta); + } + return; + + case IResourceChangeEvent.PRE_CLOSE : + return; + } + } + } + + /** + * Process the given delta and look for files being added, removed, or changed + */ + private void checkForFilesBeingAddedOrRemoved(IResourceDelta delta) { + IResource resource = delta.getResource(); + boolean processChildren = false; + + switch (resource.getType()) { + case IResource.ROOT : + processChildren = true; + break; + + case IResource.PROJECT : + IProject project = (IProject) resource; + + try { + if (FacetedProjectFramework.hasProjectFacet(project, JpaCorePlugin.FACET_ID)) { + JpaProject jpaProject = (JpaProject) model.getJpaProject(project); + if (jpaProject != null) { + // sometimes we receive events before the project + // has been fully initialized + jpaProject.synchInternalResources(delta); + } + } + } + catch (CoreException ex) { + // we can't do anything anyway + } + break; + } + if (processChildren) { + IResourceDelta[] children = delta.getAffectedChildren(); + for (int i = 0; i < children.length; i++) { + checkForFilesBeingAddedOrRemoved(children[i]); + } + } + + } + + /** + * Process the given delta and look for projects being added, opened, or closed. + * Note that projects being deleted are checked in deletingProject(IProject). + */ + private void checkForProjectsBeingAddedOrRemoved(IResourceDelta delta) { + IResource resource = delta.getResource(); + boolean processChildren = false; + + switch (resource.getType()) { + case IResource.ROOT : + processChildren = true; + break; + + case IResource.PROJECT : + // NB: No need to check project's facet as if the project is not a jpa project: + // - if the project is added or changed this is a noop for projectsBeingDeleted + // - if the project is closed, it has already lost its jpa facet + IProject project = (IProject) resource; + + // could be problems here ... + JpaProject jpaProject = (JpaProject) model.getJpaProject(project); + switch (delta.getKind()) { + case IResourceDelta.ADDED : + // shouldn't have to do anything - model should be created with facet + break; + + case IResourceDelta.REMOVED : + // not really sure what should be done here ... + break; + + case IResourceDelta.CHANGED : + if ((delta.getFlags() & IResourceDelta.OPEN) != 0) { + if (project.isOpen() && jpaProject == null) { + try { + JpaModelManager.instance().createFilledJpaProject(project); + } + catch (CoreException ce) { + JpaCorePlugin.log(ce); + } + } + else { + model.disposeProject(jpaProject); + } + } + else if ((delta.getFlags() & IResourceDelta.DESCRIPTION) != 0) { + // again, not sure ... + } + else { + // ... + } + break; + } + break; + } + if (processChildren) { + IResourceDelta[] children = delta.getAffectedChildren(); + for (int i = 0; i < children.length; i++) { + checkForProjectsBeingAddedOrRemoved(children[i]); + } + } + } + + /** + * The platform project is being deleted. Remove jpa info. + */ + private void projectBeingDeleted(IProject project) { + // could be problems here ... + JpaProject jpaProject = (JpaProject) model.getJpaProject(project); + model.disposeProject(jpaProject); + } + + /** + * Returns whether a given delta contains some information relevant to + * the JPA model, + * in particular it will not consider SYNC or MARKER only deltas. + */ + private boolean isApplicable(IResourceDelta rootDelta) { + if (rootDelta != null) { + // use local exception to quickly escape from delta traversal + class FoundRelevantDeltaException extends RuntimeException { + private static final long serialVersionUID = 7137113252936111022L; // backward compatible + // only the class name is used (to differentiate from other RuntimeExceptions) + } + try { + rootDelta.accept( + new IResourceDeltaVisitor() { + public boolean visit(IResourceDelta delta) { + switch (delta.getKind()) { + case IResourceDelta.ADDED : + case IResourceDelta.REMOVED : + throw new FoundRelevantDeltaException(); + case IResourceDelta.CHANGED : + // if any flag is set but SYNC or MARKER, this delta should be considered + if (delta.getAffectedChildren().length == 0 // only check leaf delta nodes + && (delta.getFlags() & ~(IResourceDelta.SYNC | IResourceDelta.MARKERS)) != 0) { + throw new FoundRelevantDeltaException(); + } + } + return true; + } + } + ); + } + catch(FoundRelevantDeltaException e) { + return true; + } + catch(CoreException e) { // ignore delta if not able to traverse + } + } + return false; + } + } + + + private static class ElementChangeListener + implements IElementChangedListener + { + ThreadLocal<ElementChangeProcessor> elementChangeProcessors = new ThreadLocal<ElementChangeProcessor>(); + + ElementChangeListener() { + super(); + } + + public void elementChanged(ElementChangedEvent event) { + getElementChangeProcessor().elementChanged(event); + } + + public ElementChangeProcessor getElementChangeProcessor() { + ElementChangeProcessor processor = this.elementChangeProcessors.get(); + if (processor == null) { + processor = new ElementChangeProcessor(); + this.elementChangeProcessors.set(processor); + } + return processor; + } + } + + + private static class ElementChangeProcessor + { + ElementChangeProcessor() { + super(); + } + public void elementChanged(ElementChangedEvent event) { + JpaModelManager.instance().model.handleEvent(event); + } + } + + + private static class PreferencesListener + implements IPropertyChangeListener + { + PreferencesListener() { + super(); + } + public void propertyChange(PropertyChangeEvent event) { + if (event.getProperty() == JpaPreferenceConstants.PREF_DEFAULT_JPA_LIB) { + try { + JavaCore.setClasspathVariable("DEFAULT_JPA_LIB", new Path((String) event.getNewValue()), null); + } + catch (JavaModelException jme) { + JpaCorePlugin.log(jme); + } + } + } + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaPlatformRegistry.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaPlatformRegistry.java new file mode 100644 index 0000000000..603da2472d --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaPlatformRegistry.java @@ -0,0 +1,190 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IExtension; +import org.eclipse.core.runtime.IExtensionPoint; +import org.eclipse.core.runtime.IExtensionRegistry; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jpt.utility.internal.CollectionTools; +import org.eclipse.jpt.utility.internal.iterators.CompositeIterator; +import org.eclipse.jpt.utility.internal.iterators.TransformationIterator; + +public class JpaPlatformRegistry +{ + public static final JpaPlatformRegistry INSTANCE = new JpaPlatformRegistry(); + + private static final String EXTENSION_ID = + "jpaPlatform"; //$NON-NLS-1$ + + private static final String EL_PLATFORM = + "jpaPlatform"; //$NON-NLS-1$ + + private static final String AT_ID = + "id"; //$NON-NLS-1$ + + private static final String AT_LABEL = + "label"; //$NON-NLS-1$ + + private static final String AT_CLASS = + "class"; //$NON-NLS-1$ + + // key: String jpaPlatform id value: IConfigurationElement class descriptor + private Map<String, IConfigurationElement> jpaPlatforms; + + + /* (non Java doc) + * restrict access + */ + private JpaPlatformRegistry() { + buildJpaPlatforms(); + } + + + private void buildJpaPlatforms() { + this.jpaPlatforms = new HashMap<String, IConfigurationElement>(); + + for (Iterator<IConfigurationElement> stream = allConfigElements(); stream.hasNext(); ) { + buildJpaPlatform(stream.next()); + } + } + + private void buildJpaPlatform(IConfigurationElement configElement) { + if (! configElement.getName().equals(EL_PLATFORM)) { + return; + } + + String platformId = configElement.getAttribute(AT_ID); + String platformLabel = configElement.getAttribute(AT_LABEL); + String platformClass = configElement.getAttribute(AT_CLASS); + + if ((platformId == null) || (platformLabel == null) || (platformClass == null)) { + if (platformId == null) { + reportMissingAttribute(configElement, AT_ID); + } + if (platformLabel == null) { + reportMissingAttribute(configElement, AT_LABEL); + } + if (platformClass == null) { + reportMissingAttribute(configElement, AT_CLASS); + } + return; + } + + if (this.jpaPlatforms.containsKey(platformId)) { + IConfigurationElement otherConfigElement = this.jpaPlatforms.get(platformId); + reportDuplicatePlatform(configElement, otherConfigElement); + } + + this.jpaPlatforms.put(platformId, configElement); + } + + /** + * Return a new IJpaPlatform for the given id. + * NB: This should only be done when instantiating a platform for a given + * IJpaProject, either when creating the project, or when changing the + * platform. + */ + public IJpaPlatform getJpaPlatform(String id) { + IConfigurationElement registeredConfigElement = this.jpaPlatforms.get(id); + + if (registeredConfigElement == null) { + return null; + } + + try { + IJpaPlatform platform = + (IJpaPlatform) registeredConfigElement.createExecutableExtension(AT_CLASS); + platform.setId(id); + return platform; + } + catch (CoreException ce) { + reportFailedInstantiation(registeredConfigElement); + return null; + } + } + + /** + * Return an iterator of String ids for all registered JPA platforms. + * This does not load any of the platforms' plugin classes. + */ + public Iterator allJpaPlatformIds() { + return Collections.unmodifiableMap(jpaPlatforms).keySet().iterator(); + } + + /** + * Return the label for the platform with the given id. + * This does not load the platform's plugin classes. + */ + public String getJpaPlatformLabel(String id) { + return jpaPlatforms.get(id).getAttribute(AT_LABEL); + } + + private Iterator<IConfigurationElement> allConfigElements() { + IExtensionRegistry registry = Platform.getExtensionRegistry(); + IExtensionPoint extensionPoint = + registry.getExtensionPoint(JpaCorePlugin.PLUGIN_ID, EXTENSION_ID); + IExtension[] extensions = extensionPoint.getExtensions(); + + return new CompositeIterator<IConfigurationElement>( + new TransformationIterator<IExtension, Iterator<IConfigurationElement>>(CollectionTools.iterator(extensions)) { + @Override + protected Iterator<IConfigurationElement> transform(IExtension next) { + return CollectionTools.iterator(next.getConfigurationElements()); + } + } + ); + } + + // TODO externalize strings + private void reportMissingAttribute(IConfigurationElement configElement, String attributeName) { + String message = + "An extension element \"" + + configElement.getName() + + "\" in plugin \"" + + configElement.getContributor().getName() + + "\" is missing a required attribute \"" + + attributeName + + "\"."; + JpaCorePlugin.log(message); + } + + // TODO externalize strings + private void reportDuplicatePlatform( + IConfigurationElement oneConfigElement, IConfigurationElement otherConfigElement) { + String message = + "The plugins \"" + + oneConfigElement.getContributor().getName() + + "\" and \"" + + otherConfigElement.getContributor().getName() + + "\" have registered a duplicate attribute \"id\" " + + "for the extension element \"jpaPlatform\"."; + JpaCorePlugin.log(message); + } + + // TODO externalize strings + private void reportFailedInstantiation(IConfigurationElement configElement) { + String message = + "Could not instantiate the class \"" + + configElement.getAttribute(AT_CLASS) + + "\" for the extension element \"" + + configElement.getName() + + "\" in the plugin \"" + + configElement.getContributor().getName() + + "\"."; + JpaCorePlugin.log(message); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProject.java new file mode 100644 index 0000000000..04ddf525fb --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProject.java @@ -0,0 +1,645 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.resources.IResourceProxy; +import org.eclipse.core.resources.IResourceProxyVisitor; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.IJobChangeEvent; +import org.eclipse.core.runtime.jobs.IJobChangeListener; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.core.runtime.jobs.JobChangeAdapter; +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.InternalEList; +import org.eclipse.jdt.core.ElementChangedEvent; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jpt.core.internal.content.java.JavaPersistentType; +import org.eclipse.jpt.core.internal.content.java.JpaCompilationUnit; +import org.eclipse.jpt.core.internal.facet.JpaFacetUtils; +import org.eclipse.jpt.core.internal.platform.IContext; +import org.eclipse.jpt.db.internal.ConnectionProfile; +import org.eclipse.jpt.db.internal.PersistenceDbPlugin; +import org.eclipse.jpt.utility.internal.iterators.CloneIterator; +import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator; +import org.eclipse.wst.validation.internal.provisional.core.IMessage; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Jpa Project</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.JpaProject#getPlatform <em>Platform</em>}</li> + * <li>{@link org.eclipse.jpt.core.internal.JpaProject#getDataSource <em>Data Source</em>}</li> + * <li>{@link org.eclipse.jpt.core.internal.JpaProject#getFiles <em>Files</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaProject() + * @model kind="class" + * @generated + */ +public class JpaProject extends JpaEObject implements IJpaProject +{ + /** + * The IProject associated with this JPA project + */ + protected IProject project; + + /** + * The IJpaPlatform associated with this JPA project + */ + protected IJpaPlatform platform; + + /** + * The cached value of the '{@link #getDataSource() <em>Data Source</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDataSource() + * @generated + * @ordered + */ + protected IJpaDataSource dataSource; + + /** + * The cached value of the '{@link #getFiles() <em>Files</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFiles() + * @generated + * @ordered + */ + protected EList<IJpaFile> files; + + /** + * Flag to indicate whether this project has been filled with files + */ + private boolean filled = false; + + /** + * Flag to indicate that the resynchJob has been scheduled or is running. + * This is set to false when that job is completed + */ + boolean resynching = false; + + /** + * Flag to indicate that the resynchJob needs to be run. This is + * set to true if resynching = true so that the next time the job completes + * it will be run again. + */ + boolean needsToResynch = false; + + /** + * Job used to reconnect the model parts throughout the project containment hierarchy + * @see IJpaProject#resynch() + */ + Job resynchJob; + + private IJobChangeListener resynchJobListener; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected JpaProject() { + super(); + this.resynchJob = buildResynchJob(); + this.resynchJobListener = buildResynchJobListener(); + Job.getJobManager().addJobChangeListener(this.resynchJobListener); + } + + private Job buildResynchJob() { + return new Job("Resynching JPA model ...") { + @Override + protected IStatus run(IProgressMonitor monitor) { + IContext contextHierarchy = getPlatform().buildProjectContext(); + getPlatform().resynch(contextHierarchy); + return Status.OK_STATUS; + } + }; + } + + private IJobChangeListener buildResynchJobListener() { + return new JobChangeAdapter() { + @Override + public void done(IJobChangeEvent event) { + super.done(event); + if (event.getJob() == JpaProject.this.resynchJob) { + JpaProject.this.resynching = false; + if (JpaProject.this.needsToResynch) { + resynch(); + } + } + } + }; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return JpaCorePackage.Literals.JPA_PROJECT; + } + + /** + * @see IJpaProject#getProject() + */ + public IProject getProject() { + return project; + } + + void setProject(IProject theProject) { + project = theProject; + } + + public IJavaProject getJavaProject() { + return JavaCore.create(getProject()); + } + + /** + * @see IJpaProject#getModel() + */ + public IJpaModel getModel() { + return (IJpaModel) eContainer(); + } + + /** + * Returns the value of the '<em><b>Platform</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Platform</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Platform</em>' reference. + * @see #setPlatform(IJpaPlatform) + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaProject_Platform() + * @model resolveProxies="false" required="true" ordered="false" + * @generated + */ + public IJpaPlatform getPlatformGen() { + return platform; + } + + public IJpaPlatform getPlatform() { + if (platform == null) { + setPlatform(JpaFacetUtils.getPlatform(project)); + } + return getPlatformGen(); + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.JpaProject#getPlatform <em>Platform</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Platform</em>' reference. + * @see #getPlatform() + * @generated + */ + public void setPlatformGen(IJpaPlatform newPlatform) { + IJpaPlatform oldPlatform = platform; + platform = newPlatform; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JpaCorePackage.JPA_PROJECT__PLATFORM, oldPlatform, platform)); + } + + public void setPlatform(IJpaPlatform jpaPlatform) { + jpaPlatform.setProject(this); + setPlatformGen(jpaPlatform); + } + + /** + * @see IJpaProject#setPlatform(String) + */ + public void setPlatform(String platformId) { + setPlatform(JpaPlatformRegistry.INSTANCE.getJpaPlatform(platformId)); + } + + /** + * Returns the value of the '<em><b>Data Source</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Data Source</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>Data Source</em>' containment reference. + * @see #setDataSource(IJpaDataSource) + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaProject_DataSource() + * @model containment="true" ordered="false" + * @generated + */ + public IJpaDataSource getDataSourceGen() { + return dataSource; + } + + public IJpaDataSource getDataSource() { + if (dataSource == null) { + setDataSource(JpaFacetUtils.getConnectionName(project)); + } + return getDataSourceGen(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetDataSource(IJpaDataSource newDataSource, NotificationChain msgs) { + IJpaDataSource oldDataSource = dataSource; + dataSource = newDataSource; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, JpaCorePackage.JPA_PROJECT__DATA_SOURCE, oldDataSource, newDataSource); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.JpaProject#getDataSource <em>Data Source</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Data Source</em>' containment reference. + * @see #getDataSource() + * @generated + */ + public void setDataSource(IJpaDataSource newDataSource) { + if (newDataSource != dataSource) { + NotificationChain msgs = null; + if (dataSource != null) + msgs = ((InternalEObject) dataSource).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - JpaCorePackage.JPA_PROJECT__DATA_SOURCE, null, msgs); + if (newDataSource != null) + msgs = ((InternalEObject) newDataSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - JpaCorePackage.JPA_PROJECT__DATA_SOURCE, null, msgs); + msgs = basicSetDataSource(newDataSource, msgs); + if (msgs != null) + msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JpaCorePackage.JPA_PROJECT__DATA_SOURCE, newDataSource, newDataSource)); + } + + /** + * @see IJpaProject#setDataSource(String) + */ + public void setDataSource(String connectionProfileName) { + JpaDataSource ds = JpaCoreFactory.eINSTANCE.createJpaDataSource(); + ds.setConnectionProfileName(connectionProfileName); + setDataSource(ds); + } + + @Override + public IJpaProject getJpaProject() { + return this; + } + + /** + * Returns the value of the '<em><b>Files</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.jpt.core.internal.IJpaFile}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Files</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>Files</em>' containment reference list. + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getJpaProject_Files() + * @model type="org.eclipse.jpt.core.internal.IJpaFile" containment="true" + * @generated + */ + public EList<IJpaFile> getFiles() { + if (files == null) { + files = new EObjectContainmentEList<IJpaFile>(IJpaFile.class, this, JpaCorePackage.JPA_PROJECT__FILES); + } + return files; + } + + /** + * INTERNAL ONLY + * Fill project with file resources + */ + void fill() throws CoreException { + if (filled) { + return; + } + IResourceProxyVisitor visitor = new IResourceProxyVisitor() { + public boolean visit(IResourceProxy resource) throws CoreException { + switch (resource.getType()) { + case IResource.PROJECT : + case IResource.FOLDER : + return true; + case IResource.FILE : + IFile file = (IFile) resource.requestResource(); + if (getJpaFileInternal(file) == null) { + createJpaFile(file); + } + default : + return false; + } + } + }; + getProject().accept(visitor, IResource.NONE); + resynch(); + filled = true; + } + + /** + * @see IJpaProject#getJpaFile(IFile) + */ + public synchronized IJpaFile getJpaFile(IFile file) { + IJpaFile jpaFile = getJpaFileInternal(file); + if (jpaFile != null) { + return jpaFile; + } + else if (!filled) { + return createJpaFile(file); + } + else { + return null; + } + } + + synchronized IJpaFile getJpaFileInternal(IFile file) { + for (IJpaFile next : this.getFiles()) { + if (next.getFile().equals(file)) { + return next; + } + } + return null; + } + + public Iterator<IJpaFile> jpaFiles() { + return new ReadOnlyIterator<IJpaFile>(getFiles().iterator()); + } + + public Collection<IJpaFile> jpaFiles(String contentType) { + Collection<IJpaFile> jpaFiles = new ArrayList<IJpaFile>(); + for (Iterator<IJpaFile> stream = jpaFiles(); stream.hasNext();) { + IJpaFile next = stream.next(); + if (next.getContentId().equals(contentType)) { + jpaFiles.add(next); + } + } + return jpaFiles; + } + + public JavaPersistentType findJavaPersistentType(IType type) { + if (type == null) { + return null; + } + Collection<IJpaFile> persistenceFiles = jpaFiles(JpaCorePlugin.JAVA_CONTENT_TYPE); + for (IJpaFile jpaFile : persistenceFiles) { + JpaCompilationUnit compilationUnit = (JpaCompilationUnit) jpaFile.getContent(); + for (JavaPersistentType persistentType : compilationUnit.getTypes()) { + if (type.equals(persistentType.getType().jdtType())) { + return persistentType; + } + } + } + return null; + } + + /** + * INTERNAL ONLY + * Dispose of project before it is removed + */ + void dispose() { + for (Iterator<IJpaFile> stream = new CloneIterator<IJpaFile>(getFiles()); stream.hasNext();) { + disposeFile((JpaFile) stream.next()); + } + Job.getJobManager().removeJobChangeListener(this.resynchJobListener); + } + + /** + * INTERNAL ONLY + * Dispose file and remove it + */ + void disposeFile(JpaFile jpaFile) { + jpaFile.dispose(); + getFiles().remove(jpaFile); + } + + /** + * INTERNAL ONLY + * Synch internal JPA resources. + */ + void synchInternalResources(IResourceDelta delta) throws CoreException { + delta.accept(this.buildResourceDeltaVisitor()); + } + + private IResourceDeltaVisitor buildResourceDeltaVisitor() { + return new IResourceDeltaVisitor() { + private IResource currentResource = getProject(); + + public boolean visit(IResourceDelta delta) throws CoreException { + IResource res = delta.getResource(); + if (res.equals(currentResource)) + return true; + if (res.getType() == IResource.FILE) { + IFile file = (IFile) res; + switch (delta.getKind()) { + case IResourceDelta.ADDED : + if (getJpaFile(file) == null) { + createJpaFile(file); + JpaProject.this.resynch();//TODO different api for this? + } + break; + case IResourceDelta.REMOVED : + JpaFile jpaFile = (JpaFile) getJpaFile(file); + if (jpaFile != null) { + disposeFile(jpaFile); + JpaProject.this.resynch();//TODO different api for this? + } + break; + case IResourceDelta.CHANGED : + // shouldn't have to worry, since all changes we're looking for have to do with file name + } + } + return true; + } + }; + } + + synchronized IJpaFile createJpaFile(IFile file) { + if (!JavaCore.create(getProject()).isOnClasspath(file)) { + return null; + } + IJpaFile jpaFile = JpaFileContentRegistry.getFile(this, file); + // PWFTODO + // Return a NullPersistenceFile if no content found? + if (jpaFile != null) { + getFiles().add(jpaFile); + return jpaFile; + } + return null; + } + + /** + * INTERNAL ONLY + * Handle java element change event. + */ + void handleEvent(ElementChangedEvent event) { + if (filled) { + for (Iterator<IJpaFile> stream = jpaFiles(); stream.hasNext();) { + ((JpaFile) stream.next()).handleEvent(event); + } + resynch(); + } + } + + public Iterator<IMessage> validationMessages() { + List<IMessage> messages = new ArrayList<IMessage>(); + getPlatform().addToMessages(messages); + return messages.iterator(); + } + + //leaving this at the JpaProject level for now instead of + //passing it on to the JpaModel. We don't currently support + //multiple projects having cross-references + public void resynch() { + if (!this.resynching) { + this.resynching = true; + this.needsToResynch = false; + this.resynchJob.schedule(); + } + else { + this.needsToResynch = true; + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case JpaCorePackage.JPA_PROJECT__DATA_SOURCE : + return basicSetDataSource(null, msgs); + case JpaCorePackage.JPA_PROJECT__FILES : + return ((InternalEList<?>) getFiles()).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 JpaCorePackage.JPA_PROJECT__PLATFORM : + return getPlatform(); + case JpaCorePackage.JPA_PROJECT__DATA_SOURCE : + return getDataSource(); + case JpaCorePackage.JPA_PROJECT__FILES : + return getFiles(); + } + 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 JpaCorePackage.JPA_PROJECT__PLATFORM : + setPlatform((IJpaPlatform) newValue); + return; + case JpaCorePackage.JPA_PROJECT__DATA_SOURCE : + setDataSource((IJpaDataSource) newValue); + return; + case JpaCorePackage.JPA_PROJECT__FILES : + getFiles().clear(); + getFiles().addAll((Collection<? extends IJpaFile>) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JpaCorePackage.JPA_PROJECT__PLATFORM : + setPlatform((IJpaPlatform) null); + return; + case JpaCorePackage.JPA_PROJECT__DATA_SOURCE : + setDataSource((IJpaDataSource) null); + return; + case JpaCorePackage.JPA_PROJECT__FILES : + getFiles().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JpaCorePackage.JPA_PROJECT__PLATFORM : + return platform != null; + case JpaCorePackage.JPA_PROJECT__DATA_SOURCE : + return dataSource != null; + case JpaCorePackage.JPA_PROJECT__FILES : + return files != null && !files.isEmpty(); + } + return super.eIsSet(featureID); + } + + public ConnectionProfile connectionProfile() { + String profileName = getDataSource().getConnectionProfileName(); + return PersistenceDbPlugin.getDefault().getConnectionProfileRepository().profileNamed(profileName); + } +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProjectAdapterFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProjectAdapterFactory.java new file mode 100644 index 0000000000..e28001002b --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/JpaProjectAdapterFactory.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright (c) 2005, 2007 Oracle. 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: + * Oracle - initial API and implementation + *******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IAdapterFactory; +import org.eclipse.jdt.core.IJavaProject; + +public class JpaProjectAdapterFactory + implements IAdapterFactory +{ + private static Class[] PROPERTIES= new Class[] { + IJpaProject.class + }; + + public Class[] getAdapterList() { + return PROPERTIES; + } + + public Object getAdapter(Object element, Class key) { + IProject project; + + if (element instanceof IProject) { + project = (IProject) element; + } + else if (element instanceof IJavaProject) { + project = ((IJavaProject) element).getProject(); + } + else { + return null; + } + + return JpaCorePlugin.getJpaProject(project); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/NullTypeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/NullTypeMapping.java new file mode 100644 index 0000000000..67c901f31e --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/NullTypeMapping.java @@ -0,0 +1,252 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Iterator; +import org.eclipse.core.resources.IResource; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.jdt.core.ElementChangedEvent; +import org.eclipse.jpt.db.internal.Table; +import org.eclipse.jpt.utility.internal.iterators.EmptyIterator; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Null Type Mapping</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getNullTypeMapping() + * @model kind="class" + * @generated + */ +public class NullTypeMapping extends JpaEObject + implements ITypeMapping, IJpaSourceObject +{ + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The default value of the '{@link #getTableName() <em>Table Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTableName() + * @generated + * @ordered + */ + protected static final String TABLE_NAME_EDEFAULT = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NullTypeMapping() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return JpaCorePackage.Literals.NULL_TYPE_MAPPING; + } + + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getITypeMapping_Name() + * @model changeable="false" volatile="true" derived="true" + * @generated NOT + */ + public String getName() { + return ""; + } + + /** + * Returns the value of the '<em><b>Table Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Table Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Table Name</em>' attribute. + * @see org.eclipse.jpt.core.internal.JpaCoreackage#getITypeMapping_TableName() + * @model changeable="false" volatile="true" derived="true" + * @generated NOT + */ + public String getTableName() { + return ""; + } + + public IPersistentType getPersistentType() { + throw new UnsupportedOperationException(); + } + + public IResource getResource() { + throw new UnsupportedOperationException("getResource()"); + } + + /** + * @model kind="operation" + * @generated NOT + */ + public IJpaFile getJpaFile() { + throw new UnsupportedOperationException("getJpaFile()"); + } + + public ITextRange getTextRange() { + throw new UnsupportedOperationException("getTextRange()"); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case JpaCorePackage.NULL_TYPE_MAPPING__NAME : + return getName(); + case JpaCorePackage.NULL_TYPE_MAPPING__TABLE_NAME : + return getTableName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JpaCorePackage.NULL_TYPE_MAPPING__NAME : + return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName()); + case JpaCorePackage.NULL_TYPE_MAPPING__TABLE_NAME : + return TABLE_NAME_EDEFAULT == null ? getTableName() != null : !TABLE_NAME_EDEFAULT.equals(getTableName()); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) { + if (baseClass == IJpaSourceObject.class) { + switch (derivedFeatureID) { + default : + return -1; + } + } + if (baseClass == ITypeMapping.class) { + switch (derivedFeatureID) { + case JpaCorePackage.NULL_TYPE_MAPPING__NAME : + return JpaCorePackage.ITYPE_MAPPING__NAME; + case JpaCorePackage.NULL_TYPE_MAPPING__TABLE_NAME : + return JpaCorePackage.ITYPE_MAPPING__TABLE_NAME; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) { + if (baseClass == IJpaSourceObject.class) { + switch (baseFeatureID) { + default : + return -1; + } + } + if (baseClass == ITypeMapping.class) { + switch (baseFeatureID) { + case JpaCorePackage.ITYPE_MAPPING__NAME : + return JpaCorePackage.NULL_TYPE_MAPPING__NAME; + case JpaCorePackage.ITYPE_MAPPING__TABLE_NAME : + return JpaCorePackage.NULL_TYPE_MAPPING__TABLE_NAME; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + public String getKey() { + return IMappingKeys.NULL_TYPE_MAPPING_KEY; + } + + public void javaElementChanged(ElementChangedEvent event) {} + + public Iterator associatedTableNamesIncludingInherited() { + return EmptyIterator.instance(); + } + + public Iterator associatedTables() { + return EmptyIterator.instance(); + } + + public Iterator associatedTablesIncludingInherited() { + return EmptyIterator.instance(); + } + + public Table primaryDbTable() { + return null; + } + + public Table dbTable(String tableName) { + return null; + } + + public boolean tableNameIsInvalid(String tableName) { + return false; + } + + public Iterator<String> overridableAssociationNames() { + return EmptyIterator.instance(); + } + + public Iterator<String> overridableAttributeNames() { + return EmptyIterator.instance(); + } + + public boolean attributeMappingKeyAllowed(String attributeMappingKey) { + // it's not so much that all mapping keys are allowed. + // it's just that they're not really invalid, per se + return true; + } +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/XmlEObject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/XmlEObject.java new file mode 100644 index 0000000000..8ac9ab189e --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/XmlEObject.java @@ -0,0 +1,217 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: Oracle. - initial API and implementation + *******************************************************************************/ +package org.eclipse.jpt.core.internal; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Hashtable; +import java.util.Map; +import java.util.Set; +import org.eclipse.core.resources.IResource; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.jpt.utility.internal.ClassTools; +import org.eclipse.wst.common.internal.emf.resource.EMF2DOMAdapter; +import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; +import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; +import org.w3c.dom.Node; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Xml EObject</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.JpaCorePackage#getXmlEObject() + * @model kind="class" abstract="true" + * @generated + */ +public abstract class XmlEObject extends JpaEObject implements IXmlEObject +{ + protected IDOMNode node; + + /** + * Sets of "insignificant" feature ids, keyed by class. + * This is built up lazily, as the objects are modified. + */ + private static final Map<Class, Set<Integer>> insignificantXmlFeatureIdSets = new Hashtable<Class, Set<Integer>>(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected XmlEObject() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return JpaCorePackage.Literals.XML_EOBJECT; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" + * @generated NOT + */ + public IJpaFile getJpaFile() { + IJpaRootContentNode root = getRoot(); + return (root == null) ? null : root.getJpaFile(); + } + + @Override + public EList eAdapters() { + if (this.eAdapters == null) { + this.eAdapters = new XmlEAdapterList(this); + } + return this.eAdapters; + } + + public IDOMNode getNode() { + return this.node; + } + protected class XmlEAdapterList extends EAdapterList + { + public XmlEAdapterList(Notifier notifier) { + super(notifier); + } + + @Override + protected void didAdd(int index, Object newObject) { + super.didAdd(index, newObject); + try { + node = (IDOMNode) ClassTools.executeMethod(newObject, "getNode"); + } + catch (RuntimeException re) { + // nothing to do + } + } + + @Override + protected void didRemove(int index, Object oldObject) { + super.didRemove(index, oldObject); + if ((oldObject instanceof EMF2DOMAdapter) && (((EMF2DOMAdapter) oldObject).getNode() == XmlEObject.this.node)) { + XmlEObject.this.node = null; + } + } + } + + public boolean isAllFeaturesUnset() { + for (EStructuralFeature feature : eClass().getEAllStructuralFeatures()) { + if (xmlFeatureIsInsignificant(feature.getFeatureID())) { + continue; + } + if (feature instanceof EReference) { + Object object = eGet(feature); + if (object instanceof Collection) { + if (eIsSet(feature)) { + return false; + } + } + else { + XmlEObject eObject = (XmlEObject) eGet(feature); + if (eObject != null) { + return eObject.isAllFeaturesUnset(); + } + } + } + else if (eIsSet(feature)) { + return false; + } + } + return true; + } + + public IJpaRootContentNode getRoot() { + XmlEObject container = (XmlEObject) eContainer(); + return (container == null) ? null : container.getRoot(); + } + + public IResource getResource() { + return getJpaFile().getResource(); + } + + public ITextRange getTextRange() { + return getTextRange(node); + } + + protected ITextRange getTextRange(final IDOMNode aNode) { + return new ITextRange() { + public int getLength() { + if (aNode.getNodeType() == Node.ELEMENT_NODE) { + return ((IDOMElement) aNode).getStartEndOffset() - aNode.getStartOffset(); + } + return aNode.getLength(); + } + + public int getLineNumber() { + return aNode.getStructuredDocument().getLineOfOffset(getOffset()) + 1; + } + + public int getOffset() { + return aNode.getStartOffset(); + } + }; + } + + protected boolean xmlFeatureIsSignificant(int featureId) { + return !this.xmlFeatureIsInsignificant(featureId); + } + + protected boolean xmlFeatureIsInsignificant(int featureId) { + return this.insignificantXmlFeatureIds().contains(featureId); + } + + /** + * Return a set of the xml object's "insignificant" feature ids. + * These are the EMF features that will not be used to determine if all + * the features are unset. We use this to determine when to remove + * an element from the xml. + * + * If you need instance-based calculation of your xml "insignificant" aspects, + * override this method. If class-based calculation is sufficient, + * override #addInsignificantXmlFeatureIdsTo(Set). + * + * @see isAllFeaturesUnset() + */ + protected Set<Integer> insignificantXmlFeatureIds() { + synchronized (insignificantXmlFeatureIdSets) { + Set<Integer> insignificantXmlFeatureIds = insignificantXmlFeatureIdSets.get(this.getClass()); + if (insignificantXmlFeatureIds == null) { + insignificantXmlFeatureIds = new HashSet<Integer>(); + this.addInsignificantXmlFeatureIdsTo(insignificantXmlFeatureIds); + insignificantXmlFeatureIdSets.put(this.getClass(), insignificantXmlFeatureIds); + } + return insignificantXmlFeatureIds; + } + } + + /** + * Add the object's "insignificant" feature ids to the specified set. + * These are the EMF features that, when they change, will NOT cause the + * object (or its containing tree) to be resynched, i.e. defaults calculated. + * If class-based calculation of your "insignificant" features is sufficient, + * override this method. If you need instance-based calculation, + * override #insignificantXmlFeatureIds(). + */ + protected void addInsignificantXmlFeatureIdsTo(Set<Integer> insignificantXmlFeatureIds) { + // when you override this method, don't forget to include: + // super.addInsignificantXmlFeatureIdsTo(insignificantXmlFeatureIds); + } +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaAttributeMapping.java new file mode 100644 index 0000000000..47cfb0bd62 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaAttributeMapping.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal.content.java; + +import org.eclipse.jdt.core.dom.CompilationUnit; +import org.eclipse.jpt.core.internal.IAttributeMapping; +import org.eclipse.jpt.core.internal.platform.DefaultsContext; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IJava Attribute Mapping</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.content.java.JpaJavaPackage#getIJavaAttributeMapping() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJavaAttributeMapping extends IAttributeMapping +{ + /** + * <!-- begin-user-doc --> + * Initialize the model after the AttributeMapping has been + * created and added to its container. Some things + * can't be accessed. Build anything that doesn't depend + * on resources throughout the model being built. + * <!-- end-user-doc --> + * @model + * @generated + */ + void initialize(); + + void updateFromJava(CompilationUnit astRoot); + + /** + * Refresh defaults using the given DefaultsContext + * @param defaultsContext + */ + void refreshDefaults(DefaultsContext defaultsContext); +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaAttributeMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaAttributeMappingProvider.java new file mode 100644 index 0000000000..ff71764a1f --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaAttributeMappingProvider.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal.content.java; + +import org.eclipse.jpt.core.internal.jdtutility.Attribute; +import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationAdapter; +import org.eclipse.jpt.core.internal.platform.DefaultsContext; + +/** + * Map a string key to an attribute mapping and its corresponding + * Java annotation adapter. + */ +public interface IJavaAttributeMappingProvider { + + String key(); + + boolean defaultApplies(Attribute attribute, DefaultsContext defaultsContext); + + IJavaAttributeMapping buildMapping(Attribute attribute); + + DeclarationAnnotationAdapter declarationAnnotationAdapter(); + +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaContentNodes.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaContentNodes.java new file mode 100644 index 0000000000..41ff7a5174 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaContentNodes.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal.content.java; + +import org.eclipse.jpt.core.internal.JpaCorePlugin; + +public interface IJavaContentNodes +{ + public static final String COMPILATION_UNIT_ID = + JpaCorePlugin.PLUGIN_ID + ".java.compilationUnit"; + + public static final String PERSISTENT_TYPE_ID = + JpaCorePlugin.PLUGIN_ID + ".java.persistentType"; + + public static final String PERSISTENT_ATTRIBUTE_ID = + JpaCorePlugin.PLUGIN_ID + ".java.persistentAttribute"; +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaTypeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaTypeMapping.java new file mode 100644 index 0000000000..9229cf05c7 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaTypeMapping.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal.content.java; + +import java.util.List; +import org.eclipse.jdt.core.dom.CompilationUnit; +import org.eclipse.jpt.core.internal.ITypeMapping; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>IJava Type Mapping</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.content.java.JpaJavaPackage#getIJavaTypeMapping() + * @model kind="class" interface="true" abstract="true" + * @generated + */ +public interface IJavaTypeMapping extends ITypeMapping +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + void initialize(); + + void updateFromJava(CompilationUnit astRoot); + + List<String> candidateValuesFor(int pos, CompilationUnit astRoot); + +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaTypeMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaTypeMappingProvider.java new file mode 100644 index 0000000000..9f34675844 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/IJavaTypeMappingProvider.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal.content.java; + +import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationAdapter; +import org.eclipse.jpt.core.internal.jdtutility.Type; + +/** + * Map a string key to a type mapping and its corresponding + * Java annotation adapter. + */ +public interface IJavaTypeMappingProvider { + + String key(); + + IJavaTypeMapping buildMapping(Type type); + + DeclarationAnnotationAdapter declarationAnnotationAdapter(); + +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaEObject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaEObject.java new file mode 100644 index 0000000000..448f8e2089 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaEObject.java @@ -0,0 +1,95 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal.content.java; + +import org.eclipse.core.resources.IResource; +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.impl.AdapterImpl; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.jpt.core.internal.IJpaFile; +import org.eclipse.jpt.core.internal.IJpaRootContentNode; +import org.eclipse.jpt.core.internal.IJpaSourceObject; +import org.eclipse.jpt.core.internal.ITextRange; +import org.eclipse.jpt.core.internal.JpaEObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Java EObject</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.jpt.core.internal.content.java.JpaJavaPackage#getJavaEObject() + * @model kind="class" abstract="true" + * @generated + */ +public abstract class JavaEObject extends JpaEObject + implements IJpaSourceObject +{ + protected JavaEObject() { + super(); + this.eAdapters().add(this.buildListener()); + } + + protected Adapter buildListener() { + return new AdapterImpl() { + @Override + public void notifyChanged(Notification notification) { + JavaEObject.this.notifyChanged(notification); + } + }; + } + + protected void notifyChanged(Notification notification) { + // do nothing by default + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return JpaJavaPackage.Literals.JAVA_EOBJECT; + } + + public IJpaFile getJpaFile() { + return this.getRoot().getJpaFile(); + } + + public IJpaRootContentNode getRoot() { + return ((JavaEObject) this.eContainer()).getRoot(); + } + + @Override + public IResource getResource() { + return this.getJpaFile().getResource(); + } + + /** + * All features are "insiginificant". We do a resynch of our java model + * when it gets notification from the jdt java model. We had problems + * with the java model being in a bad state while doing our resynch. + */ + @Override + protected boolean featureIsInsignificant(int featureId) { + return true; + } + + /** + * Convenience method. If the specified element text range is null + * return the Java object's text range instead (which is usually the + * annotation's text range). + */ + protected ITextRange elementTextRange(ITextRange elementTextRange) { + return (elementTextRange != null) ? elementTextRange : this.getTextRange(); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaJpaFileContentProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaJpaFileContentProvider.java new file mode 100644 index 0000000000..0a9164b47c --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaJpaFileContentProvider.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2006 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal.content.java; + +import org.eclipse.core.resources.IFile; +import org.eclipse.jpt.core.internal.IJpaFileContentProvider; +import org.eclipse.jpt.core.internal.IJpaRootContentNode; +import org.eclipse.jpt.core.internal.JpaCorePlugin; + +public class JavaJpaFileContentProvider implements IJpaFileContentProvider +{ + public static JavaJpaFileContentProvider INSTANCE = new JavaJpaFileContentProvider(); + + /** + * Restrict access + */ + private JavaJpaFileContentProvider() { + + } + + public IJpaRootContentNode buildRootContent(IFile resourceFile) { + JpaCompilationUnit content = JpaJavaFactory.eINSTANCE.createJpaCompilationUnit(); + content.setFile(resourceFile); + return content; + } + + public String contentType() { + return JpaCorePlugin.JAVA_CONTENT_TYPE; + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentAttribute.java new file mode 100644 index 0000000000..e603fb9fda --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentAttribute.java @@ -0,0 +1,652 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal.content.java; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +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.core.IMember; +import org.eclipse.jdt.core.dom.CompilationUnit; +import org.eclipse.jpt.core.internal.IJpaContentNode; +import org.eclipse.jpt.core.internal.IPersistentAttribute; +import org.eclipse.jpt.core.internal.IPersistentType; +import org.eclipse.jpt.core.internal.ITextRange; +import org.eclipse.jpt.core.internal.ITypeMapping; +import org.eclipse.jpt.core.internal.JpaCorePackage; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaBasicProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaEmbeddedIdProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaEmbeddedProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaIdProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaManyToManyProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaManyToOneProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaNullAttributeMappingProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaOneToManyProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaOneToOneProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaTransientProvider; +import org.eclipse.jpt.core.internal.content.java.mappings.JavaVersionProvider; +import org.eclipse.jpt.core.internal.jdtutility.Attribute; +import org.eclipse.jpt.core.internal.jdtutility.DeclarationAnnotationAdapter; +import org.eclipse.jpt.core.internal.platform.DefaultsContext; +import org.eclipse.jpt.utility.internal.iterators.ArrayIterator; +import org.eclipse.jpt.utility.internal.iterators.TransformationIterator; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Java Persistent Attribute</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.content.java.JavaPersistentAttribute#getDefaultMapping <em>Default Mapping</em>}</li> + * <li>{@link org.eclipse.jpt.core.internal.content.java.JavaPersistentAttribute#getSpecifiedMapping <em>Specified Mapping</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.content.java.JpaJavaPackage#getJavaPersistentAttribute() + * @model kind="class" + * @generated + */ +public class JavaPersistentAttribute extends JavaEObject + implements IPersistentAttribute +{ + /** + * The default value of the '{@link #getMappingKey() <em>Mapping Key</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMappingKey() + * @generated + * @ordered + */ + protected static final String MAPPING_KEY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getMappingKey() <em>Mapping Key</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMappingKey() + * @generated + * @ordered + */ + protected String mappingKey = MAPPING_KEY_EDEFAULT; + + /** + * The cached value of the '{@link #getDefaultMapping() <em>Default Mapping</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDefaultMapping() + * @generated + * @ordered + */ + protected IJavaAttributeMapping defaultMapping; + + /** + * The cached value of the '{@link #getSpecifiedMapping() <em>Specified Mapping</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSpecifiedMapping() + * @generated + * @ordered + */ + protected IJavaAttributeMapping specifiedMapping; + + private Attribute attribute; + + // TODO move these to a singleton? + private IJavaAttributeMappingProvider[] attributeMappingProviders; + + /** + * the "null" attribute mapping is used when the attribute is neither + * modified with a mapping annotation nor mapped by a "default" mapping + */ + // TODO move this to a singleton? + private IJavaAttributeMappingProvider nullAttributeMappingProvider; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JavaPersistentAttribute() { + super(); + } + + protected JavaPersistentAttribute(Attribute attribute) { + super(); + this.attribute = attribute; + this.attributeMappingProviders = this.buildAttributeMappingProviders(); + this.nullAttributeMappingProvider = this.buildNullAttributeMappingProvider(); + } + + private IJavaAttributeMappingProvider[] buildAttributeMappingProviders() { + ArrayList<IJavaAttributeMappingProvider> providers = new ArrayList<IJavaAttributeMappingProvider>(); + this.addAttributeMappingProvidersTo(providers); + return providers.toArray(new IJavaAttributeMappingProvider[providers.size()]); + } + + /** + * Override this to specify more or different attribute mapping providers. + * The default includes the JPA spec-defined type mappings of + * Basic, Id, OneToOne, OneToMany, ManyToOne, ManyToMany, Embeddable, EmbeddedId. + */ + protected void addAttributeMappingProvidersTo(Collection<IJavaAttributeMappingProvider> providers) { + providers.add(JavaBasicProvider.instance()); + providers.add(JavaIdProvider.instance()); + providers.add(JavaTransientProvider.instance()); + providers.add(JavaOneToManyProvider.instance()); + providers.add(JavaManyToOneProvider.instance()); + providers.add(JavaManyToManyProvider.instance()); + providers.add(JavaOneToOneProvider.instance()); + providers.add(JavaEmbeddedProvider.instance()); + providers.add(JavaEmbeddedIdProvider.instance()); + providers.add(JavaVersionProvider.instance()); + } + + protected IJavaAttributeMappingProvider buildNullAttributeMappingProvider() { + return JavaNullAttributeMappingProvider.instance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return JpaJavaPackage.Literals.JAVA_PERSISTENT_ATTRIBUTE; + } + + /** + * Returns the value of the '<em><b>Mapping Key</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mapping Key</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mapping Key</em>' attribute. + * @see org.eclipse.jpt.core.internal.content.java.JpaJavaPackage#getIPersistentAttribute_MappingKey() + * @model required="true" changeable="false" + * @generated + */ + public String getMappingKey() { + return mappingKey; + } + + /** + * Returns the value of the '<em><b>Default Mapping</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Default Mapping</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>Default Mapping</em>' containment reference. + * @see #setDefaultMapping(IJavaAttributeMapping) + * @see org.eclipse.jpt.core.internal.content.java.JpaJavaPackage#getJavaPersistentAttribute_DefaultMapping() + * @model containment="true" required="true" + * @generated + */ + public IJavaAttributeMapping getDefaultMapping() { + return defaultMapping; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetDefaultMapping(IJavaAttributeMapping newDefaultMapping, NotificationChain msgs) { + IJavaAttributeMapping oldDefaultMapping = defaultMapping; + defaultMapping = newDefaultMapping; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__DEFAULT_MAPPING, oldDefaultMapping, newDefaultMapping); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.java.JavaPersistentAttribute#getDefaultMapping <em>Default Mapping</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Default Mapping</em>' containment reference. + * @see #getDefaultMapping() + * @generated + */ + public void setDefaultMapping(IJavaAttributeMapping newDefaultMapping) { + if (newDefaultMapping != defaultMapping) { + NotificationChain msgs = null; + if (defaultMapping != null) + msgs = ((InternalEObject) defaultMapping).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__DEFAULT_MAPPING, null, msgs); + if (newDefaultMapping != null) + msgs = ((InternalEObject) newDefaultMapping).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__DEFAULT_MAPPING, null, msgs); + msgs = basicSetDefaultMapping(newDefaultMapping, msgs); + if (msgs != null) + msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__DEFAULT_MAPPING, newDefaultMapping, newDefaultMapping)); + } + + /** + * Returns the value of the '<em><b>Specified Mapping</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Specified Mapping</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>Specified Mapping</em>' containment reference. + * @see #setSpecifiedMapping(IJavaAttributeMapping) + * @see org.eclipse.jpt.core.internal.content.java.JpaJavaPackage#getJavaPersistentAttribute_SpecifiedMapping() + * @model containment="true" required="true" + * @generated + */ + public IJavaAttributeMapping getSpecifiedMapping() { + return specifiedMapping; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetSpecifiedMapping(IJavaAttributeMapping newSpecifiedMapping, NotificationChain msgs) { + IJavaAttributeMapping oldSpecifiedMapping = specifiedMapping; + specifiedMapping = newSpecifiedMapping; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__SPECIFIED_MAPPING, oldSpecifiedMapping, newSpecifiedMapping); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.java.JavaPersistentAttribute#getSpecifiedMapping <em>Specified Mapping</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Specified Mapping</em>' containment reference. + * @see #getSpecifiedMapping() + * @generated + */ + public void setSpecifiedMappingGen(IJavaAttributeMapping newSpecifiedMapping) { + if (newSpecifiedMapping != specifiedMapping) { + NotificationChain msgs = null; + if (specifiedMapping != null) + msgs = ((InternalEObject) specifiedMapping).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__SPECIFIED_MAPPING, null, msgs); + if (newSpecifiedMapping != null) + msgs = ((InternalEObject) newSpecifiedMapping).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__SPECIFIED_MAPPING, null, msgs); + msgs = basicSetSpecifiedMapping(newSpecifiedMapping, msgs); + if (msgs != null) + msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__SPECIFIED_MAPPING, newSpecifiedMapping, newSpecifiedMapping)); + } + + /** + * This should not be called when updating the persistence model + * from the java model, it should only be called when going in the + * other direction. This will update the java code appropriately + * to the change in mapping in the persistence model. + */ + public void setSpecifiedMapping(IJavaAttributeMapping newMapping) { + if (this.specifiedMapping != null) { + this.attribute.removeAnnotation(this.annotationAdapterForAttributeMappingKey(this.specifiedMapping.getKey())); + } + if (newMapping != null) { + this.attribute.newMarkerAnnotation(this.annotationAdapterForAttributeMappingKey(newMapping.getKey())); + } + this.setSpecifiedMappingGen(newMapping); + } + + protected void setMappingKeyInternal(String newMappingKey) { + String oldMappingKey = mappingKey; + mappingKey = newMappingKey; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__MAPPING_KEY, oldMappingKey, mappingKey)); + } + + /** + * This should not be called when updating the persistence model + * from the java model, it should only be called when going in the + * other direction. This will update the java code appropriately + * to the change in mapping in the persistence model. + */ + public void setMappingKey(String newMappingKey, boolean default_) { + if (default_) { + setSpecifiedMapping(null); + setMappingKeyInternal(newMappingKey); + return; + } + this.setSpecifiedMapping(this.buildMapping(newMappingKey)); + if (this.specifiedMapping != null) { + this.specifiedMapping.initialize(); + } + this.setMappingKeyInternal(newMappingKey); + //TODO need to support mapping morphing, copying common settings over + //to the new mapping. This can't be done in the same was as XmlAttributeMapping + //since we don't know all the possible mapping types + } + + public IJavaAttributeMapping getMapping() { + return getSpecifiedMapping() != null ? getSpecifiedMapping() : getDefaultMapping(); + } + + public String getName() { + return getAttribute().attributeName(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__DEFAULT_MAPPING : + return basicSetDefaultMapping(null, msgs); + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__SPECIFIED_MAPPING : + return basicSetSpecifiedMapping(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 JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__MAPPING_KEY : + return getMappingKey(); + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__DEFAULT_MAPPING : + return getDefaultMapping(); + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__SPECIFIED_MAPPING : + return getSpecifiedMapping(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__DEFAULT_MAPPING : + setDefaultMapping((IJavaAttributeMapping) newValue); + return; + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__SPECIFIED_MAPPING : + setSpecifiedMapping((IJavaAttributeMapping) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__DEFAULT_MAPPING : + setDefaultMapping((IJavaAttributeMapping) null); + return; + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__SPECIFIED_MAPPING : + setSpecifiedMapping((IJavaAttributeMapping) null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__MAPPING_KEY : + return MAPPING_KEY_EDEFAULT == null ? mappingKey != null : !MAPPING_KEY_EDEFAULT.equals(mappingKey); + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__DEFAULT_MAPPING : + return defaultMapping != null; + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__SPECIFIED_MAPPING : + return specifiedMapping != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) { + if (baseClass == IJpaContentNode.class) { + switch (derivedFeatureID) { + default : + return -1; + } + } + if (baseClass == IPersistentAttribute.class) { + switch (derivedFeatureID) { + case JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__MAPPING_KEY : + return JpaCorePackage.IPERSISTENT_ATTRIBUTE__MAPPING_KEY; + default : + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) { + if (baseClass == IJpaContentNode.class) { + switch (baseFeatureID) { + default : + return -1; + } + } + if (baseClass == IPersistentAttribute.class) { + switch (baseFeatureID) { + case JpaCorePackage.IPERSISTENT_ATTRIBUTE__MAPPING_KEY : + return JpaJavaPackage.JAVA_PERSISTENT_ATTRIBUTE__MAPPING_KEY; + default : + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (mappingKey: "); + result.append(mappingKey); + result.append(')'); + return result.toString(); + } + + public IPersistentType getPersistentType() { + return (IPersistentType) this.eContainer(); + } + + public ITypeMapping typeMapping() { + return this.getPersistentType().getMapping(); + } + + private IJavaAttributeMappingProvider attributeMappingProviderFor(String attributeMappingKey) { + for (IJavaAttributeMappingProvider provider : this.attributeMappingProviders) { + if (provider.key() == attributeMappingKey) { + return provider; + } + } + throw new IllegalArgumentException("Unsupported attribute mapping key: " + attributeMappingKey); + } + + private DeclarationAnnotationAdapter annotationAdapterForAttributeMappingKey(String attributeMappingKey) { + return this.attributeMappingProviderFor(attributeMappingKey).declarationAnnotationAdapter(); + } + + public Iterator<String> candidateMappingKeys() { + return new TransformationIterator<IJavaAttributeMappingProvider, String>(new ArrayIterator<IJavaAttributeMappingProvider>(this.attributeMappingProviders)) { + protected String transform(IJavaAttributeMappingProvider next) { + return next.key(); + } + }; + } + + public Object getId() { + return IJavaContentNodes.PERSISTENT_ATTRIBUTE_ID; + } + + public Attribute getAttribute() { + return this.attribute; + } + + public ITextRange getTextRange() { + return this.attribute.textRange(); + } + + public boolean isFor(IMember member) { + return this.attribute.wraps(member); + } + + public void updateFromJava(CompilationUnit astRoot) { + String jpaKey = null; + if (this.specifiedMapping != null) { + jpaKey = this.specifiedMapping.getKey(); + } + String javaKey = this.javaAttributeMappingKey(astRoot); + if (javaKey == null) { // no annotation + if (this.specifiedMapping != null) { + setSpecifiedMapping(null); + } + } + else if (jpaKey != javaKey) { + this.createAndSetMappingFromJava(javaKey); + } + if (getMapping() != null) { + getMapping().updateFromJava(astRoot); + } + } + + private void createAndSetMappingFromJava(String key) { + this.setSpecifiedMappingGen(this.buildMapping(key)); + this.specifiedMapping.initialize(); + this.setMappingKeyInternal(this.specifiedMapping.getKey()); + } + + //A null key means there is no "mapping" annotation on the attribute. + //In this case check the attributeMappingProviders for one that the defaultApplies + //and create the mapping. If the key is not null then create the mapping + //based on the appropriate provider, otherwise return the a nullAttributeMapping + private IJavaAttributeMapping buildMapping(String key) { + if (key == null) { + return null; + } + for (IJavaAttributeMappingProvider provider : this.attributeMappingProviders) { + if (provider.key() == key) { + return provider.buildMapping(this.attribute); + } + } + return this.nullAttributeMappingProvider.buildMapping(this.attribute); + } + + private String javaAttributeMappingKey(CompilationUnit astRoot) { + for (IJavaAttributeMappingProvider provider : this.attributeMappingProviders) { + if (this.attribute.containsAnnotation(provider.declarationAnnotationAdapter(), astRoot)) { + return provider.key(); + } + } + return null; + } + + public String defaultKey() { + if (this.defaultMapping != null) { + return this.defaultMapping.getKey(); + } + return null; + } + + public String primaryKeyColumnName() { + if (getMapping() != null) { + return getMapping().primaryKeyColumnName(); + } + return null; + } + + public boolean isAttributeMappingDefault() { + return this.specifiedMapping == null; + } + + public List<String> candidateValuesFor(int pos, CompilationUnit astRoot) { + return Collections.emptyList(); + } + + public void refreshDefaults(DefaultsContext defaultsContext) { + for (IJavaAttributeMappingProvider provider : this.attributeMappingProviders) { + if (provider.defaultApplies(this.attribute, defaultsContext)) { + if (getDefaultMapping() != null) { + if (getDefaultMapping().getKey() == provider.key()) { + return; + } + } + setDefaultMapping(provider.buildMapping(this.attribute)); + getDefaultMapping().updateFromJava(getAttribute().astRoot()); + if (getSpecifiedMapping() == null) { + setMappingKeyInternal(getDefaultMapping().getKey()); + } + return; + } + } + setDefaultMapping(this.nullAttributeMappingProvider.buildMapping(this.attribute)); + getDefaultMapping().updateFromJava(getAttribute().astRoot()); + if (getSpecifiedMapping() == null) { + setMappingKeyInternal(getDefaultMapping().getKey()); + } + } +} // JavaPersistentAttribute diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentType.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentType.java new file mode 100644 index 0000000000..9f9f9ef211 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentType.java @@ -0,0 +1,917 @@ +/******************************************************************************* + * Copyright (c) 2006, 2007 Oracle. 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: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.core.internal.content.java; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +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; |