460339: Consume serialization from Sphinx Project
removed org.eclipse.rmf.serialization plugin which is now replaced by
org.eclipse.sphinx.emf.serialization
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=460339
diff --git a/org.eclipse.rmf.serialization/.classpath b/org.eclipse.rmf.serialization/.classpath
deleted file mode 100644
index 472ee29..0000000
--- a/org.eclipse.rmf.serialization/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.rmf.serialization/.gitignore b/org.eclipse.rmf.serialization/.gitignore
deleted file mode 100644
index 70db735..0000000
--- a/org.eclipse.rmf.serialization/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-target
-work
\ No newline at end of file
diff --git a/org.eclipse.rmf.serialization/.project b/org.eclipse.rmf.serialization/.project
deleted file mode 100644
index 3a80015..0000000
--- a/org.eclipse.rmf.serialization/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.rmf.serialization</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/org.eclipse.rmf.serialization/.settings/org.eclipse.core.resources.prefs b/org.eclipse.rmf.serialization/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 845273e..0000000
--- a/org.eclipse.rmf.serialization/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-eclipse.preferences.version=1
-encoding//design/default.ecore=UTF-8
-encoding//design/resources.ecore_diagram=UTF-8
-encoding/<project>=UTF-8
diff --git a/org.eclipse.rmf.serialization/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.rmf.serialization/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 54de855..0000000
--- a/org.eclipse.rmf.serialization/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,372 +0,0 @@
-#Thu Apr 12 17:16:42 CEST 2012
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-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.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=150
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/org.eclipse.rmf.serialization/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.rmf.serialization/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 94bcd86..0000000
--- a/org.eclipse.rmf.serialization/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,120 +0,0 @@
-#Wed Apr 04 18:47:36 CEST 2012
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=true
-cleanup.correct_indentation=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=true
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=false
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=false
-cleanup.remove_unused_private_types=false
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=true
-cleanup.use_this_for_non_static_field_access=true
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=true
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=_Unmanaged profile 'RMF'
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_RMF
-formatter_settings_version=12
-org.eclipse.jdt.ui.exception.name=ex
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * <copyright>\n * \n * Copyright (c) {contributing company name} and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n * \n * Contributors\: \n * {contributing company name} - Initial API and implementation\n * \n * </copyright>\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/*\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=false
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=false
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=false
-sp_cleanup.remove_unused_private_types=false
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=true
-sp_cleanup.use_this_for_non_static_field_access=true
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=true
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.rmf.serialization/.settings/org.eclipse.ltk.core.refactoring.prefs b/org.eclipse.rmf.serialization/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index ac5f8a2..0000000
--- a/org.eclipse.rmf.serialization/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 04 18:47:53 CEST 2012
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/org.eclipse.rmf.serialization/.settings/org.eclipse.pde.prefs b/org.eclipse.rmf.serialization/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 546490c..0000000
--- a/org.eclipse.rmf.serialization/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,33 +0,0 @@
-#Wed Apr 04 18:47:36 CEST 2012
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-eclipse.preferences.version=1
diff --git a/org.eclipse.rmf.serialization/.settings/org.eclipse.wst.xml.core.prefs b/org.eclipse.rmf.serialization/.settings/org.eclipse.wst.xml.core.prefs
deleted file mode 100644
index 2f885f5..0000000
--- a/org.eclipse.rmf.serialization/.settings/org.eclipse.wst.xml.core.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Wed Apr 04 18:48:00 CEST 2012
-attributeHasNoValue=2
-eclipse.preferences.version=1
-endTagWithAttributes=2
-honourAllSchemaLocations=true
-indicateNoGrammar=1
-indiciateNoDocumentElement=-1
-markupValidation=true
-missingClosingBracket=2
-missingClosingQuote=2
-missingEndTag=2
-missingQuotes=2
-missingStartTag=2
-missingTagName=2
-namespaceInPITarget=2
-whitespaceAtStart=2
-whitespaceBeforeTagName=2
-xinclude=true
diff --git a/org.eclipse.rmf.serialization/META-INF/MANIFEST.MF b/org.eclipse.rmf.serialization/META-INF/MANIFEST.MF
deleted file mode 100644
index b2da13f..0000000
--- a/org.eclipse.rmf.serialization/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.rmf.serialization;singleton:=true
-Bundle-Version: 0.12.0.qualifier
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime,
- org.apache.xerces,
- org.eclipse.emf.ecore;bundle-version="2.7.0",
- org.eclipse.emf.ecore.xmi;bundle-version="2.7.0"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.rmf.internal.serialization,
- org.eclipse.rmf.serialization
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
diff --git a/org.eclipse.rmf.serialization/about.html b/org.eclipse.rmf.serialization/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.rmf.serialization/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>June 5, 2006</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, "Program" will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party ("Redistributor") and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.rmf.serialization/build.properties b/org.eclipse.rmf.serialization/build.properties
deleted file mode 100644
index fe0783d..0000000
--- a/org.eclipse.rmf.serialization/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2014 itemis AG and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Mark Broerkens (itemis AG) - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.properties,\
- epl-v10.html,\
- notice.html,\
- about.html
diff --git a/org.eclipse.rmf.serialization/epl-v10.html b/org.eclipse.rmf.serialization/epl-v10.html
deleted file mode 100644
index 3998fce..0000000
--- a/org.eclipse.rmf.serialization/epl-v10.html
+++ /dev/null
@@ -1,261 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Public License - Version 1.0</title>
-<style type="text/css">
- body {
- size: 8.5in 11.0in;
- margin: 0.25in 0.5in 0.25in 0.5in;
- tab-interval: 0.5in;
- }
- p {
- margin-left: auto;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
- }
- p.list {
- margin-left: 0.5in;
- margin-top: 0.05em;
- margin-bottom: 0.05em;
- }
- </style>
-
-</head>
-
-<body lang="EN-US">
-
-<h2>Eclipse Public License - v 1.0</h2>
-
-<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
-AGREEMENT.</p>
-
-<p><b>1. DEFINITIONS</b></p>
-
-<p>"Contribution" means:</p>
-
-<p class="list">a) in the case of the initial Contributor, the initial
-code and documentation distributed under this Agreement, and</p>
-<p class="list">b) in the case of each subsequent Contributor:</p>
-<p class="list">i) changes to the Program, and</p>
-<p class="list">ii) additions to the Program;</p>
-<p class="list">where such changes and/or additions to the Program
-originate from and are distributed by that particular Contributor. A
-Contribution 'originates' from a Contributor if it was added to the
-Program by such Contributor itself or anyone acting on such
-Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in
-conjunction with the Program under their own license agreement, and (ii)
-are not derivative works of the Program.</p>
-
-<p>"Contributor" means any person or entity that distributes
-the Program.</p>
-
-<p>"Licensed Patents" mean patent claims licensable by a
-Contributor which are necessarily infringed by the use or sale of its
-Contribution alone or when combined with the Program.</p>
-
-<p>"Program" means the Contributions distributed in accordance
-with this Agreement.</p>
-
-<p>"Recipient" means anyone who receives the Program under
-this Agreement, including all Contributors.</p>
-
-<p><b>2. GRANT OF RIGHTS</b></p>
-
-<p class="list">a) Subject to the terms of this Agreement, each
-Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free copyright license to reproduce, prepare derivative works
-of, publicly display, publicly perform, distribute and sublicense the
-Contribution of such Contributor, if any, and such derivative works, in
-source code and object code form.</p>
-
-<p class="list">b) Subject to the terms of this Agreement, each
-Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free patent license under Licensed Patents to make, use, sell,
-offer to sell, import and otherwise transfer the Contribution of such
-Contributor, if any, in source code and object code form. This patent
-license shall apply to the combination of the Contribution and the
-Program if, at the time the Contribution is added by the Contributor,
-such addition of the Contribution causes such combination to be covered
-by the Licensed Patents. The patent license shall not apply to any other
-combinations which include the Contribution. No hardware per se is
-licensed hereunder.</p>
-
-<p class="list">c) Recipient understands that although each Contributor
-grants the licenses to its Contributions set forth herein, no assurances
-are provided by any Contributor that the Program does not infringe the
-patent or other intellectual property rights of any other entity. Each
-Contributor disclaims any liability to Recipient for claims brought by
-any other entity based on infringement of intellectual property rights
-or otherwise. As a condition to exercising the rights and licenses
-granted hereunder, each Recipient hereby assumes sole responsibility to
-secure any other intellectual property rights needed, if any. For
-example, if a third party patent license is required to allow Recipient
-to distribute the Program, it is Recipient's responsibility to acquire
-that license before distributing the Program.</p>
-
-<p class="list">d) Each Contributor represents that to its knowledge it
-has sufficient copyright rights in its Contribution, if any, to grant
-the copyright license set forth in this Agreement.</p>
-
-<p><b>3. REQUIREMENTS</b></p>
-
-<p>A Contributor may choose to distribute the Program in object code
-form under its own license agreement, provided that:</p>
-
-<p class="list">a) it complies with the terms and conditions of this
-Agreement; and</p>
-
-<p class="list">b) its license agreement:</p>
-
-<p class="list">i) effectively disclaims on behalf of all Contributors
-all warranties and conditions, express and implied, including warranties
-or conditions of title and non-infringement, and implied warranties or
-conditions of merchantability and fitness for a particular purpose;</p>
-
-<p class="list">ii) effectively excludes on behalf of all Contributors
-all liability for damages, including direct, indirect, special,
-incidental and consequential damages, such as lost profits;</p>
-
-<p class="list">iii) states that any provisions which differ from this
-Agreement are offered by that Contributor alone and not by any other
-party; and</p>
-
-<p class="list">iv) states that source code for the Program is available
-from such Contributor, and informs licensees how to obtain it in a
-reasonable manner on or through a medium customarily used for software
-exchange.</p>
-
-<p>When the Program is made available in source code form:</p>
-
-<p class="list">a) it must be made available under this Agreement; and</p>
-
-<p class="list">b) a copy of this Agreement must be included with each
-copy of the Program.</p>
-
-<p>Contributors may not remove or alter any copyright notices contained
-within the Program.</p>
-
-<p>Each Contributor must identify itself as the originator of its
-Contribution, if any, in a manner that reasonably allows subsequent
-Recipients to identify the originator of the Contribution.</p>
-
-<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
-
-<p>Commercial distributors of software may accept certain
-responsibilities with respect to end users, business partners and the
-like. While this license is intended to facilitate the commercial use of
-the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create
-potential liability for other Contributors. Therefore, if a Contributor
-includes the Program in a commercial product offering, such Contributor
-("Commercial Contributor") hereby agrees to defend and
-indemnify every other Contributor ("Indemnified Contributor")
-against any losses, damages and costs (collectively "Losses")
-arising from claims, lawsuits and other legal actions brought by a third
-party against the Indemnified Contributor to the extent caused by the
-acts or omissions of such Commercial Contributor in connection with its
-distribution of the Program in a commercial product offering. The
-obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In
-order to qualify, an Indemnified Contributor must: a) promptly notify
-the Commercial Contributor in writing of such claim, and b) allow the
-Commercial Contributor to control, and cooperate with the Commercial
-Contributor in, the defense and any related settlement negotiations. The
-Indemnified Contributor may participate in any such claim at its own
-expense.</p>
-
-<p>For example, a Contributor might include the Program in a commercial
-product offering, Product X. That Contributor is then a Commercial
-Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance
-claims and warranties are such Commercial Contributor's responsibility
-alone. Under this section, the Commercial Contributor would have to
-defend claims against the other Contributors related to those
-performance claims and warranties, and if a court requires any other
-Contributor to pay any damages as a result, the Commercial Contributor
-must pay those damages.</p>
-
-<p><b>5. NO WARRANTY</b></p>
-
-<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
-PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
-ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
-OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and
-distributing the Program and assumes all risks associated with its
-exercise of rights under this Agreement , including but not limited to
-the risks and costs of program errors, compliance with applicable laws,
-damage to or loss of data, programs or equipment, and unavailability or
-interruption of operations.</p>
-
-<p><b>6. DISCLAIMER OF LIABILITY</b></p>
-
-<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
-NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
-WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
-DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
-HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
-
-<p><b>7. GENERAL</b></p>
-
-<p>If any provision of this Agreement is invalid or unenforceable under
-applicable law, it shall not affect the validity or enforceability of
-the remainder of the terms of this Agreement, and without further action
-by the parties hereto, such provision shall be reformed to the minimum
-extent necessary to make such provision valid and enforceable.</p>
-
-<p>If Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging that the
-Program itself (excluding combinations of the Program with other
-software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the
-date such litigation is filed.</p>
-
-<p>All Recipient's rights under this Agreement shall terminate if it
-fails to comply with any of the material terms or conditions of this
-Agreement and does not cure such failure in a reasonable period of time
-after becoming aware of such noncompliance. If all Recipient's rights
-under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive.</p>
-
-<p>Everyone is permitted to copy and distribute copies of this
-Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The
-Agreement Steward reserves the right to publish new versions (including
-revisions) of this Agreement from time to time. No one other than the
-Agreement Steward has the right to modify this Agreement. The Eclipse
-Foundation is the initial Agreement Steward. The Eclipse Foundation may
-assign the responsibility to serve as the Agreement Steward to a
-suitable separate entity. Each new version of the Agreement will be
-given a distinguishing version number. The Program (including
-Contributions) may always be distributed subject to the version of the
-Agreement under which it was received. In addition, after a new version
-of the Agreement is published, Contributor may elect to distribute the
-Program (including its Contributions) under the new version. Except as
-expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
-rights or licenses to the intellectual property of any Contributor under
-this Agreement, whether expressly, by implication, estoppel or
-otherwise. All rights in the Program not expressly granted under this
-Agreement are reserved.</p>
-
-<p>This Agreement is governed by the laws of the State of New York and
-the intellectual property laws of the United States of America. No party
-to this Agreement will bring a legal action under this Agreement more
-than one year after the cause of action arose. Each party waives its
-rights to a jury trial in any resulting litigation.</p>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.rmf.serialization/notice.html b/org.eclipse.rmf.serialization/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.rmf.serialization/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
- (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
- CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
- OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
- NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
- CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
- ("EPL"). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
- For purposes of the EPL, "Program" will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
- repository ("Repository") in software modules ("Modules") and made available as downloadable archives ("Downloads").</p>
-
-<ul>
- <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").</li>
- <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".</li>
- <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins
- and/or Fragments associated with that Feature.</li>
- <li>Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and
-Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
- <li>The top-level (root) directory</li>
- <li>Plug-in and Fragment directories</li>
- <li>Inside Plug-ins and Fragments packaged as JARs</li>
- <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
- <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license ("Feature Update License") during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
- <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
- <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
- <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
- <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
- <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
- Update Manager ("Provisioning Technology") for the purpose of allowing users to install software, documentation, information and/or
- other materials (collectively "Installable Software"). This capability is provided with the intent of allowing such users to
- install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
- href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
- ("Specification").</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
- applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
- in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
- Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
- <li>A series of actions may occur ("Provisioning Process") in which a user may execute the Provisioning Technology
- on a machine ("Target Machine") with the intent of installing, extending or updating the functionality of an Eclipse-based
- product.</li>
- <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
- accessed and copied to the Target Machine.</li>
- <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
- Software ("Installable Software Agreement") and such Installable Software Agreement shall be accessed from the Target
- Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
- the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
- indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
- another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
- possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.rmf.serialization/plugin.properties b/org.eclipse.rmf.serialization/plugin.properties
deleted file mode 100644
index 08b1475..0000000
--- a/org.eclipse.rmf.serialization/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2014 itemis AG and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Mark Broerkens (itemis AG) - initial API and implementation
-###############################################################################
-
-pluginName = RMF Core Serialization (Incubation)
-providerName = Eclipse Modeling Project
diff --git a/org.eclipse.rmf.serialization/pom.xml b/org.eclipse.rmf.serialization/pom.xml
deleted file mode 100644
index a556289..0000000
--- a/org.eclipse.rmf.serialization/pom.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- <copyright>
-Copyright (c) 2012 itemis AG.
-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:
- Mark Broerkens - initial API and implementation
- </copyright>
-
--->
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.eclipse.rmf</groupId>
- <artifactId>org.eclipse.rmf.releng</artifactId>
- <version>0.12.0-SNAPSHOT</version>
- <relativePath>../org.eclipse.rmf.releng/pom.xml</relativePath>
- </parent>
- <artifactId>org.eclipse.rmf.serialization</artifactId>
- <packaging>eclipse-plugin</packaging>
- <groupId>org.eclipse.rmf.plugins</groupId>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingHandler.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingHandler.java
deleted file mode 100644
index 3058ea0..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingHandler.java
+++ /dev/null
@@ -1,1656 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-
-package org.eclipse.rmf.internal.serialization;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.apache.xerces.impl.Constants;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EFactory;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.resource.URIConverter;
-import org.eclipse.emf.ecore.util.ExtendedMetaData;
-import org.eclipse.emf.ecore.xmi.ClassNotFoundException;
-import org.eclipse.emf.ecore.xmi.FeatureNotFoundException;
-import org.eclipse.emf.ecore.xmi.XMLHelper;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.emf.ecore.xmi.impl.SAXXMLHandler;
-import org.eclipse.emf.ecore.xml.type.AnyType;
-import org.eclipse.rmf.serialization.XMLPersistenceMappingExtendedMetaData;
-import org.eclipse.rmf.serialization.XMLPersistenceMappingExtendedMetaDataImpl;
-import org.eclipse.rmf.serialization.XMLPersistenceMappingResource;
-
-// TODO: add javadoc for each state chart
-// TODO: add pool that reuses loadpatterns (reduces GC overhead)
-// TODO: assert that extended metadata is available.
-// TODO: assert that xmlMap is never used
-// TODO: check for correct handling of types, object stacks.
-// TODO: consider using symboltyble and replace .equals by ==
-// TODO: create assertions in case the Handler is not used corretly. e.g. extennded metadata has incorrect format
-// TODO: log info if options are used that are not supported
-public class XMLPersistenceMappingHandler extends SAXXMLHandler {
- String xsiType;
-
- XMLPersistenceMappingExtendedMetaData xmlPersistenceMappingExtendedMetaData = null;
- MyStack<LoadPattern> loadPatternStack = null;
-
- IProgressMonitor progressMonitor = null;
- int progressMonitorChunksRead = 0;
- int progressMonitorChunkSize = 2048;
- int progressMonitorLastStartInChunk = 0;
- int progressMonitorNumberOfChunksPerUpdate = 500;
- private Set<String> progressReportedNamespaces = new HashSet<String>();
-
- interface LoadPattern {
- public static int STATE_READY = 0;
- public static int STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT = 1;
- public static int STATE_HAS_SEEN_START_FEATURE_ELEMENT = 2;
- public static int STATE_HAS_SEEN_START_CLASSIFIER_WRAPPER_ELEMENT = 3;
- public static int STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT = 4;
- public static int STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT = 5;
- public static int STATE_HAS_SEEN_END_FEATURE_ELEMENT = 6;
- public static int STATE_HAS_SEEN_END_CLASSIFIER_WRAPPER_ELEMENT = 7;
- public static int STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT = 8;
- public static int STATE_DELEGATE_CHILD_NEEDED = -1;
- public static int STATE_DELEGATE_PARENT_NEEDED = -2;
- public static int STATE_DELEGATE_SIBLING_NEEDED = -3;
-
- public static int STATE_UNEXPECTED_ELEMENT = -100;
-
- void startElement(String namespace, String xmlName);
-
- void endElement(String namespace, String xmlName);
-
- boolean needsDelegateChild();
-
- boolean needsDelegateSibling();
-
- boolean needsDelegateParent();
-
- }
-
- abstract class AbstractLoadPatternImpl implements LoadPattern {
- final EObject anchorEObject;
- final EStructuralFeature feature;
- int currentState;
-
- public AbstractLoadPatternImpl(EObject anchorEObject, EStructuralFeature feature) {
- this.anchorEObject = anchorEObject;
- this.feature = feature;
- currentState = STATE_READY;
- }
-
- public boolean needsDelegateChild() {
- return STATE_DELEGATE_CHILD_NEEDED == currentState;
- }
-
- public boolean needsDelegateParent() {
- return STATE_DELEGATE_PARENT_NEEDED == currentState;
- }
-
- public boolean needsDelegateSibling() {
- return STATE_DELEGATE_SIBLING_NEEDED == currentState;
- }
-
- }
-
- class LoadPatternEReferenceContained0001Impl extends AbstractLoadPatternImpl {
- String classifierName = null;
-
- public LoadPatternEReferenceContained0001Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
- classifierName = xmlName;
- createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- currentState = STATE_DELEGATE_CHILD_NEEDED;
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- if (xmlName.equals(classifierName)) {
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
- createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- // this happens if there are no nested structures
- handleEndCreateObjectElement();
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- // this happens if there are nested structures
- handleEndCreateObjectElement();
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternEReferenceContained0100Impl extends AbstractLoadPatternImpl {
- String featureName;
-
- public LoadPatternEReferenceContained0100Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- featureName = xmlName;
- // This puts the newly created eObject onto the objects stack
- createObject(anchorEObject, feature);
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- currentState = STATE_DELEGATE_CHILD_NEEDED;
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- if (featureName.equals(xmlName)) {
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- createObject(anchorEObject, feature);
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
-
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- handleEndCreateObjectElement();
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- handleEndCreateObjectElement();
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternEReferenceContained0101Impl extends AbstractLoadPatternImpl {
- String featureName = null;
-
- public LoadPatternEReferenceContained0101Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- featureName = xmlName;
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
-
- createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- currentState = STATE_DELEGATE_CHILD_NEEDED;
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- // for robustness: we allow multiple classiefier elements in a feature element. a warning should be
- // created
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
- createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- if (featureName.equals(xmlName)) {
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- // only the feature element was available => consider it as a null value;
-
- if (feature.isMany()) {
- @SuppressWarnings("unchecked")
- EList<EObject> values = (EList<EObject>) anchorEObject.eGet(feature);
- values.clear();
- } else {
- setFeatureValue(anchorEObject, feature, null);
- }
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- handleEndCreateObjectElement();
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- handleEndCreateObjectElement();
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternEReferenceContained1001Impl extends AbstractLoadPatternImpl {
- String featureWrapperName = null;
-
- public LoadPatternEReferenceContained1001Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- featureWrapperName = xmlName;
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
- createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- currentState = STATE_DELEGATE_CHILD_NEEDED;
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
- createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- if (featureWrapperName.equals(xmlName)) {
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- // only the feature element was available => consider it as a null value;
- if (feature.isMany()) {
- @SuppressWarnings("unchecked")
- EList<EObject> values = (EList<EObject>) anchorEObject.eGet(feature);
- values.clear();
- } else {
- setFeatureValue(anchorEObject, feature, null);
- }
- currentState = STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- handleEndCreateObjectElement();
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- currentState = STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- handleEndCreateObjectElement();
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- /**
- * This class implements.... <img src="doc-files/LoadPatternEAttributeContained0100.png">
- */
- class LoadPatternEAttributeContained0100Impl extends AbstractLoadPatternImpl {
- String featureName = null;
- int depthsOfUnknownElements = 0;
- String value = null;
-
- public LoadPatternEAttributeContained0100Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- featureName = xmlName;
- types.push(feature);
- if (!isNull()) {
- text = new StringBuffer();
- }
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- currentState = STATE_UNEXPECTED_ELEMENT;
- depthsOfUnknownElements = 1;
- types.push(ERROR_TYPE);
- error(new FeatureNotFoundException(xmlName, null, getLocation(), getLineNumber(), getColumnNumber()));
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements++;
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- if (featureName.equals(xmlName)) {
- text = new StringBuffer(); // record all strings
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- // wait to read contained text
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
-
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- if (isNull()) {
- setFeatureValue(anchorEObject, feature, null);
- } else {
- setFeatureValue(anchorEObject, feature, text == null ? null : text.toString());
- }
- text = null;
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements--;
- if (0 > depthsOfUnknownElements) {
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- }
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternEAttributeContained1000Impl extends AbstractLoadPatternImpl {
- String featureWrapperName = null;
- int depthsOfUnknownElements = 0;
-
- public LoadPatternEAttributeContained1000Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- featureWrapperName = xmlName;
- text = new StringBuffer(); // record all strings
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_UNEXPECTED_ELEMENT;
- depthsOfUnknownElements = 1;
- types.push(ERROR_TYPE);
- error(new FeatureNotFoundException(xmlName, null, getLocation(), getLineNumber(), getColumnNumber()));
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements++;
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- if (featureWrapperName.equals(xmlName)) {
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- text = new StringBuffer(); // record all strings
- // wait to read contained text
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- if (null == text) {
- setFeatureValue(anchorEObject, feature, null);
- } else {
- String svalues = text.toString();
- StringTokenizer st = new StringTokenizer(svalues);
- String svalue;
- while (st.hasMoreTokens()) {
- svalue = st.nextToken();
- setFeatureValue(anchorEObject, feature, svalue);
- }
- }
- text = null;
- currentState = STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements--;
- if (0 > depthsOfUnknownElements) {
- currentState = STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT;
- }
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternEAttributeContained1100Impl extends AbstractLoadPatternImpl {
- String featureWrapperName = null;
- int depthsOfUnknownElements = 0;
-
- public LoadPatternEAttributeContained1100Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- featureWrapperName = xmlName;
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- text = new StringBuffer(); // record all strings
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- currentState = STATE_UNEXPECTED_ELEMENT;
- depthsOfUnknownElements = 1;
- types.push(ERROR_TYPE);
- error(new FeatureNotFoundException(xmlName, null, getLocation(), getLineNumber(), getColumnNumber()));
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- if (featureWrapperName == xmlName) {
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- text = new StringBuffer(); // record all strings
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements++;
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_READY;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- setFeatureValue(anchorEObject, feature, text == null ? null : text.toString());
- text = null;
- currentState = STATE_READY;
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- currentState = STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements--;
- if (0 > depthsOfUnknownElements) {
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- }
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternEReferenceReferenced0100Impl extends AbstractLoadPatternImpl {
- String featureName = null;
- InternalEObject proxy;
- int depthsOfUnknownElements = 0;
-
- public LoadPatternEReferenceReferenced0100Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- createObject(anchorEObject, feature);
- proxy = (InternalEObject) objects.peekEObject();
- text = new StringBuffer(); // record all strings
- featureName = xmlName;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- currentState = STATE_UNEXPECTED_ELEMENT;
- depthsOfUnknownElements = 1;
- types.push(ERROR_TYPE);
- error(new FeatureNotFoundException(xmlName, null, getLocation(), getLineNumber(), getColumnNumber()));
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- if (featureName.equals(xmlName)) {
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- createObject(anchorEObject, feature);
- proxy = (InternalEObject) objects.peekEObject();
- text = new StringBuffer(); // record all strings
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements++;
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- if (null != proxy) {
- handleProxy(proxy, resourceURI.toString() + "#" + text.toString()); //$NON-NLS-1$
- objects.pop();
- } else {
- // NOP: error already handled during startElement()
- }
- text = null;
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements--;
- if (0 > depthsOfUnknownElements) {
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- }
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternEReferenceReferenced0101Impl extends AbstractLoadPatternImpl {
- String featureName = null;
- InternalEObject proxy = null;
- int depthsOfUnknownElements = 0;
-
- public LoadPatternEReferenceReferenced0101Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- featureName = xmlName;
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
- proxy = (InternalEObject) createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- text = new StringBuffer(); // record all strings
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- currentState = STATE_UNEXPECTED_ELEMENT;
- depthsOfUnknownElements = 1;
- types.push(ERROR_TYPE);
- error(new FeatureNotFoundException(xmlName, null, getLocation(), getLineNumber(), getColumnNumber()));
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- // for robustness: we allow multiple classifier elements in a feature element. a warning should be
- // created
- proxy = (InternalEObject) createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
- text = new StringBuffer(); // record all strings
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- if (featureName.equals(xmlName)) {
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements++;
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- if (null != proxy) {
- handleProxy(proxy, resourceURI.toString() + "#" + text.toString()); //$NON-NLS-1$
- objects.pop();
- } else {
- // NOP: error already handled during startElement
- }
- text = null;
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements--;
- if (0 > depthsOfUnknownElements) {
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- }
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternEReferenceReferenced1001Impl extends AbstractLoadPatternImpl {
- InternalEObject proxy = null;
- String featureWrapperName = null;
- int depthsOfUnknownElements = 0;
-
- public LoadPatternEReferenceReferenced1001Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- featureWrapperName = xmlName;
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
- proxy = (InternalEObject) createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- text = new StringBuffer(); // record all strings
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- currentState = STATE_UNEXPECTED_ELEMENT;
- depthsOfUnknownElements = 1;
- types.push(ERROR_TYPE);
- error(new FeatureNotFoundException(xmlName, null, getLocation(), getLineNumber(), getColumnNumber()));
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- // for robustness: we allow multiple classiefier elements in a feature element. a warning should be
- // created
- currentState = STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT;
- proxy = (InternalEObject) createObjectFromNamespaceAndType(anchorEObject, feature, namespace, xmlName);
- text = new StringBuffer(); // record all strings
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- if (featureWrapperName.equals(xmlName)) {
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements++;
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- // only the feature element was available => consider it as a null value;
- if (feature.isMany()) {
- @SuppressWarnings("unchecked")
- EList<EObject> values = (EList<EObject>) anchorEObject.eGet(feature);
- values.clear();
- } else {
- setFeatureValue(anchorEObject, feature, null);
- }
- currentState = STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_CLASSIFIER_ELEMENT:
- if (null != proxy) {
- objects.pop();
- handleProxy(proxy, resourceURI.toString() + "#" + text.toString()); //$NON-NLS-1$
- }
-
- text = null;
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT:
- currentState = STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements--;
- if (0 > depthsOfUnknownElements) {
- currentState = STATE_HAS_SEEN_END_CLASSIFIER_ELEMENT;
- }
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternEReferenceReferenced1100Impl extends AbstractLoadPatternImpl {
- String featureWrapperName = null;
- EObject proxy;
- int depthsOfUnknownElements = 0;
-
- public LoadPatternEReferenceReferenced1100Impl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- featureWrapperName = xmlName;
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- createObject(anchorEObject, feature);
- text = new StringBuffer(); // record all strings
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- currentState = STATE_UNEXPECTED_ELEMENT;
- depthsOfUnknownElements = 1;
- types.push(ERROR_TYPE);
- error(new FeatureNotFoundException(xmlName, null, getLocation(), getLineNumber(), getColumnNumber()));
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- if (featureWrapperName.equals(xmlName)) {
- currentState = STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT;
- } else {
- currentState = STATE_DELEGATE_SIBLING_NEEDED;
- }
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- currentState = STATE_HAS_SEEN_START_FEATURE_ELEMENT;
- createObject(anchorEObject, feature);
- text = new StringBuffer(); // record all strings
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_START_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_READY;
- break;
- case STATE_HAS_SEEN_START_FEATURE_ELEMENT:
- if (null != proxy) {
- handleProxy((InternalEObject) objects.peekEObject(), resourceURI.toString() + "#" + text.toString()); //$NON-NLS-1$
- objects.pop();
- }
- text = null;
- currentState = STATE_READY;
- break;
- case STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_HAS_SEEN_END_FEATURE_ELEMENT:
- currentState = STATE_HAS_SEEN_END_FEATURE_WRAPPER_ELEMENT;
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements--;
- if (0 > depthsOfUnknownElements) {
- currentState = STATE_HAS_SEEN_END_FEATURE_ELEMENT;
- }
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- class LoadPatternUnknownImpl extends AbstractLoadPatternImpl {
- int depthsOfUnknownElements = 0;
-
- public LoadPatternUnknownImpl(EObject anchorEObject, EStructuralFeature feature) {
- super(anchorEObject, feature);
- }
-
- public void startElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_UNEXPECTED_ELEMENT;
- depthsOfUnknownElements = 1;
- types.push(ERROR_TYPE);
- error(new FeatureNotFoundException(xmlName, null, getLocation(), getLineNumber(), getColumnNumber()));
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements++;
- break;
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- public void endElement(String namespace, String xmlName) {
- switch (currentState) {
- case STATE_READY:
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- break;
- case STATE_UNEXPECTED_ELEMENT:
- depthsOfUnknownElements--;
- if (0 > depthsOfUnknownElements) {
- currentState = STATE_DELEGATE_PARENT_NEEDED;
- }
- break;
- case STATE_DELEGATE_CHILD_NEEDED:
- case STATE_DELEGATE_SIBLING_NEEDED:
- case STATE_DELEGATE_PARENT_NEEDED:
- assert false : "handshake error: the dispatcher should have switched to another load pattern instance (state=" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- default:
- assert false : "state machine error: unsupported state (state =" + currentState + ", startElement)"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- public XMLPersistenceMappingHandler(XMLResource xmlResource, XMLHelper helper, Map<?, ?> options) {
- super(xmlResource, helper, options);
-
- // set extended meta data
- Object extendedMetaDataOption = options.get(XMLResource.OPTION_EXTENDED_META_DATA);
- if (null != extendedMetaDataOption && extendedMetaDataOption instanceof XMLPersistenceMappingExtendedMetaData) {
- xmlPersistenceMappingExtendedMetaData = (XMLPersistenceMappingExtendedMetaData) options.get(XMLResource.OPTION_EXTENDED_META_DATA);
- extendedMetaData = xmlPersistenceMappingExtendedMetaData;
- } else {
- // default
- xmlPersistenceMappingExtendedMetaData = xmlResource == null || xmlResource.getResourceSet() == null ? XMLPersistenceMappingExtendedMetaData.INSTANCE
- : new XMLPersistenceMappingExtendedMetaDataImpl(xmlResource.getResourceSet().getPackageRegistry());
- extendedMetaData = xmlPersistenceMappingExtendedMetaData;
- }
- helper.setExtendedMetaData(xmlPersistenceMappingExtendedMetaData);
-
- // initialize progress monitor
- Object progressMonitor = options.get(XMLPersistenceMappingResource.OPTION_PROGRESS_MONITOR);
- if (progressMonitor instanceof IProgressMonitor) {
- this.progressMonitor = (IProgressMonitor) progressMonitor;
- } else {
- // ignore
- }
-
- // get chunk size of xml parser, that is required for calculation of progress monitor ticks
- Object parserPropertiesObject = options.get(XMLResource.OPTION_PARSER_PROPERTIES);
- if (null != parserPropertiesObject && parserPropertiesObject instanceof Map<?, ?>) {
- @SuppressWarnings("unchecked")
- Map<String, Object> parserProperties = (Map<String, Object>) parserPropertiesObject;
- Object bufferSizeObject = parserProperties.get(Constants.XERCES_PROPERTY_PREFIX + Constants.BUFFER_SIZE_PROPERTY);
- if (bufferSizeObject instanceof Integer) {
- progressMonitorChunkSize = (Integer) bufferSizeObject;
- } else {
- // use default;
- }
- } else {
- // use default;
- }
-
- loadPatternStack = new MyStack<LoadPattern>();
- xsiType = null;
-
- // redefine href attribute since e.g.:
- // xhtml.a.type/@href conflicts with this attribute and results in proxy resolution which can in turn
- // result in long delays during load.
- hrefAttribute = XMLPersistenceMappingResource.HREF;
-
- // postconditions
- assert null != xmlPersistenceMappingExtendedMetaData;
- assert null != extendedMetaData;
-
- }
-
- /**
- * Create an object based on the given feature and attributes.
- */
- protected EObject createObjectFromNamespaceAndType(EObject peekObject, EStructuralFeature feature, String namespace, String typeXMLName) {
- assert null != xmlPersistenceMappingExtendedMetaData;
- assert null != peekObject;
- assert null != feature;
- assert null != namespace;
- assert null != typeXMLName;
-
- // Inform the progress monitor. As looking up the namespace can be slow (network),
- // it will at least tell the user what's taking so long
- if (progressMonitor != null && namespace != null && !progressReportedNamespaces.contains(namespace)) {
- progressMonitor.subTask("Processing Namespace: " + namespace); //$NON-NLS-1$
- progressReportedNamespaces.add(namespace);
- }
-
- // make sure, that information about feature is available for handleMissingPackage
- contextFeature = feature;
- EPackage ePackage = getPackageForURI(namespace);
- contextFeature = null;
-
- if (null != ePackage) {
- EClassifier eClassifier;
- if (xmlPersistenceMappingExtendedMetaData.demandedPackages().contains(ePackage)) {
- // demand package requires demand type
- eClassifier = xmlPersistenceMappingExtendedMetaData.demandType(namespace, typeXMLName);
- } else {
- eClassifier = xmlPersistenceMappingExtendedMetaData.getTypeByXMLName(namespace, typeXMLName, feature);
- }
-
- EFactory eFactory = ePackage.getEFactoryInstance();
-
- if (null != eClassifier) {
- EObject obj = createObject(eFactory, eClassifier, false);
- obj = validateCreateObjectFromFactory(eFactory, typeXMLName, obj, feature);
- if (obj != null) {
- setFeatureValue(peekObject, feature, obj);
- processObject(obj);
- }
- return obj;
- } else {
- error(new ClassNotFoundException(typeXMLName, eFactory, getLocation(), getLineNumber(), getColumnNumber()));
- return null;
- }
-
- } else {
- return null;
- }
- }
-
- @Override
- protected EObject validateCreateObjectFromFactory(EFactory factory, String typeName, EObject newObject, EStructuralFeature feature) {
- if (newObject != null) {
- if (extendedMetaData != null) {
- Collection<EPackage> demandedPackages = extendedMetaData.demandedPackages();
- if (!demandedPackages.isEmpty() && demandedPackages.contains(newObject.eClass().getEPackage())) {
- if (xmlPersistenceMappingExtendedMetaData.isXMLPersistenceMappingEnabled(feature)) {
- List<String> wildcards = xmlPersistenceMappingExtendedMetaData.getWildcards(feature);
- if (xmlPersistenceMappingExtendedMetaData.matches(wildcards, newObject.eClass().getEPackage().getNsURI())) {
- return newObject;
- } else {
- return null;
- }
- } else {
- // the new object resulted from a demanded package
- if (recordUnknownFeature) {
- // recordUnknownFeature
- EObject peekObject = objects.peekEObject();
- if (!(peekObject instanceof AnyType)) {
- AnyType anyType = getExtension(objects.peekEObject());
- EStructuralFeature entryFeature = extendedMetaData.demandFeature(extendedMetaData.getNamespace(feature),
- extendedMetaData.getName(feature), true);
- anyType.getAny().add(entryFeature, newObject);
- contextFeature = entryFeature;
- }
- return newObject;
- } else {
- // reportUnknowFeature
- String namespace = extendedMetaData.getNamespace(feature);
- String name = extendedMetaData.getName(feature);
- EStructuralFeature wildcardFeature = extendedMetaData.getElementWildcardAffiliation(objects.peekEObject().eClass(),
- namespace, name);
- if (wildcardFeature != null) {
- int processingKind = laxWildcardProcessing ? ExtendedMetaData.LAX_PROCESSING : extendedMetaData
- .getProcessingKind(wildcardFeature);
- switch (processingKind) {
- case ExtendedMetaData.LAX_PROCESSING:
- case ExtendedMetaData.SKIP_PROCESSING: {
- return newObject;
- }
- }
- }
- }
-
- newObject = null;
- }
- }
- }
- } else if (feature != null && factory != null && extendedMetaData != null) {
- // processing unknown feature with xsi:type (xmi:type)
- if (recordUnknownFeature || processAnyXML) {
-
- EObject result = null;
- String namespace = extendedMetaData.getNamespace(factory.getEPackage());
- if (namespace == null) {
- usedNullNamespacePackage = true;
- }
-
- EClassifier type = extendedMetaData.demandType(namespace, typeName);
- result = createObject(type.getEPackage().getEFactoryInstance(), type, false);
-
- EObject peekObject = objects.peekEObject();
- if (!(peekObject instanceof AnyType)) {
- // add as extension to an existing eobject
- AnyType anyType = getExtension(peekObject);
- EStructuralFeature entryFeature = extendedMetaData.demandFeature(extendedMetaData.getNamespace(feature),
- extendedMetaData.getName(feature), true);
- anyType.getAny().add(entryFeature, result);
- contextFeature = entryFeature;
- }
- return result;
- } else {
- String namespace = extendedMetaData.getNamespace(feature);
- String name = extendedMetaData.getName(feature);
- EStructuralFeature wildcardFeature = extendedMetaData.getElementWildcardAffiliation(objects.peekEObject().eClass(), namespace, name);
- if (wildcardFeature != null) {
- int processingKind = laxWildcardProcessing ? ExtendedMetaData.LAX_PROCESSING : extendedMetaData
- .getProcessingKind(wildcardFeature);
- switch (processingKind) {
- case ExtendedMetaData.LAX_PROCESSING:
- case ExtendedMetaData.SKIP_PROCESSING: {
- // EATM Demand create metadata; needs to depend on processing mode...
- String factoryNamespace = extendedMetaData.getNamespace(factory.getEPackage());
- if (factoryNamespace == null) {
- usedNullNamespacePackage = true;
- }
- EClassifier type = extendedMetaData.demandType(factoryNamespace, typeName);
- return createObject(type.getEPackage().getEFactoryInstance(), type, false);
- }
- }
- }
- }
- }
-
- validateCreateObjectFromFactory(factory, typeName, newObject);
-
- return newObject;
- }
-
- @Override
- public void characters(char[] ch, int start, int length) {
- super.characters(ch, start, length);
- if (null != progressMonitor) {
- if (start < progressMonitorLastStartInChunk) {
- progressMonitorChunksRead += 1;
- }
- if (progressMonitorChunksRead > progressMonitorNumberOfChunksPerUpdate) {
- progressMonitor.worked(progressMonitorChunksRead);
- progressMonitorChunksRead = 0;
- }
- progressMonitorLastStartInChunk = start;
- }
- }
-
- @Override
- public void endElement(String uri, String localName, String qName) {
- if (null != xmlPersistenceMappingExtendedMetaData) {
- elements.pop();
- types.pop();
-
- helper.popContext(prefixesToFactories);
-
- // end from super.endElement
-
- LoadPattern activeDeserializationRule = loadPatternStack.peek();
- if (null != activeDeserializationRule) {
- activeDeserializationRule.endElement(uri, localName);
- if (activeDeserializationRule.needsDelegateParent()) {
- loadPatternStack.pop();
- activeDeserializationRule = loadPatternStack.peek();
- if (null != activeDeserializationRule) {
- // this happens if we return to the root object
- activeDeserializationRule.endElement(uri, localName);
- }
- }
- }
- } else {
- super.endElement(uri, localName, qName);
- }
- }
-
- /**
- * The XML element represents a feature. There are two cases to handle: 1. The feature has a type that is a
- * datatype. 2. The feature has a type that is a class.
- */
- @Override
- protected void handleFeature(String prefix, String name) {
- assert useNewMethods == true;
- EObject peekObject = objects.peekEObject();
-
- // This happens when processing an element with simple content that has elements content even though it
- // shouldn't.
- //
- if (peekObject == null) {
- types.push(ERROR_TYPE);
- error(new FeatureNotFoundException(name, null, getLocation(), getLineNumber(), getColumnNumber()));
- return;
- }
-
- if (null != xmlPersistenceMappingExtendedMetaData) {
- String namespace = helper.getNamespaceURI(prefix);
- LoadPattern activeDeserializationRule = loadPatternStack.peek();
- if (null == activeDeserializationRule) {
- activeDeserializationRule = getLoadPattern(peekObject, prefix, name);
- assert null != activeDeserializationRule : "getLoadPattern() should never return null"; //$NON-NLS-1$
- loadPatternStack.push(activeDeserializationRule);
- }
-
- if (null != activeDeserializationRule) {
- activeDeserializationRule.startElement(namespace, name);
- if (activeDeserializationRule.needsDelegateChild()) {
- activeDeserializationRule = getLoadPattern(peekObject, prefix, name);
- assert null != activeDeserializationRule : "getLoadPattern() should never return null"; //$NON-NLS-1$
- loadPatternStack.push(activeDeserializationRule);
- activeDeserializationRule.startElement(namespace, name);
- } else if (activeDeserializationRule.needsDelegateSibling()) {
- activeDeserializationRule = getLoadPattern(peekObject, prefix, name);
- assert null != activeDeserializationRule : "getLoadPattern() should never return null"; //$NON-NLS-1$
- loadPatternStack.pop();
- loadPatternStack.push(activeDeserializationRule);
- activeDeserializationRule.startElement(namespace, name);
- } else {
- // normal operation, no need for switching to another load pattern
- }
-
- }
-
- } else {
- EStructuralFeature feature = getFeature(peekObject, prefix, name, true);
- if (feature != null) {
- int kind = helper.getFeatureKind(feature);
- if (kind == XMLHelper.DATATYPE_SINGLE || kind == XMLHelper.DATATYPE_IS_MANY) {
- objects.push(null);
- mixedTargets.push(null);
- types.push(feature);
- if (!isNull()) {
- text = new StringBuffer();
- }
- } else if (extendedMetaData != null) {
- EReference eReference = (EReference) feature;
- boolean isContainment = eReference.isContainment();
- if (!isContainment && !eReference.isResolveProxies()
- && extendedMetaData.getFeatureKind(feature) != ExtendedMetaData.UNSPECIFIED_FEATURE) {
- isIDREF = true;
- objects.push(null);
- mixedTargets.push(null);
- types.push(feature);
- text = new StringBuffer();
- } else {
- createObject(peekObject, feature);
- // child object is put on top of objects stack
- // if an error occured, then types.peek is ERROR
- //
- EObject childObject = objects.peekEObject();
- if (childObject != null) {
- if (isContainment) {
- EStructuralFeature simpleFeature = extendedMetaData.getSimpleFeature(childObject.eClass());
- if (simpleFeature != null) {
- isSimpleFeature = true;
- isIDREF = simpleFeature instanceof EReference;
- objects.push(null);
- mixedTargets.push(null);
- types.push(simpleFeature);
- text = new StringBuffer();
- }
- } else if (!childObject.eIsProxy()) {
- text = new StringBuffer();
- }
- }
- }
- } else {
- createObject(peekObject, feature);
- }
- } else {
- // Try to get a general-content feature.
- // Use a pattern that's not possible any other way.
- //
- if (xmlMap != null && (feature = getFeature(peekObject, null, "", true)) != null) { //$NON-NLS-1$
-
- EFactory eFactory = getFactoryForPrefix(prefix);
-
- // This is for the case for a local unqualified element that has been bound.
- //
- if (eFactory == null) {
- eFactory = feature.getEContainingClass().getEPackage().getEFactoryInstance();
- }
-
- EObject newObject = null;
- newObject = createObject(eFactory, helper.getType(eFactory, name), false);
- newObject = validateCreateObjectFromFactory(eFactory, name, newObject, feature);
- if (newObject != null) {
- setFeatureValue(peekObject, feature, newObject);
- }
- processObject(newObject);
- } else {
- // This handles the case of a substitution group.
- //
- if (xmlMap != null) {
- EFactory eFactory = getFactoryForPrefix(prefix);
- EObject newObject = createObjectFromFactory(eFactory, name);
- validateCreateObjectFromFactory(eFactory, name, newObject);
- if (newObject != null) {
- for (EReference eReference : peekObject.eClass().getEAllReferences()) {
- if (eReference.getEType().isInstance(newObject)) {
- setFeatureValue(peekObject, eReference, newObject);
- processObject(newObject);
- return;
- }
- }
- }
- }
-
- handleUnknownFeature(prefix, name, true, peekObject, null);
- }
- }
- }
- }
-
- protected LoadPattern getLoadPattern(EObject eObject, String prefix, String name) {
- assert null != xmlPersistenceMappingExtendedMetaData;
-
- LoadPattern deserializationRule = null;
-
- if (eObject instanceof AnyType) {
- // handle any type using standard emf serialization
- EStructuralFeature feature = super.getFeature(eObject, prefix, name, true);
- deserializationRule = new LoadPatternEReferenceContained0100Impl(eObject, feature);
- } else {
- EStructuralFeature feature = getFeature(eObject, prefix, name, true);
- if (null != feature) {
- int featureSerializationStructure = xmlPersistenceMappingExtendedMetaData.getFeatureSerializationStructure(feature);
- if (feature instanceof EReference) {
- EReference reference = (EReference) feature;
- if (reference.isContainment()) {
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0001__CLASSIFIER_ELEMENT:
- deserializationRule = new LoadPatternEReferenceContained0001Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- deserializationRule = new LoadPatternEReferenceContained0100Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- deserializationRule = new LoadPatternEReferenceContained0101Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- deserializationRule = new LoadPatternEReferenceContained1001Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__UNDEFINED:
- deserializationRule = new LoadPatternEReferenceContained0100Impl(eObject, feature);
- break;
- default:
- deserializationRule = new LoadPatternEReferenceContained1001Impl(eObject, feature);
- break;
- }
- } else {
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- deserializationRule = new LoadPatternEReferenceReferenced0100Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- deserializationRule = new LoadPatternEReferenceReferenced0101Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- deserializationRule = new LoadPatternEReferenceReferenced1001Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__UNDEFINED:
- deserializationRule = new LoadPatternEReferenceReferenced0100Impl(eObject, feature);
- break;
- default:
- deserializationRule = new LoadPatternEReferenceReferenced1001Impl(eObject, feature);
- break;
- }
- }
- } else {
- // feature is an EAttribute
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- deserializationRule = new LoadPatternEAttributeContained0100Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1000__FEATURE_WRAPPER_ELEMENT:
- deserializationRule = new LoadPatternEAttributeContained1000Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1100__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT:
- deserializationRule = new LoadPatternEAttributeContained1100Impl(eObject, feature);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__UNDEFINED:
- deserializationRule = new LoadPatternEAttributeContained0100Impl(eObject, feature);
- break;
-
- default:
- deserializationRule = new LoadPatternEAttributeContained0100Impl(eObject, feature);
- break;
- }
-
- }
- } else {
- deserializationRule = new LoadPatternUnknownImpl(eObject, feature);
- }
- }
-
- assert null != deserializationRule : "getLoadPattern() should always return a LoadPattern (!=null)"; //$NON-NLS-1$
- return deserializationRule;
-
- }
-
- @Override
- protected EStructuralFeature getFeature(EObject object, String prefix, String name, boolean isElement) {
- assert null != object;
- assert null != name;
- EStructuralFeature result = null;
- if (isElement && null != xmlPersistenceMappingExtendedMetaData) {
- String namespace = helper.getNamespaceURI(prefix);
- result = xmlPersistenceMappingExtendedMetaData.getFeatureByXMLElementName(object.eClass(), namespace, name);
- } else {
- result = super.getFeature(object, prefix, name, isElement);
- }
- return result;
- }
-
- @Override
- public void reset() {
- super.reset();
- loadPatternStack = null;
- hrefAttribute = XMLPersistenceMappingResource.HREF;
-
- };
-
- @Override
- public void prepare(XMLResource resource, XMLHelper helper, Map<?, ?> options) {
- super.prepare(resource, helper, options);
- loadPatternStack = new MyStack<LoadPattern>();
- // enforce use of new methods
- useNewMethods = true;
- xsiType = null;
- }
-
- @Override
- protected String getXSIType() {
- if (xsiType != null) {
- return xsiType;
- } else {
- return super.getXSIType();
- }
- }
-
- protected void handleEndCreateObjectElement() {
- if (text == null) {
- objects.pop();
- mixedTargets.pop();
- } else {
- EObject object = objects.popEObject();
- if (mixedTargets.peek() != null
- && (object.eContainer() != null || suppressDocumentRoot || recordUnknownFeature
- && (eObjectToExtensionMap.containsValue(object) || ((InternalEObject) object).eDirectResource() != null))) {
- handleMixedText();
- mixedTargets.pop();
- }
- }
- }
-
- @Override
- public void startDocument() {
- super.startDocument();
- // initialize the progress monitor
- if (null != progressMonitor) {
- progressMonitorChunksRead = 0;
- progressMonitorLastStartInChunk = 0;
- progressMonitor.beginTask("Reading resource '" + resourceURI + "'", getProgressMonitorTotalWork()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- }
-
- @Override
- public void endDocument() {
- super.endDocument();
- // finalize the progress monitor
- if (null != progressMonitor) {
- progressMonitor.done();
- }
- }
-
- protected int getProgressMonitorTotalWork() {
- int totalWork = IProgressMonitor.UNKNOWN;
- URI uri = xmlResource.getURI();
-
- InputStream is = null;
- try {
- is = URIConverter.INSTANCE.createInputStream(uri);
- totalWork = is.available() / progressMonitorChunkSize;
- } catch (IOException ex) {
- // NOP
- } finally {
- if (null != is) {
- try {
- is.close();
- } catch (IOException ex) {
- // NOP
- }
- }
- }
- return totalWork;
- }
-
- @Override
- protected EPackage handleMissingPackage(String uriString) {
- if (null != contextFeature && null != xmlPersistenceMappingExtendedMetaData
- && xmlPersistenceMappingExtendedMetaData.isXMLPersistenceMappingEnabled(contextFeature)) {
- return xmlPersistenceMappingExtendedMetaData.demandPackage(uriString);
-
- } else {
- return super.handleMissingPackage(uriString);
- }
- }
-
-}
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingHelperImpl.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingHelperImpl.java
deleted file mode 100644
index 58c4476..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingHelperImpl.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-package org.eclipse.rmf.internal.serialization;
-
-import javax.xml.datatype.XMLGregorianCalendar;
-
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EFactory;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.xmi.XMLHelper;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl;
-import org.eclipse.emf.ecore.xml.type.XMLTypeFactory;
-
-public class XMLPersistenceMappingHelperImpl extends XMLHelperImpl implements XMLHelper {
-
- public XMLPersistenceMappingHelperImpl(XMLResource resource) {
- super(resource);
- EMap<String, String> prefixToNamespaceMap = getPrefixToNamespaceMap();
- //prefixToNamespaceMap.put("", ReqIF10Package.eNS_URI); //$NON-NLS-1$
- setPrefixToNamespaceMap(prefixToNamespaceMap);
- }
-
- @Override
- public String getHREF(EObject obj) {
- if (obj.eIsProxy()) {
- URI uri = ((InternalEObject) obj).eProxyURI();
- return uri.fragment();
- } else {
- return getIDREF(obj);
- }
- }
-
- @Override
- public String convertToString(EFactory factory, EDataType dataType, Object value) {
- if (value instanceof XMLGregorianCalendar) {
- return XMLTypeFactory.eINSTANCE.convertDateTime((XMLGregorianCalendar) value);
- } else {
- return super.convertToString(factory, dataType, value);
- }
- }
-
- @Override
- public EClassifier getType(EFactory eFactory, String typeName) {
- EClassifier eClassifier;
- EPackage ePackage = eFactory.getEPackage();
- if (extendedMetaData.demandedPackages().contains(ePackage)) {
- eClassifier = extendedMetaData.demandType(ePackage.getNsURI(), typeName);
- } else {
- eClassifier = super.getType(eFactory, typeName);
- }
- return eClassifier;
-
- }
-}
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingLoadImpl.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingLoadImpl.java
deleted file mode 100644
index 96b4ba2..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingLoadImpl.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-package org.eclipse.rmf.internal.serialization;
-
-import java.io.IOException;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.emf.ecore.xmi.XMLHelper;
-import org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-public class XMLPersistenceMappingLoadImpl extends XMLLoadImpl {
-
- public XMLPersistenceMappingLoadImpl(XMLHelper helper) {
- super(helper);
- }
-
- @Override
- protected DefaultHandler makeDefaultHandler() {
- XMLPersistenceMappingHandler handler = new XMLPersistenceMappingHandler(resource, helper, options);
-
- return handler;
- }
-
- @Override
- protected SAXParser makeParser() throws ParserConfigurationException, SAXException {
- // Create an instance of org.apache.xerces.parsers.SAXParser
- /*
- * !! Important Note !! We must override makeParser() - even if we wouldn't have any functional changes to apply
- * - in order to make sure that SAXParserFactory.newInstance() gets invoked from this plug-in which has a
- * dependency to the org.apache.xerces plug-in and all its classes on the classpath. Otherwise we wouldn't
- * obtain an instance of org.apache.xerces.jaxp.SAXParserFactoryImpl as intended but fall back to the default
- * implementation com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl.
- */
- SAXParserFactory factory = SAXParserFactory.newInstance();
- return factory.newSAXParser();
- }
-
- @Override
- protected void handleErrors() throws IOException {
- // avoid throwing exception even if errors occur during load
- }
-
-}
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingSaveImpl.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingSaveImpl.java
deleted file mode 100644
index 4042167..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/XMLPersistenceMappingSaveImpl.java
+++ /dev/null
@@ -1,1767 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-package org.eclipse.rmf.internal.serialization;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EFactory;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.util.ExtendedMetaData;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.emf.ecore.xmi.XMLHelper;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl;
-import org.eclipse.rmf.serialization.XMLPersistenceMappingExtendedMetaData;
-import org.eclipse.rmf.serialization.XMLPersistenceMappingExtendedMetaDataImpl;
-import org.eclipse.rmf.serialization.XMLPersistenceMappingResource;
-
-// TODO: add javadoc with images
-// TODO: deactivate or implement dom support
-// TODO: implement prefix overwrite
-// TODO: overwrite all explicitly not used methods from super-class and use asserts to show that it is not allowed to go there
-// TODO: consider using the "kind" mechanism for switching between different savepatterns
-/**
- * @author broerkens
- */
-public class XMLPersistenceMappingSaveImpl extends XMLSaveImpl {
- XMLPersistenceMappingExtendedMetaData xmlPersistenceMappingExtendedMetaData = null;
- static final String TRUE = "true"; //$NON-NLS-1$
- Map<String, String> redefinedNamespaceUriToPrefixMap = null;
-
- final StringBuffer buffer = new StringBuffer();
-
- public enum SerializationType {
- attributesOnly, elementsOnly, attributesAndElements
- }
-
- public XMLPersistenceMappingSaveImpl(XMLHelper helper) {
- super(helper);
- }
-
- @Override
- protected boolean saveFeatures(EObject o, boolean attributesOnly) {
- if (attributesOnly) {
- return saveFeatures(o, SerializationType.attributesOnly, false);
- } else {
- return saveFeatures(o, SerializationType.attributesAndElements, false);
- }
- }
-
- protected boolean saveFeatures(EObject o, SerializationType serializationType, boolean suppressClosingElement) {
- EClass eClass = o.eClass();
- int contentKind = extendedMetaData.getContentKind(eClass);
- if (!toDOM) {
- switch (contentKind) {
- case ExtendedMetaData.MIXED_CONTENT:
- case ExtendedMetaData.SIMPLE_CONTENT: {
- doc.setMixed(true);
- break;
- }
- }
- }
-
- if (o == root) {
- writeTopAttributes(root);
- }
-
- EStructuralFeature[] features = featureTable.getFeatures(eClass);
- int[] featureKinds = featureTable.getKinds(eClass, features);
- int[] elementFeatures = null;
- int elementCount = 0;
-
- String content = null;
-
- // Process XML attributes
- if (SerializationType.elementsOnly == serializationType) {
- LOOP: for (int i = 0; i < features.length; i++) {
- int kind = featureKinds[i];
- EStructuralFeature f = features[i];
-
- if (kind != TRANSIENT && shouldSaveFeature(o, f)) {
- switch (kind) {
- case DATATYPE_ELEMENT_SINGLE: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getDataTypeElementSingleSimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case DATATYPE_SINGLE: {
- continue LOOP; // next feature, no element required
- }
- case DATATYPE_SINGLE_NILLABLE: {
- if (!isNil(o, f)) {
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_ATTRIBUTE_SINGLE: {
- continue LOOP; // next feature, no element required
- }
- case OBJECT_ATTRIBUTE_MANY: {
- continue LOOP; // next feature, no element required
- }
- case OBJECT_ATTRIBUTE_IDREF_SINGLE: {
- continue LOOP; // next feature, no element required
- }
- case OBJECT_ATTRIBUTE_IDREF_MANY: {
- continue LOOP; // next feature, no element required
- }
- case OBJECT_HREF_SINGLE_UNSETTABLE: {
- if (isNil(o, f)) {
- break;
- }
- // it's intentional to keep going
- }
- case OBJECT_HREF_SINGLE: {
- if (useEncodedAttributeStyle) {
- continue LOOP; // next feature, no element required
- } else {
- switch (sameDocSingle(o, f)) {
- case SAME_DOC: {
- continue LOOP; // next feature, no element required
- }
- case CROSS_DOC: {
- break;
- }
- default: {
- continue LOOP; // next feature, no element required
- }
- }
- }
- break;
- }
- case OBJECT_HREF_MANY_UNSETTABLE: {
- if (isEmpty(o, f) && !isXMLPersistenceMappingEnabled(f)) {
- continue LOOP; // next feature, no element required
- }
- // It's intentional to keep going.
- }
- case OBJECT_HREF_MANY: {
- if (useEncodedAttributeStyle) {
- continue LOOP; // next feature, no element required
- } else {
- switch (sameDocMany(o, f)) {
- case SAME_DOC: {
- continue LOOP; // next feature, no element required
- }
- case CROSS_DOC: {
- break;
- }
- default: {
- continue LOOP; // next feature, no element required
- }
- }
- }
- break;
- }
- case OBJECT_ELEMENT_SINGLE_UNSETTABLE:
- case OBJECT_ELEMENT_SINGLE: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getElementReferenceSingleSimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_ELEMENT_MANY: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getElementReferenceManySimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_ELEMENT_IDREF_SINGLE_UNSETTABLE:
- case OBJECT_ELEMENT_IDREF_SINGLE: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getElementIDRefSingleSimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_ELEMENT_IDREF_MANY: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getElementIDRefManySimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case DATATYPE_ATTRIBUTE_MANY: {
- break;
- }
- case OBJECT_CONTAIN_MANY_UNSETTABLE:
- case DATATYPE_MANY: {
- if (isEmpty(o, f) && !isXMLPersistenceMappingEnabled(f)) {
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_CONTAIN_SINGLE_UNSETTABLE:
- case OBJECT_CONTAIN_SINGLE:
- case OBJECT_CONTAIN_MANY:
- case ELEMENT_FEATURE_MAP: {
- break;
- }
- case ATTRIBUTE_FEATURE_MAP: {
- continue LOOP; // next feature, no element required
- }
- default: {
- continue LOOP; // next feature, no element required
- }
-
- } // end switch
-
- // We only get here if we should do this.
- //
- if (elementFeatures == null) {
- elementFeatures = new int[features.length];
- }
- elementFeatures[elementCount++] = i;
- } // end if
- } // end for
- } else {
-
- LOOP: for (int i = 0; i < features.length; i++) {
- int kind = featureKinds[i];
- EStructuralFeature f = features[i];
-
- if (kind != TRANSIENT && shouldSaveFeature(o, f)) {
-
- switch (kind) {
- case DATATYPE_ELEMENT_SINGLE: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getDataTypeElementSingleSimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case DATATYPE_SINGLE: {
- saveDataTypeSingle(o, f);
- continue LOOP; // next feature, no element required
- }
- case DATATYPE_SINGLE_NILLABLE: {
- if (!isNil(o, f)) {
- saveDataTypeSingle(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_ATTRIBUTE_SINGLE: {
- saveEObjectSingle(o, f);
- continue LOOP; // next feature, no element required
- }
- case OBJECT_ATTRIBUTE_MANY: {
- saveEObjectMany(o, f);
- continue LOOP; // next feature, no element required
- }
- case OBJECT_ATTRIBUTE_IDREF_SINGLE: {
- saveIDRefSingle(o, f);
- continue LOOP; // next feature, no element required
- }
- case OBJECT_ATTRIBUTE_IDREF_MANY: {
- saveIDRefMany(o, f);
- continue LOOP; // next feature, no element required
- }
- case OBJECT_HREF_SINGLE_UNSETTABLE: {
- if (isNil(o, f)) {
- break;
- }
- // it's intentional to keep going
- }
- case OBJECT_HREF_SINGLE: {
- if (useEncodedAttributeStyle) {
- saveEObjectSingle(o, f);
- continue LOOP; // next feature, no element required
- } else {
- switch (sameDocSingle(o, f)) {
- case SAME_DOC: {
- saveIDRefSingle(o, f);
- continue LOOP; // next feature, no element required
- }
- case CROSS_DOC: {
- break;
- }
- default: {
- continue LOOP; // next feature, no element required
- }
- }
- }
- break;
- }
- case OBJECT_HREF_MANY_UNSETTABLE: {
- if (isEmpty(o, f) && !isXMLPersistenceMappingEnabled(f)) {
- saveManyEmpty(o, f);
- continue LOOP; // next feature, no element required
- }
- // It's intentional to keep going.
- }
- case OBJECT_HREF_MANY: {
- if (useEncodedAttributeStyle) {
- saveEObjectMany(o, f);
- continue LOOP; // next feature, no element required
- } else {
- switch (sameDocMany(o, f)) {
- case SAME_DOC: {
- saveIDRefMany(o, f);
- continue LOOP; // next feature, no element required
- }
- case CROSS_DOC: {
- break;
- }
- default: {
- continue LOOP; // next feature, no element required
- }
- }
- }
- break;
- }
- case OBJECT_ELEMENT_SINGLE_UNSETTABLE:
- case OBJECT_ELEMENT_SINGLE: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getElementReferenceSingleSimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_ELEMENT_MANY: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getElementReferenceManySimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_ELEMENT_IDREF_SINGLE_UNSETTABLE:
- case OBJECT_ELEMENT_IDREF_SINGLE: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getElementIDRefSingleSimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_ELEMENT_IDREF_MANY: {
- if (contentKind == ExtendedMetaData.SIMPLE_CONTENT) {
- content = getElementIDRefManySimple(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case DATATYPE_ATTRIBUTE_MANY: {
- break;
- }
- case OBJECT_CONTAIN_MANY_UNSETTABLE:
- case DATATYPE_MANY: {
- if (isEmpty(o, f) && !isXMLPersistenceMappingEnabled(f)) {
- saveManyEmpty(o, f);
- continue LOOP; // next feature, no element required
- }
- break;
- }
- case OBJECT_CONTAIN_SINGLE_UNSETTABLE:
- case OBJECT_CONTAIN_SINGLE:
- case OBJECT_CONTAIN_MANY:
- case ELEMENT_FEATURE_MAP: {
- break;
- }
- case ATTRIBUTE_FEATURE_MAP: {
- saveAttributeFeatureMap(o, f);
- continue LOOP; // next feature, no element required
- }
- default: {
- continue LOOP; // next feature, no element required
- }
- }
-
- if (SerializationType.attributesOnly == serializationType) {
- continue LOOP; // next feature, no element required
- }
-
- // We only get here if we should do this.
- //
- if (elementFeatures == null) {
- elementFeatures = new int[features.length];
- }
- elementFeatures[elementCount++] = i;
- }
- }
- processAttributeExtensions(o);
-
- if (elementFeatures == null) {
- if (content == null) {
- content = getContent(o, features);
- }
-
- if (content == null) {
- if (o == root && writeTopElements(root)) {
- endSaveFeatures(o, 0, null);
- return true;
- } else {
- endSaveFeatures(o, EMPTY_ELEMENT, null);
- return false;
- }
- } else {
- endSaveFeatures(o, CONTENT_ELEMENT, content);
- return true;
- }
- }
- }
-
- if (o == root) {
- writeTopElements(root);
- }
-
- // Process XML elements
- for (int i = 0; i < elementCount; i++) {
- int kind = featureKinds[elementFeatures[i]];
- EStructuralFeature f = features[elementFeatures[i]];
- switch (kind) {
- case DATATYPE_SINGLE_NILLABLE: {
- saveNil(o, f);
- break;
- }
- case ELEMENT_FEATURE_MAP: {
- saveElementFeatureMap(o, f);
- break;
- }
- case DATATYPE_MANY: {
- saveDataTypeMany(o, f);
- break;
- }
- case DATATYPE_ATTRIBUTE_MANY: {
- saveDataTypeAttributeMany(o, f);
- break;
- }
- case DATATYPE_ELEMENT_SINGLE: {
- saveDataTypeElementSingle(o, f);
- break;
- }
- case OBJECT_CONTAIN_SINGLE_UNSETTABLE: {
- if (isNil(o, f)) {
- saveNil(o, f);
- break;
- }
- // it's intentional to keep going
- }
- case OBJECT_CONTAIN_SINGLE: {
- saveContainedSingle(o, f);
- break;
- }
- case OBJECT_CONTAIN_MANY_UNSETTABLE:
- case OBJECT_CONTAIN_MANY: {
- saveContainedMany(o, f);
- break;
- }
- case OBJECT_HREF_SINGLE_UNSETTABLE: {
- if (isNil(o, f)) {
- saveNil(o, f);
- break;
- }
- // it's intentional to keep going
- }
- case OBJECT_HREF_SINGLE: {
- saveHRefSingle(o, f);
- break;
- }
- case OBJECT_HREF_MANY_UNSETTABLE:
- case OBJECT_HREF_MANY: {
- saveHRefMany(o, f);
- break;
- }
- case OBJECT_ELEMENT_SINGLE_UNSETTABLE: {
- if (isNil(o, f)) {
- saveNil(o, f);
- break;
- }
- // it's intentional to keep going
- }
- case OBJECT_ELEMENT_SINGLE: {
- saveElementReferenceSingle(o, f);
- break;
- }
- case OBJECT_ELEMENT_MANY: {
- saveElementReferenceMany(o, f);
- break;
- }
- case OBJECT_ELEMENT_IDREF_SINGLE_UNSETTABLE: {
- if (isNil(o, f)) {
- saveNil(o, f);
- break;
- }
- // it's intentional to keep going
- }
- case OBJECT_ELEMENT_IDREF_SINGLE: {
- saveElementIDRefSingle(o, f);
- break;
- }
- case OBJECT_ELEMENT_IDREF_MANY: {
- saveElementIDRefMany(o, f);
- break;
- }
- } // end switch
- } // end for
- if (!suppressClosingElement) {
- endSaveFeatures(o, 0, null);
- }
- return true;
- }
-
- @Override
- protected void saveNil(EStructuralFeature f) {
- if (isXMLPersistenceMappingEnabled(f)) {
- int featureSerializationStructure = xmlPersistenceMappingExtendedMetaData.getFeatureSerializationStructure(f);
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0000__NONE:
- // no means for describing null values
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0001__CLASSIFIER_ELEMENT:
- doc.saveNilElement(getClassifierQName(f.getEType(), f));
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0010__CLASSIFIER_WRAPPER_ELEMENT:
- doc.saveNilElement(getClassifierWrapperQName(f.getEType()));
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0011__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- doc.startElement(getClassifierWrapperQName(f.getEType()));
- doc.endEmptyElement();
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- super.saveNil(f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0110__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0111__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- doc.startElement(getFeatureQName(f));
- doc.endEmptyElement();
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1000__FEATURE_WRAPPER_ELEMENT:
- doc.saveNilElement(getFeatureWrapperQName(f));
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1010__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1011__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1100__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT:
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1101__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1110__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1111__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- doc.startElement(getFeatureWrapperQName(f));
- doc.endEmptyElement();
- break;
- default:
- super.saveNil(f);
- }
-
- } else {
- super.saveNil(f);
- }
-
- }
-
- @Override
- protected void saveElementReferenceSingle(EObject o, EStructuralFeature f) {
- assert null != helper.getValue(o, f);
-
- EObject remote = (EObject) helper.getValue(o, f);
- if (null != remote) {
-
- int featureSerializationStructure = xmlPersistenceMappingExtendedMetaData.getFeatureSerializationStructure(f);
-
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0000__NONE:
- // not allowed - ignore;
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- // default EMF mapping
- saveEReferenceReferenced0100Single(remote, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceReferenced0101Single(remote, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceReferenced1001Single(remote, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__UNDEFINED:
- // if undefined, use the standard EMF mechanism
- super.saveElementReferenceSingle(o, f);
- break;
- default:
- saveEReferenceReferenced1001Single(remote, f);
- break;
- }
- }
-
- }
-
- protected void saveReferencedHREF(EStructuralFeature f, EObject remote, String qname, boolean doSaveType) {
- {
- String href = helper.getHREF(remote);
- if (href != null) {
- href = convertURI(href);
- EClass eClass = remote.eClass();
- EClass expectedType = (EClass) f.getEType();
- boolean shouldSaveType = doSaveType && (saveTypeInfo ? xmlTypeInfo.shouldSaveType(eClass, expectedType, f) : eClass != expectedType);
- doc.startElement(qname);
- if (shouldSaveType) {
- saveTypeAttribute(eClass);
- }
- doc.endContentElement(href);
- }
- }
- }
-
- protected void saveEReferenceReferenced0100Single(EObject remote, EStructuralFeature f) {
- String qname = getFeatureQName(f);
- saveReferencedHREF(f, remote, qname, true);
- }
-
- protected void saveEReferenceReferenced0101Single(EObject remote, EStructuralFeature f) {
- doc.startElement(getFeatureQName(f));
- String qname = getClassifierQName(remote.eClass(), f);
- saveReferencedHREF(f, remote, qname, false);
- doc.endElement();
- }
-
- protected void saveEReferenceReferenced1001Single(EObject remote, EStructuralFeature f) {
- doc.startElement(getFeatureWrapperQName(f));
- String qname = getClassifierQName(remote.eClass(), f);
- saveReferencedHREF(f, remote, qname, false);
- doc.endElement();
- }
-
- @Override
- protected void saveElementReferenceMany(EObject o, EStructuralFeature f) {
- assert f.isMany() : "saveElementReferenceMany is applicable for references with true == isMany()"; //$NON-NLS-1$
- @SuppressWarnings("unchecked")
- InternalEList<? extends EObject> values = (InternalEList<? extends EObject>) helper.getValue(o, f);
- int featureSerializationStructure = xmlPersistenceMappingExtendedMetaData.getFeatureSerializationStructure(f);
-
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0000__NONE:
- // not allowed - ignore;
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- // default EMF mapping
- saveEReferenceReferenced0100Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceReferenced0101Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceReferenced1001Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__UNDEFINED:
- // if undefined, use the standard EMF mechanism
- super.saveHRefMany(o, f);
- break;
- default:
- saveEReferenceReferenced1001Many(values, f);
- break;
- }
-
- }
-
- protected void saveEReferenceReferenced0100Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- int size = values.size();
- String qname = getFeatureQName(f);
- for (int i = 0; i < size; i++) {
- saveReferencedHREF(f, values.basicGet(i), qname, true);
- }
- }
-
- protected void saveEReferenceReferenced0101Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- int size = values.size();
- String qname;
- EObject value;
- for (int i = 0; i < size; i++) {
- doc.startElement(getFeatureQName(f));
- value = values.basicGet(i);
- qname = getClassifierQName(value.eClass(), f);
- saveReferencedHREF(f, value, qname, false);
- doc.endElement();
- }
-
- }
-
- protected void saveEReferenceReferenced1001Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- int size = values.size();
- String qname;
- EObject value;
- doc.startElement(getFeatureWrapperQName(f));
- for (int i = 0; i < size; i++) {
- value = values.basicGet(i);
- qname = getClassifierQName(value.eClass(), f);
- saveReferencedHREF(f, value, qname, false);
- }
- doc.endElement();
- }
-
- @Override
- protected void saveDataTypeElementSingle(EObject o, EStructuralFeature f) {
- assert !f.isMany() : "saveElementReferenceMany is applicable for references with false == isMany()"; //$NON-NLS-1$
- String svalue = getDatatypeValue(helper.getValue(o, f), f, false);
- int featureSerializationStructure = xmlPersistenceMappingExtendedMetaData.getFeatureSerializationStructure(f);
-
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0000__NONE:
- // not allowed - ignore;
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0001__CLASSIFIER_ELEMENT:
- saveEAttributeContained0001Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0010__CLASSIFIER_WRAPPER_ELEMENT:
- saveEAttributeContained0010Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0011__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained0011Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- saveEAttributeContained0100Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained0101Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0110__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEAttributeContained0110Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0111__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained0111Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1000__FEATURE_WRAPPER_ELEMENT:
- saveEAttributeContained1000Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained1001Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1010__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEAttributeContained1010Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1011__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained1011Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1100__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT:
- saveEAttributeContained1100Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1101__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained1101Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1110__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEAttributeContained1110Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1111__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained1111Single(svalue, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__UNDEFINED:
- // if undefined, use the standard EMF mechanism
- super.saveDataTypeMany(o, f);
- break;
- default:
- saveEAttributeContained1001Single(svalue, f);
- break;
- }
-
- }
-
- protected void saveEAttributeContained0001Single(String value, EStructuralFeature f) {
- String name = getClassifierQName(f.getEType());
- if (value == null) {
- doc.startElement(name);
- doc.addAttribute(XSI_NIL, TRUE);
- doc.endEmptyElement();
- declareXSI = true;
- } else {
- doc.saveDataValueElement(name, value);
- }
-
- }
-
- protected void saveEAttributeContained0010Single(String value, EStructuralFeature f) {
- String name = getClassifierWrapperQName(f.getEType());
- if (value == null) {
- doc.startElement(name);
- doc.addAttribute(XSI_NIL, TRUE);
- doc.endEmptyElement();
- declareXSI = true;
- } else {
- doc.saveDataValueElement(name, value);
- }
- }
-
- protected void saveEAttributeContained0011Single(String value, EStructuralFeature f) {
- doc.startElement(getClassifierWrapperQName(f.getEType()));
- saveEAttributeContained0001Single(value, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained0100Single(String value, EStructuralFeature f) {
- // this is the default EMF behaviour
- String name = getFeatureQName(f);
- if (value == null) {
- doc.startElement(name);
- doc.addAttribute(XSI_NIL, TRUE);
- doc.endEmptyElement();
- declareXSI = true;
- } else {
- doc.saveDataValueElement(name, value);
- }
- }
-
- protected void saveEAttributeContained0101Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureQName(f));
- saveEAttributeContained0001Single(value, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained0110Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureQName(f));
- saveEAttributeContained0010Single(value, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained0111Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureQName(f));
- doc.startElement(getClassifierWrapperQName(f.getEType()));
- saveEAttributeContained0001Single(value, f);
- doc.endElement();
- doc.endElement();
- }
-
- protected void saveEAttributeContained1000Single(String value, EStructuralFeature f) {
- String name = getFeatureWrapperQName(f);
- if (value == null) {
- doc.startElement(name);
- doc.addAttribute(XSI_NIL, TRUE);
- doc.endEmptyElement();
- declareXSI = true;
- } else {
- doc.saveDataValueElement(name, value);
- }
- }
-
- protected void saveEAttributeContained1001Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0001Single(value, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1010Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0010Single(value, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1011Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureWrapperQName(f));
- doc.startElement(getClassifierWrapperQName(f.getEType()));
- saveEAttributeContained0001Single(value, f);
- doc.endElement();
- doc.endElement();
- }
-
- protected void saveEAttributeContained1100Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0100Single(value, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1101Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureWrapperQName(f));
- doc.startElement(getFeatureQName(f));
- saveEAttributeContained0001Single(value, f);
- doc.endElement();
- doc.endElement();
- }
-
- protected void saveEAttributeContained1110Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureWrapperQName(f));
- doc.startElement(getFeatureQName(f));
- saveEAttributeContained0010Single(value, f);
- doc.endElement();
- doc.endElement();
- }
-
- protected void saveEAttributeContained1111Single(String value, EStructuralFeature f) {
- doc.startElement(getFeatureWrapperQName(f));
- doc.startElement(getFeatureQName(f));
- doc.startElement(getClassifierWrapperQName(f.getEType()));
- saveEAttributeContained0001Single(value, f);
- doc.endElement();
- doc.endElement();
- doc.endElement();
- }
-
- @Override
- protected void saveDataTypeMany(EObject o, EStructuralFeature f) {
- assert f.isMany() : "saveElementReferenceMany is applicable for references with true == isMany()"; //$NON-NLS-1$
-
- @SuppressWarnings("unchecked")
- InternalEList<? extends EObject> values = (InternalEList<? extends EObject>) helper.getValue(o, f);
- if (null != values && !values.isEmpty()) {
- int featureSerializationStructure = xmlPersistenceMappingExtendedMetaData.getFeatureSerializationStructure(f);
-
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0000__NONE:
- // not allowed - ignore;
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0001__CLASSIFIER_ELEMENT:
- saveEAttributeContained0001Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0010__CLASSIFIER_WRAPPER_ELEMENT:
- saveEAttributeContained0010Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0011__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained0011Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- saveEAttributeContained0100Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained0101Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0110__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEAttributeContained0110Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0111__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained0111Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1000__FEATURE_WRAPPER_ELEMENT:
- saveEAttributeContained1000Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained1001Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1010__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEAttributeContained1010Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1011__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained1011Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1100__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT:
- saveEAttributeContained1100Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1101__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained1101Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1110__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEAttributeContained1110Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1111__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEAttributeContained1111Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__UNDEFINED:
- // if undefined, use the standard EMF mechanism
- saveEAttributeContained0100Many(values, f);
- break;
- default:
- saveEAttributeContained1001Many(values, f);
- break;
- }
- }
- }
-
- protected String getAttributeString(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- EDataType d = (EDataType) f.getEType();
- EPackage ePackage = d.getEPackage();
- EFactory fac = ePackage.getEFactoryInstance();
- buffer.setLength(0);
- for (Iterator<? extends EObject> i = values.basicIterator();;) {
- Object value = i.next();
- String svalue = helper.convertToString(fac, d, value);
- if (escape != null) {
- svalue = escape.convertText(svalue);
- }
- buffer.append(svalue);
- if (i.hasNext()) {
- buffer.append(' ');
- } else {
- break;
- }
- }
- return buffer.toString();
- }
-
- protected void saveEAttributeContained0001Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- EDataType d = (EDataType) f.getEType();
- EPackage ePackage = d.getEPackage();
- EFactory fac = ePackage.getEFactoryInstance();
- String name = helper.getQName(d);
- int size = values.size();
- for (int i = 0; i < size; ++i) {
- Object value = values.get(i);
- if (value == null) {
- doc.startElement(name);
- doc.addAttribute(XSI_NIL, TRUE);
- doc.endEmptyElement();
- declareXSI = true;
- } else {
- String svalue = helper.convertToString(fac, d, value);
- if (escape != null) {
- svalue = escape.convertText(svalue);
- }
- doc.saveDataValueElement(name, svalue);
- }
- }
- }
-
- protected void saveEAttributeContained0010Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- String name = getClassifierWrapperQName(f.getEType());
- doc.saveDataValueElement(name, getAttributeString(values, f));
- }
-
- protected void saveEAttributeContained0011Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getClassifierWrapperQName(f.getEType()));
- saveEAttributeContained0001Many(values, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained0100Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- // this is the default EMF behaviour
- assert null != values;
-
- EDataType d = (EDataType) f.getEType();
- EPackage ePackage = d.getEPackage();
- EFactory fac = ePackage.getEFactoryInstance();
- String name = helper.getQName(f);
- int size = values.size();
- for (int i = 0; i < size; ++i) {
- Object value = values.get(i);
- if (value == null) {
- doc.startElement(name);
- doc.addAttribute(XSI_NIL, TRUE);
- doc.endEmptyElement();
- declareXSI = true;
- } else {
- String svalue = helper.convertToString(fac, d, value);
- if (escape != null) {
- svalue = escape.convertText(svalue);
- }
- doc.saveDataValueElement(name, svalue);
- }
- }
- }
-
- protected void saveEAttributeContained0101Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- EDataType d = (EDataType) f.getEType();
- EPackage ePackage = d.getEPackage();
- EFactory fac = ePackage.getEFactoryInstance();
- String name = getClassifierQName(d);
- int size = values.size();
- for (int i = 0; i < size; ++i) {
- Object value = values.get(i);
- doc.startElement(getFeatureQName(f));
- if (value == null) {
- doc.startElement(name);
- doc.addAttribute(XSI_NIL, TRUE);
- doc.endEmptyElement();
- declareXSI = true;
- } else {
- String svalue = helper.convertToString(fac, d, value);
- if (escape != null) {
- svalue = escape.convertText(svalue);
- }
- doc.saveDataValueElement(name, svalue);
- }
- doc.endElement();
- }
- }
-
- protected void saveEAttributeContained0110Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureQName(f));
- saveEAttributeContained0010Many(values, f);
- doc.endElement();
-
- }
-
- protected void saveEAttributeContained0111Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureQName(f));
- saveEAttributeContained0011Many(values, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1000Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- String name = getFeatureWrapperQName(f);
- doc.saveDataValueElement(name, getAttributeString(values, f));
- }
-
- protected void saveEAttributeContained1001Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0001Many(values, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1010Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0010Many(values, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1011Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0011Many(values, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1100Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0100Many(values, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1101Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0101Many(values, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1110Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0110Many(values, f);
- doc.endElement();
- }
-
- protected void saveEAttributeContained1111Many(InternalEList<? extends EObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEAttributeContained0111Many(values, f);
- doc.endElement();
- }
-
- @Override
- protected void saveContainedMany(EObject o, EStructuralFeature f) {
- assert f.isMany();
-
- // XML Mapping serialization enabled
- @SuppressWarnings("unchecked")
- List<? extends InternalEObject> values = ((InternalEList<? extends InternalEObject>) helper.getValue(o, f)).basicList();
- if (null != values) {
- int featureSerializationStructure = xmlPersistenceMappingExtendedMetaData.getFeatureSerializationStructure(f);
-
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0000__NONE:
- saveEReferenceContained0000Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0001__CLASSIFIER_ELEMENT:
- saveEReferenceContained0001Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0010__CLASSIFIER_WRAPPER_ELEMENT:
- saveEReferenceContained0010Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0011__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained0011Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- saveEReferenceContained0100Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained0101Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0110__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEReferenceContained0110Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0111__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained0111Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1000__FEATURE_WRAPPER_ELEMENT:
- saveEReferenceContained1000Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained1001Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1010__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEReferenceContained1010Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1011__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained1011Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1100__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT:
- saveEReferenceContained1100Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1101__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained1101Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1110__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEReferenceContained1110Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1111__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained1111Many(values, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__UNDEFINED:
- // if undefined, use the standard EMF mechanism
- saveEReferenceContained0100Many(values, f);
- break;
- default:
- saveEReferenceContained1001Many(values, f);
- break;
- }
-
- }
-
- }
-
- protected void saveEReferenceContained0000Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- for (EObject value : values) {
- saveFeatures(value, SerializationType.elementsOnly, true);
- }
- }
-
- protected void saveEReferenceContained0001Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
-
- for (EObject value : values) {
- doc.startElement(getClassifierQName(value.eClass()));
- saveFeatures(value);
- }
- }
-
- protected void saveEReferenceContained0010Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
-
- for (EClass eClass : getOrderedClasses(values)) {
- doc.startElement(getClassifierWrapperQName(eClass));
- for (EObject value : values) {
- if (eClass == value.eClass()) {
- saveFeatures(value, SerializationType.elementsOnly, true);
- }
- }
- doc.endElement();
- }
- }
-
- protected void saveEReferenceContained0011Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- for (EClass eClass : getOrderedClasses(values)) {
- doc.startElement(getClassifierWrapperQName(eClass));
- for (EObject value : values) {
- if (eClass == value.eClass()) {
- doc.startElement(getClassifierQName(value.eClass()));
- saveFeatures(value, SerializationType.attributesAndElements, false);
- }
- }
- doc.endElement();
- }
- }
-
- protected void saveEReferenceContained0100Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- // this is the default EMF behaviour
- assert null != values;
- assert !values.isEmpty();
-
- for (EObject value : values) {
- saveElement(value, f);
- }
- }
-
- protected void saveEReferenceContained0101Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- for (EObject value : values) {
- doc.startElement(getFeatureQName(f));
- doc.startElement(getClassifierQName(value.eClass()));
- saveFeatures(value, SerializationType.attributesAndElements, false);
- doc.endElement();
- }
- }
-
- protected void saveEReferenceContained0110Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- doc.startElement(getFeatureQName(f));
- for (EClass eClass : getOrderedClasses(values)) {
- doc.startElement(getClassifierWrapperQName(eClass));
- for (EObject value : values) {
- if (eClass == value.eClass()) {
- saveFeatures(value, SerializationType.elementsOnly, true);
- }
- }
- doc.endElement();
- }
- doc.endElement();
-
- }
-
- protected void saveEReferenceContained0111Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- doc.startElement(getFeatureQName(f));
- for (EClass eClass : getOrderedClasses(values)) {
- doc.startElement(getClassifierWrapperQName(eClass));
- for (EObject value : values) {
- if (eClass == value.eClass()) {
- doc.startElement(getClassifierQName(value.eClass()));
- saveFeatures(value);
- }
- }
- doc.endElement();
- }
- doc.endElement();
- }
-
- protected void saveEReferenceContained1000Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0000Many(values, f);
- doc.endElement();
- // last end is written by caller
- }
-
- protected void saveEReferenceContained1001Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0001Many(values, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1010Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0010Many(values, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1011Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0011Many(values, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1100Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0100Many(values, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1101Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0101Many(values, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1110Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0110Many(values, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1111Many(List<? extends InternalEObject> values, EStructuralFeature f) {
- assert null != values;
- assert !values.isEmpty();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0111Many(values, f);
- doc.endElement();
- }
-
- @Override
- protected void saveContainedSingle(EObject o, EStructuralFeature f) {
- assert !f.isMany();
-
- if (isXMLPersistenceMappingEnabled(f)) {
- // XML Mapping serialization enabled
- EObject value = (EObject) helper.getValue(o, f);
- if (null != value) {
- int featureSerializationStructure = xmlPersistenceMappingExtendedMetaData.getFeatureSerializationStructure(f);
-
- switch (featureSerializationStructure) {
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0000__NONE:
- saveEReferenceContained0000Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0001__CLASSIFIER_ELEMENT:
- saveEReferenceContained0001Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0010__CLASSIFIER_WRAPPER_ELEMENT:
- saveEReferenceContained0010Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0011__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained0011Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT:
- saveEReferenceContained0100Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained0101Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0110__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEReferenceContained0110Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__0111__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained0111Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1000__FEATURE_WRAPPER_ELEMENT:
- saveEReferenceContained1000Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained1001Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1010__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEReferenceContained1010Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1011__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained1011Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1100__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT:
- saveEReferenceContained1100Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1101__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained1101Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1110__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT:
- saveEReferenceContained1110Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__1111__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT:
- saveEReferenceContained1111Single(value, f);
- break;
- case XMLPersistenceMappingExtendedMetaData.SERIALIZATION_STRUCTURE__UNDEFINED:
- // if undefined, use the standard EMF mechanism
- super.saveContainedSingle(o, f);
- break;
- default:
- saveEReferenceContained1001Single(value, f);
- break;
- }
-
- }
-
- } else {
- super.saveContainedSingle(o, f);
- }
- }
-
- protected void saveEReferenceContained0000Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- saveFeatures(value, SerializationType.elementsOnly, true);
- }
-
- protected void saveEReferenceContained0001Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- doc.startElement(getClassifierQName(value.eClass()));
- saveFeatures(value);
-
- }
-
- protected void saveEReferenceContained0010Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- EClass eClass = value.eClass();
- doc.startElement(getClassifierWrapperQName(eClass));
- saveFeatures(value);
- }
-
- protected void saveEReferenceContained0011Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- EClass eClass = value.eClass();
- doc.startElement(getClassifierWrapperQName(eClass));
- doc.startElement(getClassifierQName(eClass));
- saveFeatures(value);
- doc.endElement();
-
- }
-
- protected void saveEReferenceContained0100Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- saveElement(value, f);
- }
-
- protected void saveEReferenceContained0101Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- EClass eClass = value.eClass();
- doc.startElement(getFeatureQName(f));
- doc.startElement(getClassifierQName(eClass));
- saveFeatures(value);
- doc.endElement();
- }
-
- protected void saveEReferenceContained0110Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- EClass eClass = value.eClass();
- doc.startElement(getFeatureQName(f));
- doc.startElement(getClassifierWrapperQName(eClass));
- saveFeatures(value);
- doc.endElement();
-
- }
-
- protected void saveEReferenceContained0111Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- EClass eClass = value.eClass();
- doc.startElement(getFeatureQName(f));
- doc.startElement(getClassifierWrapperQName(eClass));
- doc.startElement(getClassifierQName(eClass));
- saveFeatures(value);
- doc.endElement();
- doc.endElement();
- }
-
- protected void saveEReferenceContained1000Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0000Single(value, f);
- doc.endElement();
- // last end is written by caller
- }
-
- protected void saveEReferenceContained1001Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0001Single(value, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1010Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0010Single(value, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1011Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0011Single(value, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1100Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0100Single(value, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1101Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0101Single(value, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1110Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0110Single(value, f);
- doc.endElement();
- }
-
- protected void saveEReferenceContained1111Single(EObject value, EStructuralFeature f) {
- assert null != value;
- assert !f.isMany();
-
- doc.startElement(getFeatureWrapperQName(f));
- saveEReferenceContained0111Single(value, f);
- doc.endElement();
- }
-
- protected String getFeatureQName(EStructuralFeature eStructuralFeature) {
- String featureXMLName = xmlPersistenceMappingExtendedMetaData.getXMLName(eStructuralFeature);
- EPackage ePackage = eStructuralFeature.getEContainingClass().getEPackage();
- String prefix = helper.getPrefix(ePackage);
- return getQName(prefix, featureXMLName);
- }
-
- protected String getFeatureWrapperQName(EStructuralFeature eStructuralFeature) {
- String featureWrapperXMLName = xmlPersistenceMappingExtendedMetaData.getXMLWrapperName(eStructuralFeature);
- EPackage ePackage = eStructuralFeature.getEContainingClass().getEPackage();
- String prefix = helper.getPrefix(ePackage);
- return getQName(prefix, featureWrapperXMLName);
- }
-
- protected String getClassifierQName(EClassifier eClassifier) {
- String classifierXMLName = xmlPersistenceMappingExtendedMetaData.getXMLName(eClassifier);
- EPackage ePackage = eClassifier.getEPackage();
- String prefix = helper.getPrefix(ePackage);
- return getQName(prefix, classifierXMLName);
- }
-
- protected String getClassifierQName(EClassifier eClassifier, EStructuralFeature eStructuralFeature) {
- String classifierXMLName = xmlPersistenceMappingExtendedMetaData.getXMLName(eClassifier, eStructuralFeature);
- EPackage ePackage = eClassifier.getEPackage();
- String prefix = helper.getPrefix(ePackage);
- return getQName(prefix, classifierXMLName);
- }
-
- protected String getClassifierWrapperQName(EClassifier eClassifier) {
- String classifierWrapperXMLName = xmlPersistenceMappingExtendedMetaData.getXMLWrapperName(eClassifier);
- EPackage ePackage = eClassifier.getEPackage();
- String prefix = helper.getPrefix(ePackage);
- return getQName(prefix, classifierWrapperXMLName);
- }
-
- protected String getQName(String prefix, String name) {
- if (null == prefix || 0 == prefix.length()) {
- return name;
- } else {
- return prefix + ":" + name; //$NON-NLS-1$
- }
- }
-
- @Override
- protected void init(XMLResource resource, Map<?, ?> options) {
- super.init(resource, options);
-
- // set extended meta data
- Object extendedMetaDataOption = options.get(XMLResource.OPTION_EXTENDED_META_DATA);
- if (null != extendedMetaDataOption && extendedMetaDataOption instanceof XMLPersistenceMappingExtendedMetaData) {
- xmlPersistenceMappingExtendedMetaData = (XMLPersistenceMappingExtendedMetaData) options.get(XMLResource.OPTION_EXTENDED_META_DATA);
- extendedMetaData = xmlPersistenceMappingExtendedMetaData;
- } else {
- // default
- xmlPersistenceMappingExtendedMetaData = xmlResource == null || xmlResource.getResourceSet() == null ? XMLPersistenceMappingExtendedMetaData.INSTANCE
- : new XMLPersistenceMappingExtendedMetaDataImpl(xmlResource.getResourceSet().getPackageRegistry());
- extendedMetaData = xmlPersistenceMappingExtendedMetaData;
- }
- helper.setExtendedMetaData(xmlPersistenceMappingExtendedMetaData);
-
- Object namespaceToPrefixMapObject = options.get(XMLPersistenceMappingResource.OPTION_NAMEPSACE_TO_PREFIX_MAP);
- if (null != namespaceToPrefixMapObject && namespaceToPrefixMapObject instanceof Map<?, ?>) {
- @SuppressWarnings("unchecked")
- Map<Object, Object> namespaceToPrefixMap = (Map<Object, Object>) namespaceToPrefixMapObject;
- EMap<String, String> prefixToNamespaceMap = helper.getPrefixToNamespaceMap();
- for (Map.Entry<Object, Object> entry : namespaceToPrefixMap.entrySet()) {
- Object namespace = entry.getKey();
- Object prefix = entry.getValue();
- if (namespace instanceof String && prefix instanceof String) {
- if (prefixToNamespaceMap.contains(prefix)) {
- // TODO: handle namespace redefinitions
- if (null == redefinedNamespaceUriToPrefixMap) {
- redefinedNamespaceUriToPrefixMap = new HashMap<String, String>();
- }
- redefinedNamespaceUriToPrefixMap.put((String) namespace, (String) prefix);
- } else {
- prefixToNamespaceMap.put((String) prefix, (String) namespace);
- }
- }
- }
- }
-
- assert null != xmlPersistenceMappingExtendedMetaData : "xmlPersistenceMappingExtendedMetaData should never be null"; //$NON-NLS-1$
- assert null != extendedMetaData : "extendedMetaData should never be null"; //$NON-NLS-1$
- }
-
- protected Collection<EClass> getOrderedClasses(List<? extends InternalEObject> values) {
- Set<EClass> classesSet = new LinkedHashSet<EClass>();
- for (EObject value : values) {
- classesSet.add(value.eClass());
- }
-
- List<EClass> classesList = new ArrayList<EClass>(classesSet);
- Comparator<EClass> comparator = new Comparator<EClass>() {
- public int compare(EClass o1, EClass o2) {
- return o1.getName().compareTo(o2.getName());
- }
- };
-
- Collections.sort(classesList, comparator);
-
- return classesList;
- }
-
- protected boolean isXMLPersistenceMappingEnabled(EStructuralFeature feature) {
- return xmlPersistenceMappingExtendedMetaData.isXMLPersistenceMappingEnabled(feature);
- }
-
- @Override
- protected void saveElementID(EObject o) {
- // avoid writing the ID since this is already written as usual attribute
- saveFeatures(o);
- }
-
-}
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/doc-files/LoadPatternEAttributeContained0100.png b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/doc-files/LoadPatternEAttributeContained0100.png
deleted file mode 100644
index da8e79d..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/internal/serialization/doc-files/LoadPatternEAttributeContained0100.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/IdAdapter.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/IdAdapter.java
deleted file mode 100644
index 0de7ac2..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/IdAdapter.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Mark Broerkens - initial API and implementation
- *
- */
-package org.eclipse.rmf.serialization;
-
-import java.util.Collection;
-import java.util.Map;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.TreeIterator;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-public class IdAdapter extends EContentAdapter {
- final Map<String, EObject> idToEObjectMap;
- final Map<EObject, String> eObjectToIDMap;
- final Collection<EPackage> createIdForPackages;
-
- public IdAdapter(Map<String, EObject> idToEObjectMap, Map<EObject, String> eObjectToIDMap, Collection<EPackage> createIdForPackages) {
- super();
- this.idToEObjectMap = idToEObjectMap;
- this.eObjectToIDMap = eObjectToIDMap;
- this.createIdForPackages = createIdForPackages;
- }
-
- @Override
- public boolean isAdapterForType(Object type) {
- // TODO Auto-generated method stub
- return super.isAdapterForType(type);
- }
-
- @Override
- public void notifyChanged(Notification n) {
- assert null != n.getNotifier();
- super.notifyChanged(n); // the superclass handles adding/removing this Adapter to new Books
-
- Object notifier_ = n.getNotifier();
- if (!n.isTouch()) {
- if (notifier_ instanceof EObject) {
- Object feature = n.getFeature();
- if (feature instanceof EAttribute) {
- // handle changed id
- EAttribute attribute = (EAttribute) feature;
- if (attribute.isID()) {
- String newId = n.getNewStringValue();
- String oldId = n.getOldStringValue();
- EObject objectWithId = (EObject) n.getNotifier();
- switch (n.getEventType()) {
- case Notification.SET:
- if (null == newId) {
- eObjectToIDMap.remove(objectWithId);
- } else {
- eObjectToIDMap.put(objectWithId, newId);
- idToEObjectMap.put(newId, objectWithId);
- }
-
- if (null != oldId) {
- idToEObjectMap.remove(oldId);
- }
- break;
- case Notification.UNSET:
- eObjectToIDMap.remove(objectWithId);
- idToEObjectMap.remove(oldId);
- break;
- }
- }
- } else {
- // handle removed or added objects
- EReference reference = (EReference) feature;
- if (reference.isContainment()) {
-
- switch (n.getEventType()) {
- case Notification.SET:
- case Notification.ADD:
- handleNewObjectAndSubObjects((EObject) n.getNewValue());
- break;
- case Notification.ADD_MANY:
- EList<EObject> newObjects = (EList<EObject>) n.getNewValue();
- int size = newObjects.size();
- for (int i = 0; i < size; i++) {
- handleNewObjectAndSubObjects(newObjects.get(i));
- }
- break;
- case Notification.UNSET:
- case Notification.REMOVE:
- handleRemoveObjectAndSubObjects((EObject) n.getOldValue());
- break;
- case Notification.REMOVE_MANY:
- EList<EObject> removeObjects = (EList<EObject>) n.getOldValue();
- size = removeObjects.size();
- for (int i = 0; i < size; i++) {
- handleRemoveObjectAndSubObjects(removeObjects.get(i));
- }
- break;
- }
-
- }
- }
-
- } else if (notifier_ instanceof Resource) {
- // feature is null
- int featureID = n.getFeatureID(Resource.class);
- if (Resource.RESOURCE__CONTENTS == featureID) {
- switch (n.getEventType()) {
- case Notification.SET:
- case Notification.ADD:
- handleNewObjectAndSubObjects((EObject) n.getNewValue());
- break;
- case Notification.ADD_MANY:
- EList<EObject> newObjects = (EList<EObject>) n.getNewValue();
- int size = newObjects.size();
- for (int i = 0; i < size; i++) {
- handleNewObjectAndSubObjects(newObjects.get(i));
- }
- break;
- case Notification.UNSET:
- case Notification.REMOVE:
- handleRemoveObjectAndSubObjects((EObject) n.getOldValue());
- break;
- case Notification.REMOVE_MANY:
- EList<EObject> removeObjects = (EList<EObject>) n.getOldValue();
- size = removeObjects.size();
- for (int i = 0; i < size; i++) {
- handleRemoveObjectAndSubObjects(removeObjects.get(i));
- }
- break;
- }
- }
- } else if (notifier_ instanceof ResourceSet) {
- // NOP
- } else {
- // NOP
- }
-
- } // end if isTouch
-
- }// end notifyChanged
-
- void handleNewObjectAndSubObjects(EObject objectWithId) {
- if (null != objectWithId) {
- handleNewObject(objectWithId);
- }
- TreeIterator<EObject> iterator = objectWithId.eAllContents();
- while (iterator.hasNext()) {
- handleNewObject(iterator.next());
- }
- }
-
- void handleNewObject(EObject objectWithId) {
- assert null != objectWithId;
- EAttribute idAttribute = objectWithId.eClass().getEIDAttribute();
- if (null != idAttribute) {
- String id = (String) objectWithId.eGet(idAttribute);
- if ((id == null || 0 == id.length()) && createIdForPackages.contains(objectWithId.eClass().getEPackage())) {
- id = EcoreUtil.generateUUID();
- objectWithId.eSet(idAttribute, id);
- // id map gets updated by notification on setId
- } else {
- eObjectToIDMap.put(objectWithId, id);
- idToEObjectMap.put(id, objectWithId);
- }
- }
- }
-
- void handleRemoveObjectAndSubObjects(EObject objectWithId) {
- if (null != objectWithId) {
- handleRemoveObject(objectWithId);
- }
- TreeIterator<EObject> iterator = objectWithId.eAllContents();
- while (iterator.hasNext()) {
- handleRemoveObject(iterator.next());
- }
- }
-
- void handleRemoveObject(EObject objectWithId) {
- assert null != objectWithId;
- String id = eObjectToIDMap.remove(objectWithId);
- if (null != id) {
- idToEObjectMap.remove(id);
- }
- }
-
-}
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingExtendedMetaData.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingExtendedMetaData.java
deleted file mode 100644
index 72da53e..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingExtendedMetaData.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-package org.eclipse.rmf.serialization;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.util.ExtendedMetaData;
-
-public interface XMLPersistenceMappingExtendedMetaData extends ExtendedMetaData {
-
- /**
- * The URI used as the annotation source:
- * "http:///org/eclipse/sphinx/emf/serialization/XMLPersistenceMappingExtendedMetaData".
- */
- String XML_PERSISTENCE_MAPPING_ANNOTATION_SOURCE_URI = "http:///org/eclipse/sphinx/emf/serialization/XMLPersistenceMappingExtendedMetaData"; //$NON-NLS-1$
-
- /**
- * Returns the XML name for a classifier. This is the name is used if a classifier XML element is configured.
- * <p>
- * details key: "name"
- */
- String getXMLName(EClassifier eClassifier);
-
- /**
- * Returns the XML name for a classifier in a context of a given feature. This name is used if a classifier XML
- * element is configured.
- * <p>
- * details key: Classifier "name" <br/>
- * details key: EStructuralFeature "classifierNameSuffix"
- */
- String getXMLName(EClassifier classifier, EStructuralFeature eStructuralFeature);
-
- /**
- * Sets the XML name for a classifier. This is the name is used if a classifier XML element is configured.
- * <p>
- * details key: "xmlName"
- */
- // void setXMLName(EClassifier eClassifier, String xmlName);
-
- /**
- * Returns the XML wrapper name for a classifier. This is the name is used if a classifier wrapper XML element is
- * configured.
- * <p>
- * details key: "wrapperName"
- */
- String getXMLWrapperName(EClassifier eClassifier);
-
- /**
- * Sets the XML wrapper name for a classifier. This is the name is used if a classifier wrapper XML element is
- * configured.
- * <p>
- * details key: "wrapperName"
- */
- // void setXMLWrapperName(EClassifier eClassifier, String xmlName);
-
- /**
- * Returns the XML name for a structural feature. This is the name is used if a feature XML element is configured.
- * <p>
- * details key: "name"
- */
- String getXMLName(EStructuralFeature eStructuralFeature);
-
- /**
- * Set the XML name for a structural feature. This is the name is used if a feature XML element is configured.
- * <p>
- * details key: "name"
- */
- // void setXMLName(EStructuralFeature eStructuralFeature, String xmlName);
-
- /**
- * Returns the XML name for a structural feature. This is the name is used if a feature wrapper XML element is
- * configured.
- * <p>
- * details key: "wrapperName"
- */
- String getXMLWrapperName(EStructuralFeature eStructuralFeature);
-
- /**
- * Set the XML name for a structural feature. This is the name is used if a feature wrapper XML element is
- * configured.
- * <p>
- * details key: "wrapperName"
- */
- // void setXMLWrapperName(EStructuralFeature eStructuralFeature, String xmlName);
-
- /**
- * Returns the classifier with the given XML name within the package with the given namespace.
- */
- EClassifier getTypeByXMLName(String namespace, String xmlName);
-
- /**
- * Returns the classifier with the given XML name within the package with the given namespace.
- */
- EClassifier getTypeByXMLName(String namespace, String xmlName, EStructuralFeature feature);
-
- /**
- * Returns the classifier with the given XML wrapper name within the package with the given namespace.
- */
- EClassifier getTypeByXMLWrapperName(String namespace, String xmlWrapperName);
-
- /**
- * Returns the classifier with the given XML name within the given package.
- */
- EClassifier getTypeByXMLName(EPackage ePackage, String xmlName);
-
- /**
- * Returns the classifier with the given XML name within the given package.
- */
- EClassifier getTypeByXMLWrapperName(EPackage ePackage, String xmlWrapperName);
-
- /**
- * Retrieves the package with the specified namespace URI from the package registry associated with this instance.
- */
- EPackage getPackage(String namespace);
-
- boolean isXMLPersistenceMappingEnabled(EStructuralFeature feature);
-
- /**
- * Returns a structural feature within a class, corresponding to a local attribute with the given namespace and
- * name, or, failing that, a document root feature corresponding to a global attribute with the given namespace and
- * name that is {@link #getAffiliation(EClass, EStructuralFeature) affiliated} with a feature in the class.
- */
- EStructuralFeature getAttribute(EClass eClass, String namespace, String name);
-
- /**
- * Returns a structural feature within a class, corresponding to a local element with the given namespace and name,
- * or, failing that, a document root feature corresponding to a global element with the given namespace and name
- * that is {@link #getAffiliation(EClass, EStructuralFeature) affiliated} with a feature in the class.
- */
- EStructuralFeature getFeatureByXMLElementName(EClass eClass, String namespace, String name);
-
- int SERIALIZATION_STRUCTURE__UNDEFINED = -1;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * ...
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=false" <br/>
- * details key: "featureElement=false" <br/>
- * details key: "classifierWrapperElement=false"<br/>
- * details key: "classifierElement=false" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__0000__NONE = 0;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * (<ClassifierName> ... </ClassifierName>)?
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=false" <br/>
- * details key: "featureElement=false" <br/>
- * details key: "classifierWrapperElement=false"<br/>
- * details key: "classifierElement=true" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__0001__CLASSIFIER_ELEMENT = 1;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * <ClassifierWrapperName>
- * ( ... )?
- * </ClassifierWrapperName>
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=false" <br/>
- * details key: "featureElement=false" <br/>
- * details key: "classifierWrapperElement=true"<br/>
- * details key: "classifierElement=false" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__0010__CLASSIFIER_WRAPPER_ELEMENT = 2;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * <ClassifierWrapperName>
- * (<ClassifierName> ... </ClassifierName>)?
- * </ClassifierWrapperName>
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=false" <br/>
- * details key: "featureElement=false" <br/>
- * details key: "classifierWrapperElement=true"<br/>
- * details key: "classifierElement=true" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__0011__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT = 3;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * (<FeatureName>
- * ...
- * </FeatureName>)?
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=false" <br/>
- * details key: "featureElement=true" <br/>
- * details key: "classifierWrapperElement=false"<br/>
- * details key: "classifierElement=false" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT = 4;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * (<FeatureName>
- * <ClassifierName> ... </ClassifierName>
- * </FeatureName>)?
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=false" <br/>
- * details key: "featureElement=true" <br/>
- * details key: "classifierWrapperElement=false"<br/>
- * details key: "classifierElement=true" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT = 5;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * (<FeatureName>
- * <ClassifierWrapperName> ... </ClassifierWrapperName>
- * </FeatureName>)?
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=false" <br/>
- * details key: "featureElement=true" <br/>
- * details key: "classifierWrapperElement=true"<br/>
- * details key: "classifierElement=false" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__0110__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT = 6;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * (<FeatureName>
- * <ClassifierWrapperName>
- * (<ClassifierName> ... </ClassifierName>)?
- * </ClassifierWrapperName>
- * </FeatureName>)?
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=false" <br/>
- * details key: "featureElement=true" <br/>
- * details key: "classifierWrapperElement=true"<br/>
- * details key: "classifierElement=true" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__0111__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT = 7;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * <FeatureWrapperName>
- * ( ... )?
- * </FeatureWrapperName>
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=true" <br/>
- * details key: "featureElement=false" <br/>
- * details key: "classifierWrapperElement=false"<br/>
- * details key: "classifierElement=false" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__1000__FEATURE_WRAPPER_ELEMENT = 8;
-
- /**
- * The feature serialization structure ID for a feature that is serialized using the following XML element
- * structure:
- *
- * <pre>
- * <Parent>
- * <FeatureWrapperName>
- * (<ClassifierName> ... </ClassifierName>)?
- * </FeatureWrapperName>
- * </Parent>
- * </pre>
- *
- * details key: "featureWrapperElement=true" <br/>
- * details key: "featureElement=false" <br/>
- * details key: "classifierWrapperElement=false"<br/>
- * details key: "classifierElement=true" <br/>
- *
- * @see #getFeatureSerializationStructure
- * @see #setFeatureSerializationStructure
- */
- int SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT = 9;
-
- int SERIALIZATION_STRUCTURE__1010__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT = 10;
-
- int SERIALIZATION_STRUCTURE__1011__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT = 11;
-
- int SERIALIZATION_STRUCTURE__1100__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT = 12;
-
- int SERIALIZATION_STRUCTURE__1101__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_ELEMENT = 13;
-
- int SERIALIZATION_STRUCTURE__1110__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT = 14;
-
- int SERIALIZATION_STRUCTURE__1111__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT = 15;
-
- /**
- * Returns the kind of XML structure that should be used to represent the given structural feature.
- * <p>
- * details key: "featureElement" <br/>
- * details key: "featureWrapperElement" <br/>
- * details key: "classifierElement" <br/>
- * details key: "classifierWrapperElement"<br/>
- *
- * @param eStructuralFeature
- * @param featureSerializationKind
- */
- int getFeatureSerializationStructure(EStructuralFeature eStructuralFeature);
-
- /**
- * Sets the kind of XML structure that should be used to represent the given structural feature.
- * <p>
- * details key: "featureElement" <br/>
- * details key: "featureWrapperElement" <br/>
- * details key: "classifierElement" <br/>
- * details key: "classifierWrapperElement"<br/>
- *
- * @param eStructuralFeature
- * @param featureSerializationKind
- */
- void setFeatureSerializationStructure(EStructuralFeature eStructuralFeature, int serializationStructure);
-
- /**
- * The default RMFExtendedMetaData instance.
- */
- XMLPersistenceMappingExtendedMetaData INSTANCE = new XMLPersistenceMappingExtendedMetaDataImpl();
-
-}
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingExtendedMetaDataImpl.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingExtendedMetaDataImpl.java
deleted file mode 100644
index 7840841..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingExtendedMetaDataImpl.java
+++ /dev/null
@@ -1,874 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-package org.eclipse.rmf.serialization;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.ecore.EAnnotation;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EModelElement;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcoreFactory;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
-
-public class XMLPersistenceMappingExtendedMetaDataImpl extends BasicExtendedMetaData implements XMLPersistenceMappingExtendedMetaData {
- static final String WRAPPER_NAME = "wrapperName"; //$NON-NLS-1$
- static final String CLASSIFIER_NAME_SUFFIX = "classifierNameSuffix"; //$NON-NLS-1$
-
- static final String FEATURE_WRAPPER_ELEMENT = "featureWrapperElement"; //$NON-NLS-1$
- static final String FEATURE_ELEMENT = "featureElement"; //$NON-NLS-1$
- static final String CLASSIFIER_WRAPPER_ELEMENT = "classifierWrapperElement"; //$NON-NLS-1$
- static final String CLASSIFIER_ELEMENT = "classifierElement"; //$NON-NLS-1$
-
- static final int FEATURE_WRAPPER_ELEMENT_MASK = 8;
- static final int FEATURE_ELEMENT_MASK = 4;
- static final int CLASSIFIER_WRAPPER_ELEMENT_MASK = 2;
- static final int CLASSIFIER_ELEMENT_MASK = 1;
-
- protected EPackage.Registry registry;
-
- protected int[] fallbackSerializationConfiguration = {
- SERIALIZATION_STRUCTURE__0000__NONE /* 0000 */,
- // SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT/* 0001 */,
- SERIALIZATION_STRUCTURE__0001__CLASSIFIER_ELEMENT /* 0001 */,
- // SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT/* 0010 */,
- SERIALIZATION_STRUCTURE__0010__CLASSIFIER_WRAPPER_ELEMENT /* 0010 */,
- // SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT/* 0011 */,
- SERIALIZATION_STRUCTURE__0011__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT/* 0011 */,
- SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT /* 0100 */,
- SERIALIZATION_STRUCTURE__0101__FEATURE_ELEMENT__CLASSIFIER_ELEMENT/* 0101 */,
- // SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT/* 0110 */,
- SERIALIZATION_STRUCTURE__0110__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT/* 0110 */,
- // SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT/* 0111 */,
- SERIALIZATION_STRUCTURE__0111__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT /* 0111 */,
- SERIALIZATION_STRUCTURE__1000__FEATURE_WRAPPER_ELEMENT /* 1000 */,
- SERIALIZATION_STRUCTURE__1001__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT/* 1001 */,
- SERIALIZATION_STRUCTURE__1010__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT/* 1010 */,
- SERIALIZATION_STRUCTURE__1011__FEATURE_WRAPPER_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT/* 1011 */,
- SERIALIZATION_STRUCTURE__1100__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT/* 1100_ */,
- SERIALIZATION_STRUCTURE__1101__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_ELEMENT /* 1101 */,
- SERIALIZATION_STRUCTURE__1110__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT/* 1110 */,
- SERIALIZATION_STRUCTURE__1111__FEATURE_WRAPPER_ELEMENT__FEATURE_ELEMENT__CLASSIFIER_WRAPPER_ELEMENT__CLASSIFIER_ELEMENT /* 1111 */
- };
-
- static final String PLURAL_EXTENSION = "s"; //$NON-NLS-1$
-
- protected Map<EModelElement, Object> extendedMetaDataCache = new HashMap<EModelElement, Object>();
- protected Map<EModelElement, EAnnotation> annotationCache = new HashMap<EModelElement, EAnnotation>();
-
- public static interface XMLPersistenceMappingEPackageExtendedMetaData {
- EClassifier getType(String name);
-
- EClassifier getType(String name, EStructuralFeature feature);
-
- EClassifier getTypeByWrapperName(String wrapperName);
-
- void renameToXMLName(EClassifier eClassifier, String newName);
-
- void renameToXMLWrapperName(EClassifier eClassifier, String newName);
- }
-
- public class XMLPersistenceMappingEPackageExtendedMetaDataImpl implements XMLPersistenceMappingEPackageExtendedMetaData {
- protected EPackage ePackage;
- protected boolean isInitialized;
- protected boolean isQualified;
- protected Map<String, EClassifier> xmlNameToClassifierMap = new HashMap<String, EClassifier>();
- protected Map<String, EClassifier> xmlWrapperNameToClassifierMap = new HashMap<String, EClassifier>();
-
- public XMLPersistenceMappingEPackageExtendedMetaDataImpl(EPackage ePackage) {
- this.ePackage = ePackage;
- }
-
- public EClassifier getType(String name) {
- EClassifier result = null;
- if (xmlNameToClassifierMap != null) {
- result = xmlNameToClassifierMap.get(name);
- }
- if (result == null) {
- List<EClassifier> eClassifiers = ePackage.getEClassifiers();
- int size = eClassifiers.size();
- if (xmlNameToClassifierMap == null || xmlNameToClassifierMap.size() != size) {
- Map<String, EClassifier> nameToClassifierMap = new HashMap<String, EClassifier>();
- if (xmlNameToClassifierMap != null) {
- nameToClassifierMap.putAll(xmlNameToClassifierMap);
- }
-
- // For demand created created packages we allow the list of classifiers to grow
- // so this should handle those additional instances.
- //
- int originalMapSize = nameToClassifierMap.size();
- for (int i = originalMapSize; i < size; ++i) {
- EClassifier eClassifier = eClassifiers.get(i);
- String eClassifierName = getXMLName(eClassifier);
- EClassifier conflictingEClassifier = nameToClassifierMap.put(eClassifierName, eClassifier);
- if (conflictingEClassifier != null && conflictingEClassifier != eClassifier) {
- nameToClassifierMap.put(eClassifierName, conflictingEClassifier);
- }
- }
-
- if (nameToClassifierMap.size() != size) {
- for (int i = 0; i < originalMapSize; ++i) {
- EClassifier eClassifier = eClassifiers.get(i);
- String eClassifierName = getXMLName(eClassifier);
- EClassifier conflictingEClassifier = nameToClassifierMap.put(eClassifierName, eClassifier);
- if (conflictingEClassifier != null && conflictingEClassifier != eClassifier) {
- nameToClassifierMap.put(eClassifierName, conflictingEClassifier);
- }
- }
- }
- result = nameToClassifierMap.get(name);
- xmlNameToClassifierMap = nameToClassifierMap;
- }
- }
-
- return result;
- }
-
- public EClassifier getType(String name, EStructuralFeature feature) {
- // TODO optimize implementation for performance
- String classifierNameSuffix = getXMLPersistenceMappingExtendedMetaData(feature).getXMLClassiferNameSuffix();
- EClassifier classifier;
- int classifierNameSuffixLength = classifierNameSuffix.length();
- if (0 == classifierNameSuffixLength) {
- classifier = getType(name);
- } else {
- if (name.endsWith(classifierNameSuffix)) {
- String classfierName = name.substring(0, name.length() - classifierNameSuffixLength);
- classifier = getType(classfierName);
- } else {
- classifier = null;
- }
- }
-
- return classifier;
- }
-
- public EClassifier getTypeByWrapperName(String name) {
- EClassifier result = null;
- if (xmlWrapperNameToClassifierMap != null) {
- result = xmlWrapperNameToClassifierMap.get(name);
- }
- if (result == null) {
- List<EClassifier> eClassifiers = ePackage.getEClassifiers();
- int size = eClassifiers.size();
- if (xmlWrapperNameToClassifierMap == null || xmlWrapperNameToClassifierMap.size() != size) {
- Map<String, EClassifier> wrapperNameToClassifierMap = new HashMap<String, EClassifier>();
- if (xmlWrapperNameToClassifierMap != null) {
- wrapperNameToClassifierMap.putAll(xmlWrapperNameToClassifierMap);
- }
-
- // For demand created created packages we allow the list of classifiers to grow
- // so this should handle those additional instances.
- //
- int originalMapSize = wrapperNameToClassifierMap.size();
- for (int i = originalMapSize; i < size; ++i) {
- EClassifier eClassifier = eClassifiers.get(i);
- String eClassifierWrapperName = getXMLWrapperName(eClassifier);
- EClassifier conflictingEClassifier = wrapperNameToClassifierMap.put(eClassifierWrapperName, eClassifier);
- if (conflictingEClassifier != null && conflictingEClassifier != eClassifier) {
- wrapperNameToClassifierMap.put(eClassifierWrapperName, conflictingEClassifier);
- }
- }
-
- if (wrapperNameToClassifierMap.size() != size) {
- for (int i = 0; i < originalMapSize; ++i) {
- EClassifier eClassifier = eClassifiers.get(i);
- String eClassifierWrapperName = getXMLWrapperName(eClassifier);
- EClassifier conflictingEClassifier = wrapperNameToClassifierMap.put(eClassifierWrapperName, eClassifier);
- if (conflictingEClassifier != null && conflictingEClassifier != eClassifier) {
- wrapperNameToClassifierMap.put(eClassifierWrapperName, conflictingEClassifier);
- }
- }
- }
- result = wrapperNameToClassifierMap.get(name);
- xmlWrapperNameToClassifierMap = wrapperNameToClassifierMap;
- }
- }
-
- return result;
- }
-
- public void renameToXMLName(EClassifier eClassifier, String newName) {
- if (xmlNameToClassifierMap != null) {
- xmlNameToClassifierMap.values().remove(eClassifier);
- xmlNameToClassifierMap.put(newName, eClassifier);
- }
- }
-
- public void renameToXMLWrapperName(EClassifier eClassifier, String newName) {
- if (xmlWrapperNameToClassifierMap != null) {
- xmlWrapperNameToClassifierMap.values().remove(eClassifier);
- xmlWrapperNameToClassifierMap.put(newName, eClassifier);
- }
- }
- }
-
- public static interface XMLPersistenceMappingEClassifierExtendedMetaData {
- String getXMLName();
-
- void setXMLName(String name);
-
- String getXMLWrapperName();
-
- void setXMLWrapperName(String name);
-
- EStructuralFeature getFeatureByXMLElementName(String namespace, String xmlElementName);
-
- }
-
- class XMLPersistenceMappingEDataTypeExtendedMetaDataImpl implements XMLPersistenceMappingEClassifierExtendedMetaData {
- protected static final String UNINITIALIZED_STRING = "uninitialized"; //$NON-NLS-1$
- protected static final int UNINITIALIZED_INT = -2;
-
- protected EClassifier eClassifier;
- protected String xmlName = UNINITIALIZED_STRING;
- protected String xmlWrapperName = UNINITIALIZED_STRING;
-
- public XMLPersistenceMappingEDataTypeExtendedMetaDataImpl(EClassifier eClassifier) {
- super();
- this.eClassifier = eClassifier;
- }
-
- public String getXMLName() {
- if (UNINITIALIZED_STRING == xmlName) {
- setXMLName(basicGetName(eClassifier));
- }
- return xmlName;
- }
-
- public void setXMLName(String xmlName) {
- this.xmlName = xmlName;
- }
-
- public String getXMLWrapperName() {
- if (UNINITIALIZED_STRING == xmlName) {
- setXMLWrapperName(basicGetWrapperName(eClassifier));
- }
- return xmlWrapperName;
- }
-
- public void setXMLWrapperName(String xmlWrapperName) {
- this.xmlWrapperName = xmlWrapperName;
-
- }
-
- public EStructuralFeature getFeatureByXMLElementName(String namespace, String xmlElementName) {
- throw new UnsupportedOperationException("Can't get a feature of an EDataType"); //$NON-NLS-1$
- }
- }
-
- class XMLPersistenceMappingEClassExtendedMetaDataImpl implements XMLPersistenceMappingEClassifierExtendedMetaData {
- protected static final String UNINITIALIZED_STRING = "uninitialized"; //$NON-NLS-1$
- protected static final int UNINITIALIZED_INT = -2;
-
- protected EClass eClass;
- protected String xmlName = UNINITIALIZED_STRING;
- protected String xmlWrapperName = UNINITIALIZED_STRING;
-
- protected Map<String, EStructuralFeature> xmlNameToEStructuralFeatureMap = new HashMap<String, EStructuralFeature>();
-
- public XMLPersistenceMappingEClassExtendedMetaDataImpl(EClassifier eClassifier) {
- super();
- assert eClassifier instanceof EClass;
- eClass = (EClass) eClassifier;
- }
-
- public String getXMLName() {
- if (UNINITIALIZED_STRING == xmlName) {
- setXMLName(basicGetName(eClass));
- }
- return xmlName;
- }
-
- public void setXMLName(String xmlName) {
- this.xmlName = xmlName;
- }
-
- public String getXMLWrapperName() {
- if (UNINITIALIZED_STRING == xmlWrapperName) {
- setXMLWrapperName(basicGetWrapperName(eClass));
- }
- return xmlWrapperName;
- }
-
- public void setXMLWrapperName(String xmlWrapperName) {
- this.xmlWrapperName = xmlWrapperName;
-
- }
-
- /**
- * return first EStructuralFeature that fits to the XML element name TODO: add error handling for ambiguous
- * features
- */
- public EStructuralFeature getFeatureByXMLElementName(String namespace, String xmlElementName) {
- // try to find the EStructural feature locally
- // TODO: consider namespace
- EStructuralFeature result = xmlNameToEStructuralFeatureMap.get(xmlElementName);
- if (null == result) {
- Iterator<EStructuralFeature> allFeaturesIter = eClass.getEAllStructuralFeatures().iterator();
- // TODO: we should iterate over features with no kind or
- List<EStructuralFeature> results = new ArrayList<EStructuralFeature>();
- EStructuralFeature possibleResult;
-
- while (allFeaturesIter.hasNext()) {
- EStructuralFeature feature = allFeaturesIter.next();
- possibleResult = null;
- String xmlWrapperName = getXMLPersistenceMappingExtendedMetaData(feature).getXMLWrapperName();
-
- // search by feature wrapper
- if (xmlWrapperName.equals(xmlElementName) && isIdentifiedByFeatureWrapper(feature)) {
- if (isIdentifiedByFeatureWrapper(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- }
-
- if (null == possibleResult) {
- // search by feature name
- String xmlName = getXMLPersistenceMappingExtendedMetaData(feature).getXMLName();
- if (xmlName.equals(xmlElementName)) {
- if (isIdentifiedByFeature(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- }
- }
-
- if (null == possibleResult) {
- // search by type wrapper (assuming type is type of feature)
- String classifierWrapperXMLName = getXMLPersistenceMappingExtendedMetaData(feature.getEType()).getXMLWrapperName();
- if (classifierWrapperXMLName.equals(xmlElementName)) {
- if (isIdentifiedByClassifierWrapper(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- } else {
- // search by type wrapper name (assuming type not type of feature)
- EClassifier classifier = getTypeByXMLWrapperName(namespace, xmlElementName);
- if (null != classifier) {
- if (feature.getEType().equals(classifier)) {
- if (isIdentifiedByClassifierWrapper(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- } else if (classifier instanceof EClass) {
- EClass eClass = (EClass) classifier;
- // check if the identified is a sub-type of the eType of the reference
- // note: EObject is not listed in EAllSuperTypes
- if (feature.getEType() == EcorePackage.eINSTANCE.getEObject()
- || eClass.getEAllSuperTypes().contains(feature.getEType())) {
- if (isIdentifiedByClassifierWrapper(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- } else {
- // not found, continue with next feature
- }
- } else {
- // not found, continue with next feature
- }
- }
- }
- }
- if (null == possibleResult) {
- // search by type name (assuming type not type of feature)
- EClassifier classifier;
- EPackage ePackage = getPackage(namespace);
- if (null == ePackage) {
- // unregistered package
- classifier = demandType(namespace, xmlElementName);
- } else {
- // registered package
- classifier = getTypeByXMLName(namespace, xmlElementName);
- }
-
- if (null != classifier) {
- if (feature.getEType().equals(classifier)) {
- if (isIdentifiedByClassifier(feature)) {
- possibleResult = feature;
- } else if (isEReference_Contained0000(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- } else if (classifier instanceof EClass) {
- EClass eClass = (EClass) classifier;
- // check if the identified is a sub-type of the eType of the reference
- // note: EObject is not listed in EAllSuperTypes
- if (feature.getEType() == EcorePackage.eINSTANCE.getEObject()
- || eClass.getEAllSuperTypes().contains(feature.getEType())) {
- if (isIdentifiedByClassifier(feature)) {
- possibleResult = feature;
- } else if (isEReference_Contained0000(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- } else if (isEReference_Contained0000(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- } else if (isEReference_Contained0000(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- } else if (isEReference_Contained0000(feature)) {
- possibleResult = feature;
- } else {
- // not found, continue with next feature
- }
- }
-
- if (null != possibleResult) {
- results.add(possibleResult);
- }
- } // while
-
- // if there are multiple valid features, we prefer the feature that is many and is not NONE
- int size = results.size();
- if (1 == size) {
- result = results.get(0);
- } else if (1 < size) {
- // rule 1 we like the features that are explicitly selected
- List<EStructuralFeature> identifiedFeatures = new ArrayList<EStructuralFeature>();
- List<EStructuralFeature> noneFeatures = new ArrayList<EStructuralFeature>();
- for (int i = 0; i < size; i++) {
- EStructuralFeature feature = results.get(i);
- if (isNone(feature)) {
- noneFeatures.add(feature);
- } else {
- identifiedFeatures.add(feature);
- }
- }
-
- if (identifiedFeatures.isEmpty()) {
- // there are none Features only
- results = noneFeatures;
- } else {
- results = identifiedFeatures;
- }
-
- result = results.get(0);
-
- // try to find a better features that is many
- for (EStructuralFeature feature : results) {
- if (feature.isMany()) {
- result = feature;
- break;
- }
- }
- }
- xmlNameToEStructuralFeatureMap.put(xmlElementName, result);
- } // if (null == result)
-
- // TODO: fall back to standard serialization?
-
- return result;
- }
- }
-
- public static interface XMLPersistenceMappingEStructuralFeatureExtendedMetaData {
- String getXMLName();
-
- void setXMLName(String name);
-
- String getXMLWrapperName();
-
- void setXMLWrapperName(String name);
-
- String getXMLClassiferNameSuffix();
-
- void setXMLClassiferNameSuffix(String suffix);
-
- boolean isXMLPersistenceMappingEnabled();
-
- int getFeatureSerializationStructure();
-
- void setFeatureSerializationStructure(int featureSerializationStructure);
- }
-
- class XMLPersistenceMappingEStructuralFeatureExtendedMetaDataImpl implements XMLPersistenceMappingEStructuralFeatureExtendedMetaData {
- protected static final String UNINITIALIZED_STRING = "uninitialized"; //$NON-NLS-1$
- protected static final int UNINITIALIZED_INT = -2;
-
- protected EStructuralFeature eStructuralFeature;
- protected String xmlName = UNINITIALIZED_STRING;
- protected String xmlWrapperName = UNINITIALIZED_STRING;
- protected String xmlClassifierNameSuffix = UNINITIALIZED_STRING;
- protected int featureSerializationStructure = UNINITIALIZED_INT;
- protected Boolean xmlPersistenceMappingEnabled = null;
-
- public XMLPersistenceMappingEStructuralFeatureExtendedMetaDataImpl(EStructuralFeature eStructuralFeature) {
- super();
- this.eStructuralFeature = eStructuralFeature;
- }
-
- public String getXMLName() {
- if (UNINITIALIZED_STRING == xmlName) {
- setXMLName(basicGetName(eStructuralFeature));
- }
- return xmlName;
- }
-
- public void setXMLName(String xmlName) {
- this.xmlName = xmlName;
- }
-
- public String getXMLWrapperName() {
- if (UNINITIALIZED_STRING == xmlWrapperName) {
- setXMLWrapperName(basicGetWrapperName(eStructuralFeature));
- }
- return xmlWrapperName;
- }
-
- public void setXMLWrapperName(String xmlWrapperName) {
- this.xmlWrapperName = xmlWrapperName;
- }
-
- public String getXMLClassiferNameSuffix() {
- if (UNINITIALIZED_STRING == xmlClassifierNameSuffix) {
- setXMLClassiferNameSuffix(basicGetClassifierNameSuffix(eStructuralFeature));
- }
- return xmlClassifierNameSuffix;
- }
-
- public boolean isXMLPersistenceMappingEnabled() {
- if (null == xmlPersistenceMappingEnabled) {
- setXMLPersistenceMappingEnabled(basicIsXMLPersistenceMappingEnabled(eStructuralFeature));
- }
- return xmlPersistenceMappingEnabled;
-
- };
-
- void setXMLPersistenceMappingEnabled(Boolean xmlPersistenceMappingEnabled) {
- this.xmlPersistenceMappingEnabled = xmlPersistenceMappingEnabled;
- };
-
- public void setXMLClassiferNameSuffix(String suffix) {
- xmlClassifierNameSuffix = suffix;
- }
-
- public int getFeatureSerializationStructure() {
- if (UNINITIALIZED_INT == featureSerializationStructure) {
- setFeatureSerializationStructure(basicGetFeatureSerializationStructure(eStructuralFeature));
- }
- return featureSerializationStructure;
- }
-
- public void setFeatureSerializationStructure(int featureSerializationStructure) {
- this.featureSerializationStructure = featureSerializationStructure;
- }
-
- }
-
- public XMLPersistenceMappingExtendedMetaDataImpl() {
- this(EPackage.Registry.INSTANCE);
- }
-
- public XMLPersistenceMappingExtendedMetaDataImpl(EPackage.Registry registry) {
- super();
- this.registry = registry;
- }
-
- public XMLPersistenceMappingExtendedMetaDataImpl(int[] fallbackSerializations) {
- this();
- int min = 0;
- int max = fallbackSerializationConfiguration.length;
- for (int i = min; i < max && i < fallbackSerializations.length; i++) {
- int newValue = fallbackSerializations[i];
- if (min <= i && i < max) {
- fallbackSerializationConfiguration[i] = newValue;
- }
- }
- }
-
- public boolean isXMLPersistenceMappingEnabled(EStructuralFeature feature) {
- return null != getRMFAnnotation(feature, false);
- }
-
- public String getXMLName(EClassifier eClassifier) {
- return getXMLPersistenceMappingExtendedMetaData(eClassifier).getXMLName();
- }
-
- public String getXMLWrapperName(EClassifier eClassifier) {
- return getXMLPersistenceMappingExtendedMetaData(eClassifier).getXMLWrapperName();
- }
-
- public String getXMLName(EClassifier eClassifier, EStructuralFeature eStructuralFeature) {
- StringBuffer buffer = new StringBuffer();
- buffer.append(getXMLPersistenceMappingExtendedMetaData(eClassifier).getXMLName());
- buffer.append(getXMLPersistenceMappingExtendedMetaData(eStructuralFeature).getXMLClassiferNameSuffix());
- return buffer.toString();
- }
-
- public void setXMLWrapperName(EClassifier eClassifier, String xmlWrapperName) {
- EAnnotation eAnnotation = getRMFAnnotation(eClassifier, true);
- eAnnotation.getDetails().put(WRAPPER_NAME, xmlWrapperName);
- getXMLPersistenceMappingExtendedMetaData(eClassifier).setXMLWrapperName(xmlWrapperName);
- EPackage ePackage = eClassifier.getEPackage();
- if (ePackage != null) {
- getXMLPersistenceMappingExtendedMetaData(ePackage).renameToXMLWrapperName(eClassifier, xmlWrapperName);
- }
- }
-
- public String getXMLName(EStructuralFeature eStructuralFeature) {
- return getXMLPersistenceMappingExtendedMetaData(eStructuralFeature).getXMLName();
- }
-
- public String getXMLWrapperName(EStructuralFeature eStructuralFeature) {
- return getXMLPersistenceMappingExtendedMetaData(eStructuralFeature).getXMLWrapperName();
- }
-
- public void setXMLWrapperName(EStructuralFeature eStructuralFeature, String xmlWrapperName) {
- EAnnotation eAnnotation = getRMFAnnotation(eStructuralFeature, true);
- eAnnotation.getDetails().put(WRAPPER_NAME, xmlWrapperName);
- getXMLPersistenceMappingExtendedMetaData(eStructuralFeature).setXMLWrapperName(xmlWrapperName);
- }
-
- public int getFeatureSerializationStructure(EStructuralFeature eStructuralFeature) {
- return getXMLPersistenceMappingExtendedMetaData(eStructuralFeature).getFeatureSerializationStructure();
- }
-
- public void setFeatureSerializationStructure(EStructuralFeature eStructuralFeature, int serializationStructure) {
- // TODO Auto-generated method stub
-
- }
-
- public EClassifier getTypeByXMLName(String namespace, String xmlName) {
- EPackage ePackage = getPackage(namespace);
- return ePackage == null ? null : getTypeByXMLName(ePackage, xmlName);
- }
-
- public EClassifier getTypeByXMLName(String namespace, String xmlName, EStructuralFeature feature) {
- EPackage ePackage = getPackage(namespace);
- return ePackage == null ? null : getTypeByXMLName(ePackage, xmlName, feature);
- }
-
- public EClassifier getTypeByXMLWrapperName(String namespace, String xmlWrapperName) {
- EPackage ePackage = getPackage(namespace);
- return ePackage == null ? null : getTypeByXMLWrapperName(ePackage, xmlWrapperName);
- }
-
- public EClassifier getTypeByXMLName(EPackage ePackage, String xmlName) {
- return getXMLPersistenceMappingExtendedMetaData(ePackage).getType(xmlName);
- }
-
- public EClassifier getTypeByXMLName(EPackage ePackage, String xmlName, EStructuralFeature feature) {
- return getXMLPersistenceMappingExtendedMetaData(ePackage).getType(xmlName, feature);
- }
-
- public EClassifier getTypeByXMLWrapperName(EPackage ePackage, String xmlWrapperName) {
- return getXMLPersistenceMappingExtendedMetaData(ePackage).getTypeByWrapperName(xmlWrapperName);
- }
-
- @Override
- public EPackage getPackage(String namespace) {
- EPackage ePackage = registry.getEPackage(namespace);
- return ePackage;
- }
-
- public EStructuralFeature getFeatureByXMLElementName(EClass eClass, String namespace, String xmlElementName) {
- return getXMLPersistenceMappingExtendedMetaData(eClass).getFeatureByXMLElementName(namespace, xmlElementName);
- }
-
- protected boolean basicIsXMLPersistenceMappingEnabled(EStructuralFeature eStructuralFeature) {
- return null != getRMFAnnotation(eStructuralFeature, false);
- }
-
- protected String basicGetWrapperName(EClassifier eClassifier) {
- EAnnotation eAnnotation = getRMFAnnotation(eClassifier, false);
- String result = null;
- if (eAnnotation != null) {
- result = eAnnotation.getDetails().get(WRAPPER_NAME);
- }
- if (null == result) {
- result = basicGetName(eClassifier) + PLURAL_EXTENSION;
- }
- return result;
- }
-
- protected String basicGetWrapperName(EStructuralFeature eStructuralFeature) {
- EAnnotation eAnnotation = getRMFAnnotation(eStructuralFeature, false);
- String result = null;
- if (eAnnotation != null) {
- result = eAnnotation.getDetails().get(WRAPPER_NAME);
- }
- if (null == result) {
- result = basicGetName(eStructuralFeature) + PLURAL_EXTENSION;
- }
- return result;
- }
-
- protected String basicGetClassifierNameSuffix(EStructuralFeature eStructuralFeature) {
- EAnnotation eAnnotation = getRMFAnnotation(eStructuralFeature, false);
- String result = null;
- if (eAnnotation != null) {
- result = eAnnotation.getDetails().get(CLASSIFIER_NAME_SUFFIX);
- }
- if (null == result) {
- result = ""; //$NON-NLS-1$
- }
- return result;
- }
-
- /**
- * @param eStructuralFeature
- * @return #SERILIZATION_STRUCTURE__UNDDEFINED, if no annotation is defined
- */
- protected int basicGetFeatureSerializationStructure(EStructuralFeature eStructuralFeature) {
- EAnnotation eAnnotation = getRMFAnnotation(eStructuralFeature, false);
- if (eAnnotation != null) {
- String featureWrapperElement = eAnnotation.getDetails().get(FEATURE_WRAPPER_ELEMENT);
- String featureElement = eAnnotation.getDetails().get(FEATURE_ELEMENT);
- String classifierWrapperElement = eAnnotation.getDetails().get(CLASSIFIER_WRAPPER_ELEMENT);
- String classifierElement = eAnnotation.getDetails().get(CLASSIFIER_ELEMENT);
-
- int result = 0;
- if (null == featureWrapperElement || Boolean.parseBoolean(featureWrapperElement)) {
- // if not explicitly set to false, the feature wrapper element is created
- result += FEATURE_WRAPPER_ELEMENT_MASK;
- }
-
- if (Boolean.parseBoolean(featureElement)) {
- // if explicitly set to true, the feature element is created
- result += FEATURE_ELEMENT_MASK;
- }
-
- if (Boolean.parseBoolean(classifierWrapperElement)) {
- // if explicitly set to true, the classifier wrapper element is created
- result += CLASSIFIER_WRAPPER_ELEMENT_MASK;
- }
-
- if (null == classifierWrapperElement || Boolean.parseBoolean(classifierElement)) {
- // if not explicitly set to false, the classifier element is created
- result += CLASSIFIER_ELEMENT_MASK;
- }
-
- return fallbackSerializationConfiguration[result];
-
- } else {
- // default to standard EMF serialization
- return SERIALIZATION_STRUCTURE__0100__FEATURE_ELEMENT;
- }
- }
-
- protected XMLPersistenceMappingEStructuralFeatureExtendedMetaData getXMLPersistenceMappingExtendedMetaData(EStructuralFeature eStructuralFeature) {
- XMLPersistenceMappingEStructuralFeatureExtendedMetaData result = (XMLPersistenceMappingEStructuralFeatureExtendedMetaData) extendedMetaDataCache
- .get(eStructuralFeature);
- if (result == null) {
- extendedMetaDataCache.put(eStructuralFeature, result = createRMFEStructuralFeatureExtendedMetaData(eStructuralFeature));
- }
- return result;
- }
-
- protected XMLPersistenceMappingEClassifierExtendedMetaData getXMLPersistenceMappingExtendedMetaData(EClassifier eClassifier) {
- XMLPersistenceMappingEClassifierExtendedMetaData result = (XMLPersistenceMappingEClassifierExtendedMetaData) extendedMetaDataCache
- .get(eClassifier);
- if (result == null) {
- extendedMetaDataCache.put(eClassifier, result = createRMFEClassifierExtendedMetaData(eClassifier));
- }
- return result;
- }
-
- protected XMLPersistenceMappingEPackageExtendedMetaData getXMLPersistenceMappingExtendedMetaData(EPackage ePackage) {
- XMLPersistenceMappingEPackageExtendedMetaData result = (XMLPersistenceMappingEPackageExtendedMetaData) extendedMetaDataCache.get(ePackage);
- if (result == null) {
- extendedMetaDataCache.put(ePackage, result = createRMFEPackageExtendedMetaData(ePackage));
- }
- return result;
- }
-
- protected XMLPersistenceMappingEStructuralFeatureExtendedMetaData createRMFEStructuralFeatureExtendedMetaData(
- EStructuralFeature eStructuralFeature) {
- return new XMLPersistenceMappingEStructuralFeatureExtendedMetaDataImpl(eStructuralFeature);
- }
-
- protected XMLPersistenceMappingEClassifierExtendedMetaData createRMFEClassifierExtendedMetaData(EClassifier eClassifier) {
- if (eClassifier instanceof EClass) {
- return new XMLPersistenceMappingEClassExtendedMetaDataImpl(eClassifier);
- } else {
- return new XMLPersistenceMappingEDataTypeExtendedMetaDataImpl(eClassifier);
- }
- }
-
- protected XMLPersistenceMappingEPackageExtendedMetaData createRMFEPackageExtendedMetaData(EPackage ePackage) {
- return new XMLPersistenceMappingEPackageExtendedMetaDataImpl(ePackage);
- }
-
- protected EAnnotation getRMFAnnotation(EModelElement eModelElement, boolean demandCreate) {
- EAnnotation result = annotationCache.get(eModelElement);
- if (result == null) {
- result = eModelElement.getEAnnotation(XML_PERSISTENCE_MAPPING_ANNOTATION_SOURCE_URI);
- }
- if (result == null && demandCreate) {
- result = EcoreFactory.eINSTANCE.createEAnnotation();
- result.setSource(XML_PERSISTENCE_MAPPING_ANNOTATION_SOURCE_URI);
- annotationCache.put(eModelElement, result);
- }
- return result;
- }
-
- protected boolean isIdentifiedByFeatureWrapper(EStructuralFeature feature) {
- int featureSerializationStructure = getXMLPersistenceMappingExtendedMetaData(feature).getFeatureSerializationStructure();
- return FEATURE_WRAPPER_ELEMENT_MASK == (featureSerializationStructure & FEATURE_WRAPPER_ELEMENT_MASK);
- }
-
- protected boolean isIdentifiedByFeature(EStructuralFeature feature) {
- int featureSerializationStructure = getXMLPersistenceMappingExtendedMetaData(feature).getFeatureSerializationStructure();
- return FEATURE_ELEMENT_MASK == (featureSerializationStructure & (FEATURE_WRAPPER_ELEMENT_MASK | FEATURE_ELEMENT_MASK));
- }
-
- protected boolean isIdentifiedByClassifierWrapper(EStructuralFeature feature) {
- int featureSerializationStructure = getXMLPersistenceMappingExtendedMetaData(feature).getFeatureSerializationStructure();
- return CLASSIFIER_WRAPPER_ELEMENT_MASK == (featureSerializationStructure & (FEATURE_WRAPPER_ELEMENT_MASK | FEATURE_ELEMENT_MASK | CLASSIFIER_WRAPPER_ELEMENT_MASK));
- }
-
- protected boolean isIdentifiedByClassifier(EStructuralFeature feature) {
- int featureSerializationStructure = getXMLPersistenceMappingExtendedMetaData(feature).getFeatureSerializationStructure();
- return CLASSIFIER_ELEMENT_MASK == featureSerializationStructure;
- }
-
- protected boolean isNone(EStructuralFeature feature) {
- int featureSerializationStructure = getXMLPersistenceMappingExtendedMetaData(feature).getFeatureSerializationStructure();
- return 0 == featureSerializationStructure;
- }
-
- protected boolean isEReference_Contained0000(EStructuralFeature feature) {
- boolean isEReference_Contained0000;
- if (feature instanceof EReference) {
- EReference reference = (EReference) feature;
- if (reference.isContainment()) {
- isEReference_Contained0000 = isNone(feature);
- } else {
- isEReference_Contained0000 = false;
- }
- } else {
- isEReference_Contained0000 = false;
- }
- return isEReference_Contained0000;
- }
-
-}
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResource.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResource.java
deleted file mode 100644
index d2404a4..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResource.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-package org.eclipse.rmf.serialization;
-
-import org.eclipse.emf.ecore.xmi.XMLResource;
-
-public interface XMLPersistenceMappingResource extends XMLResource {
-
- /**
- * This option allows you to tailor the XML serialization of objects. You should provide an RMFExtendedMetaData as
- * the value of this option.
- *
- * @see org.eclipse.rmf.serialization.RMFExtendedMetaData
- */
- public static final String HREF = "_href"; //$NON-NLS-1$
- public static final String OPTION_PROGRESS_MONITOR = "progress monitor"; //$NON-NLS-1$
- public static final String OPTION_NAMEPSACE_TO_PREFIX_MAP = "namespace to prefix map"; //$NON-NLS-1$
-
-}
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResourceFactoryImpl.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResourceFactoryImpl.java
deleted file mode 100644
index aba5644..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResourceFactoryImpl.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-package org.eclipse.rmf.serialization;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
-
-/**
- * <!-- begin-user-doc --> The <b>Resource Factory</b> associated with the package. <!-- end-user-doc -->
- *
- * @see org.eclipse.rmf.reqif10.util.Reqif10ResourceImpl
- * @generated
- */
-public class XMLPersistenceMappingResourceFactoryImpl extends ResourceFactoryImpl {
- /**
- * Creates an instance of the resource factory. <!-- begin-user-doc --> <!-- end-user-doc -->
- *
- * @generated
- */
- public XMLPersistenceMappingResourceFactoryImpl() {
- super();
- }
-
- /**
- * Creates an instance of the resource. <!-- begin-user-doc --> <!-- end-user-doc -->
- */
- @Override
- public Resource createResource(URI uri) {
- Resource result = new XMLPersistenceMappingResourceImpl(uri);
- return result;
- }
-
-} // RMFResourceFactoryImpl
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResourceImpl.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResourceImpl.java
deleted file mode 100644
index 6ea3cac..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResourceImpl.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-package org.eclipse.rmf.serialization;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.XMLConstants;
-
-import org.apache.xerces.impl.Constants;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xmi.XMLHelper;
-import org.eclipse.emf.ecore.xmi.XMLLoad;
-import org.eclipse.emf.ecore.xmi.XMLOptions;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.emf.ecore.xmi.XMLSave;
-import org.eclipse.emf.ecore.xmi.impl.XMLOptionsImpl;
-import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
-import org.eclipse.rmf.internal.serialization.XMLPersistenceMappingHelperImpl;
-import org.eclipse.rmf.internal.serialization.XMLPersistenceMappingLoadImpl;
-import org.eclipse.rmf.internal.serialization.XMLPersistenceMappingSaveImpl;
-
-public class XMLPersistenceMappingResourceImpl extends XMLResourceImpl implements XMLPersistenceMappingResource {
- // TODO: let implementation get the value from preferences and set it to false by default
- // This is a temporal HACK
- public boolean enableSchemaValidation = false;
- protected Collection<EPackage> createIdForPackages;
-
- class ResourceHandlerImpl implements ResourceHandler {
-
- ResourceHandlerImpl(Resource resource) {
- super();
- }
-
- public void preLoad(XMLResource resource, InputStream inputStream, Map<?, ?> options) {
- // NOP
- }
-
- public void postLoad(XMLResource resource, InputStream inputStream, Map<?, ?> options) {
- // NOP
- }
-
- public void preSave(XMLResource resource, OutputStream outputStream, Map<?, ?> options) {
- // NOP
-
- }
-
- public void postSave(XMLResource resource, OutputStream outputStream, Map<?, ?> options) {
- // NOP
-
- }
-
- }
-
- public XMLPersistenceMappingResourceImpl() {
- super();
- initDefaultOptions();
- }
-
- public XMLPersistenceMappingResourceImpl(URI uri) {
- super(uri);
- initDefaultOptions();
- }
-
- @Override
- protected XMLHelper createXMLHelper() {
- return new XMLPersistenceMappingHelperImpl(this);
- }
-
- @Override
- protected XMLLoad createXMLLoad() {
- return new XMLPersistenceMappingLoadImpl(createXMLHelper());
- }
-
- @Override
- protected XMLSave createXMLSave() {
- return new XMLPersistenceMappingSaveImpl(createXMLHelper());
- }
-
- @Override
- public void save(Map<?, ?> options) throws IOException {
- super.save(options);
- }
-
- @Override
- public EObject getEObject(String uriFragment) {
- EObject object = getEObjectByID(uriFragment);
- if (null == object) {
- object = super.getEObject(uriFragment);
- }
- return object;
- }
-
- /**
- * Initializes the resource. Is called by the constructors of XMLResourceImpl
- */
- @Override
- protected void init() {
- encoding = "UTF-8"; //$NON-NLS-1$
- xmlVersion = "1.0"; //$NON-NLS-1$
-
- }
-
- public void initDefaultOptions() {
- ResourceHandler resourceHandler = new ResourceHandlerImpl(this);
- // ========= default save options ===================
- Map<Object, Object> saveOptions = getDefaultSaveOptions();
- // set encoding to UTF-8
- saveOptions.put(XMLResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$
- // get XML names and attribute/value information from extended metadata
- saveOptions.put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
-
- // make sure to write the <?xml version="1.0" encoding="UTF-8"?> header
- saveOptions.put(XMLResource.OPTION_DECLARE_XML, Boolean.TRUE);
-
- saveOptions.put(XMLResource.OPTION_SAVE_TYPE_INFORMATION, Boolean.FALSE);
-
- saveOptions.put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.FALSE);
-
- saveOptions.put(XMLResource.OPTION_RESOURCE_HANDLER, resourceHandler);
-
- // ========= default load options ===================
- Map<Object, Object> loadOptions = getDefaultLoadOptions();
- // get XML names and attribute/value information from extended metadata
- loadOptions.put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
-
- // comments and CDATA will be preserved in any mixed text processing. Required to support extensions
- loadOptions.put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
- // Improve deserialization performance
- loadOptions.put(XMLResource.OPTION_USE_DEPRECATED_METHODS, Boolean.FALSE);
- // avoids creation of href attributes for non containment references
- loadOptions.put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
-
- // options for handling unknown tool extensions
- loadOptions.put(XMLResource.OPTION_RECORD_ANY_TYPE_NAMESPACE_DECLARATIONS, Boolean.TRUE);
- loadOptions.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.FALSE);
-
- // Performance enhancement
- loadOptions.put(XMLResource.OPTION_DEFER_IDREF_RESOLUTION, Boolean.TRUE);
-
- loadOptions.put(XMLResource.OPTION_RESOURCE_HANDLER, resourceHandler);
-
- // defer attachment of object tree created during load to end of load process.
- // this creating notifications by EContentAdapters that might be registered for the resource or resource set
- // during load
- loadOptions.put(XMLResource.OPTION_DEFER_ATTACHMENT, Boolean.TRUE);
-
- // Retrieve application-defined XMLReader features (see http://xerces.apache.org/xerces2-j/features.html for
- // available features and their details)
- Map<String, Boolean> parserFeatures = new HashMap<String, Boolean>();
-
- // Retrieve application-defined XMLReader properties (see http://xerces.apache.org/xerces2-j/properties.html
- // for available properties and their details)
- Map<String, Object> parserProperties = new HashMap<String, Object>();
-
- parserProperties.put(Constants.XERCES_PROPERTY_PREFIX + Constants.BUFFER_SIZE_PROPERTY, 1024 * 8);
-
- // Perform namespace processing (prefixes will be stripped off element and attribute names and replaced with the
- // corresponding namespace URIs) but do not report attributes used for namespace declarations, and do not report
- // original prefixed names
- parserFeatures.put(Constants.SAX_FEATURE_PREFIX + Constants.NAMESPACES_FEATURE, true);
- parserFeatures.put(Constants.SAX_FEATURE_PREFIX + Constants.NAMESPACE_PREFIXES_FEATURE, false);
-
- if (enableSchemaValidation) {
- parserFeatures.put(Constants.SAX_FEATURE_PREFIX + Constants.VALIDATION_FEATURE, true);
- parserFeatures.put(Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_VALIDATION_FEATURE, true);
- parserProperties.put(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, XMLConstants.W3C_XML_SCHEMA_NS_URI);
- parserProperties.put(Constants.XERCES_PROPERTY_PREFIX + Constants.SCHEMA_LOCATION,
- "http://www.omg.org/spec/ReqIF/20110401/reqif.xsd reqif.xsd");
- }
-
- loadOptions.put(XMLResource.OPTION_PARSER_FEATURES, parserFeatures);
- loadOptions.put(XMLResource.OPTION_PARSER_PROPERTIES, parserProperties);
-
- XMLOptions xmlOptions = new XMLOptionsImpl();
-
- xmlOptions.setProcessAnyXML(true);
-
- // xmlOptions.setProcessSchemaLocations(true);
-
- loadOptions.put(XMLResource.OPTION_XML_OPTIONS, xmlOptions);
- }
-
-}
diff --git a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResourceSetImpl.java b/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResourceSetImpl.java
deleted file mode 100644
index 0a70306..0000000
--- a/org.eclipse.rmf.serialization/src/org/eclipse/rmf/serialization/XMLPersistenceMappingResourceSetImpl.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Copyright (c) 2013 itemis AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * itemis AG - initial API and implementation
- */
-package org.eclipse.rmf.serialization;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-
-public class XMLPersistenceMappingResourceSetImpl extends ResourceSetImpl {
-
- /**
- * Tools that need to follow the progress may store an {@link IProgressMonitor} in {@link #getLoadOptions()}, using
- * this constant as the key.
- */
- public static final String PROGRESS_MONITOR = "PROGRESS_MONITOR"; //$NON-NLS-1$
-
- @Override
- /**
- * ReqIF doesn't contain any information about the resource where to find an object with a given ID.
- * Since most references are expected to be references to objects within the same file, we first search in the resource that contained the reference.
- * If the referenced object is not found, then the search continues in all other resources that are contained in the resource set.
- *
- * In order to map this behavior to the standard EMF proxy resolution mechanism the
- * URI of the resource that contains the reference is added to the reference by default during deserialization.
- *
- * This allows using the ReqIFResourceImpl in a standard EMF resource set if no cross resource links need to be resolved.
- */
- public EObject getEObject(URI uri, boolean loadOnDemand) {
- EObject eObject = null;
- // first try to find the object in the resource that contained the reference using the standard EMF proxy
- // resolution strategy
-
- eObject = super.getEObject(uri, loadOnDemand);
-
- // if the eObject was not found: continue searching in all other resources
- if (null == eObject) {
- Resource sourceResource = getResource(uri.trimFragment(), loadOnDemand);
- for (Resource resource : getResources()) {
- if (resource != sourceResource) {
- eObject = resource.getEObject(uri.fragment());
- if (null != eObject) {
- break;
- }
- }
- }
- }
-
- return eObject;
- }
-
-}