Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Redor2016-08-12 13:46:40 +0000
committerLaurent Redor2016-08-19 15:19:44 +0000
commit2e389961ec140cbad351b972a9cd6ea3b62b0c53 (patch)
treef0a964b7d02b8203f76b6a429f3b47d0bcb79cca
parent4846a3d878f57dd076fcd7777ca4380d26cd7d21 (diff)
downloadorg.eclipse.sirius-2e389961ec140cbad351b972a9cd6ea3b62b0c53.tar.gz
org.eclipse.sirius-2e389961ec140cbad351b972a9cd6ea3b62b0c53.tar.xz
org.eclipse.sirius-2e389961ec140cbad351b972a9cd6ea3b62b0c53.zip
[496466] Add FormatData metamodel
This commit is the first of 2 to provide new API for new extension point org.eclipse.sirius.diagram.ui.formatDataManager instead of old layoutDataManager. The old API will be deprecated (and removed in next major version of Sirius: 5.0.0). This first commit duplicates the LayoutData metamodel (in FormatData). Bug: 496466 Change-Id: I69fed27536489dec19a45f684ac2cb244920762b Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
-rw-r--r--packaging/org.eclipse.sirius.parent/pom.xml1
-rw-r--r--packaging/org.eclipse.sirius.runtime/feature.xml7
-rw-r--r--packaging/org.eclipse.sirius.specifier/feature.xml7
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/.checkstyle13
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/.classpath12
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/.project40
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/.settings/fr.obeo.baseliner.prefs2
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.core.runtime.prefs3
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.jdt.core.prefs352
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.jdt.ui.prefs62
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.pde.prefs32
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/META-INF/MANIFEST.MF38
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/about.html27
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/build.properties25
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/model/formatdata.ecore136
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/model/formatdata.genmodel44
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/plugin.properties30
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/plugin.xml23
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/pom.xml26
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/AbstractFormatData.java155
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/EdgeFormatData.java334
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/FormatdataFactory.java67
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/FormatdataPackage.java966
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/NodeFormatData.java153
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/Point.java85
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/AbstractFormatDataImpl.java512
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/EdgeFormatDataImpl.java813
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/FormatdataFactoryImpl.java132
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/FormatdataPackageImpl.java554
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/NodeFormatDataImpl.java448
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/PointImpl.java231
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/util/FormatdataAdapterFactory.java192
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/util/FormatdataSwitch.java224
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/FormatDataPlugin.java65
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/Messages.java47
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/FormatHelper.java135
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/Configuration.java59
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/ConfigurationFactory.java35
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/EdgeConfiguration.java38
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/NodeConfiguration.java35
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/FormatHelperImpl.java336
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/ConfigurationImpl.java83
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/EdgeConfigurationImpl.java55
-rw-r--r--plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/NodeConfigurationImpl.java53
-rw-r--r--releng/org.eclipse.sirius.settings/sirius.psf2
46 files changed, 6692 insertions, 0 deletions
diff --git a/packaging/org.eclipse.sirius.parent/pom.xml b/packaging/org.eclipse.sirius.parent/pom.xml
index cd104d6b85..2a2380dceb 100644
--- a/packaging/org.eclipse.sirius.parent/pom.xml
+++ b/packaging/org.eclipse.sirius.parent/pom.xml
@@ -295,6 +295,7 @@
<module>../../plugins/org.eclipse.sirius.common.acceleo.mtl</module>
<module>../../plugins/org.eclipse.sirius.common.ocl</module>
<module>../../plugins/org.eclipse.sirius.diagram</module>
+ <module>../../plugins/org.eclipse.sirius.diagram.formatdata</module>
<module>../../plugins/org.eclipse.sirius.diagram.layoutdata</module>
<module>../../plugins/org.eclipse.sirius.ecore.extender</module>
<module>../../plugins/org.eclipse.sirius.synchronizer</module>
diff --git a/packaging/org.eclipse.sirius.runtime/feature.xml b/packaging/org.eclipse.sirius.runtime/feature.xml
index 00fc0bc306..0a51545f47 100644
--- a/packaging/org.eclipse.sirius.runtime/feature.xml
+++ b/packaging/org.eclipse.sirius.runtime/feature.xml
@@ -67,6 +67,13 @@ Install this if you want to either use existing Sirius-based modelers or create
unpack="false"/>
<plugin
+ id="org.eclipse.sirius.diagram.formatdata"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
id="org.eclipse.sirius.diagram.layoutdata"
download-size="0"
install-size="0"
diff --git a/packaging/org.eclipse.sirius.specifier/feature.xml b/packaging/org.eclipse.sirius.specifier/feature.xml
index 02a2d60da1..b8e9ce8c5d 100644
--- a/packaging/org.eclipse.sirius.specifier/feature.xml
+++ b/packaging/org.eclipse.sirius.specifier/feature.xml
@@ -99,6 +99,13 @@ Install this if you want to create your own Sirius-based modelers.
unpack="false"/>
<plugin
+ id="org.eclipse.sirius.diagram.formatdata"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
id="org.eclipse.sirius.diagram.layoutdata"
download-size="0"
install-size="0"
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/.checkstyle b/plugins/org.eclipse.sirius.diagram.formatdata/.checkstyle
new file mode 100644
index 0000000000..3c756ff819
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/.checkstyle
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+ <local-check-config name="Sirius Checks" location="/org.eclipse.sirius.settings/CheckstyleConfiguration.xml" type="project" description="">
+ <additional-data name="protect-config-file" value="false"/>
+ </local-check-config>
+ <fileset name="all" enabled="true" check-config-name="Sirius Checks" local="true">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+ <filter name="FilesFromPackage" enabled="true">
+ <filter-data value="src-gen"/>
+ </filter>
+</fileset-config>
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/.classpath b/plugins/org.eclipse.sirius.diagram.formatdata/.classpath
new file mode 100644
index 0000000000..e644e859af
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/.classpath
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <accessrules>
+ <accessrule kind="accessible" pattern="org/eclipse/sirius/**"/>
+ </accessrules>
+ </classpathentry>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/.project b/plugins/org.eclipse.sirius.diagram.formatdata/.project
new file mode 100644
index 0000000000..6c9328aafd
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.sirius.diagram.formatdata</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>fr.obeo.baseliner.ui.BaselinerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>fr.obeo.baseliner.ui.BaselinerNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/.settings/fr.obeo.baseliner.prefs b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/fr.obeo.baseliner.prefs
new file mode 100644
index 0000000000..edbf92725a
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/fr.obeo.baseliner.prefs
@@ -0,0 +1,2 @@
+baselineSource=platform\:/resource/org.eclipse.sirius.targets/baseline.target
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..c72af0f4a2
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Sat May 07 16:14:46 CEST 2011
+eclipse.preferences.version=1
+encoding/<project>=US-ASCII
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.core.runtime.prefs b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000000..62b94d7966
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,3 @@
+#Sat May 07 16:14:46 CEST 2011
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..1a45a66fa2
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,352 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+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.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.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=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+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.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+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.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.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.7
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,NORMAL,NORMAL,NORMAL,HIGH
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,TODOCBR,TODOMCH,TODOYMO,OPTIMISATION_POSSIBLE,TODONEWMM
+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=16
+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=1
+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=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=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=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not 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=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not 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=200
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+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/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..f903dbceb5
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,62 @@
+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=true
+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=true
+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=true
+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=true
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_Sirius
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Sirius
+formatter_settings_version=12
+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.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="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\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\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\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000000..c307a7b58e
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=0
+compilers.p.build=0
+compilers.p.build.bin.includes=0
+compilers.p.build.encodings=0
+compilers.p.build.java.compiler=0
+compilers.p.build.java.compliance=0
+compilers.p.build.missing.output=0
+compilers.p.build.output.library=0
+compilers.p.build.source.library=0
+compilers.p.build.src.includes=0
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=0
+compilers.p.missing-packages=0
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=0
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=0
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=0
+compilers.p.unknown-resource=0
+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/plugins/org.eclipse.sirius.diagram.formatdata/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.diagram.formatdata/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..22cde86f1e
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/META-INF/MANIFEST.MF
@@ -0,0 +1,38 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.sirius.diagram.formatdata;singleton:=true
+Bundle-Version: 4.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Export-Package: org.eclipse.sirius.diagram.formatdata;version="4.1.0";
+ uses:="org.eclipse.emf.ecore,
+ org.eclipse.emf.common.util",
+ org.eclipse.sirius.diagram.formatdata.impl;version="4.1.0";
+ uses:="org.eclipse.emf.ecore,
+ org.eclipse.emf.common.util,
+ org.eclipse.sirius.diagram.formatdata,
+ org.eclipse.emf.ecore.impl,
+ org.eclipse.emf.common.notify",
+ org.eclipse.sirius.diagram.formatdata.tools;version="4.1.0",
+ org.eclipse.sirius.diagram.formatdata.tools.api.util;version="4.1.0";
+ uses:="org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration,
+ org.eclipse.sirius.diagram.formatdata",
+ org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration;version="4.1.0",
+ org.eclipse.sirius.diagram.formatdata.tools.internal.util;version="4.1.0";x-internal:=true,
+ org.eclipse.sirius.diagram.formatdata.tools.internal.util.configuration;version="4.1.0";x-internal:=true,
+ org.eclipse.sirius.diagram.formatdata.util;version="4.1.0";
+ uses:="org.eclipse.emf.ecore,
+ org.eclipse.emf.common.notify.impl,
+ org.eclipse.sirius.diagram.formatdata,
+ org.eclipse.emf.common.notify"
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
+ org.eclipse.emf.ecore;bundle-version="2.8.3";visibility:=reexport,
+ org.eclipse.gmf.runtime.notation;bundle-version="1.5.0";visibility:=reexport,
+ org.eclipse.sirius;bundle-version="4.1.0";visibility:=reexport,
+ org.eclipse.sirius.common;bundle-version="2.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.eclipse.sirius.diagram.formatdata.FormatDataPlugin$Implementation
+Import-Package: org.eclipse.sirius.ext.base;version="2.1.0"
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/about.html b/plugins/org.eclipse.sirius.diagram.formatdata/about.html
new file mode 100644
index 0000000000..420ad0f930
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/about.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- saved from url=(0043)http://www.eclipse.org/legal/epl/about.html -->
+<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/plugins/org.eclipse.sirius.diagram.formatdata/build.properties b/plugins/org.eclipse.sirius.diagram.formatdata/build.properties
new file mode 100644
index 0000000000..1ec8428975
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/build.properties
@@ -0,0 +1,25 @@
+# ====================================================================
+# Copyright (c) 2007, 2016 THALES GLOBAL SERVICES
+# 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:
+# Obeo - initial API and implementation
+# ====================================================================
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+jars.compile.order = .
+source.. = src/,\
+ src-gen/
+output.. = bin/
+src.includes = model/
+javacWarnings.. = none
+javacDefaultEncoding.. = US-ASCII
+javacProjectSettings = true
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/model/formatdata.ecore b/plugins/org.eclipse.sirius.diagram.formatdata/model/formatdata.ecore
new file mode 100644
index 0000000000..ebf26f9610
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/model/formatdata.ecore
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="formatdata" nsURI="http://www.eclipse.org/sirius/dsl/formatdata/1.1.0"
+ nsPrefix="formatdata">
+ <eClassifiers xsi:type="ecore:EClass" name="AbstractFormatData" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An astract class for all format data."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ iD="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Serialization of the ID of the associated graphical element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="label" eType="#//NodeFormatData"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents the format of the label of this edge (only the location is used)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="siriusStyle" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.sirius/model/viewpoint.ecore#//Style"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A copy of the original Sirius style of this DDiagramElement."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="gmfView" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.gmf.runtime.notation/model/notation.ecore#//View"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A copy of the original GMF View corresponding to this DDiagramElement (without copying the element reference)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NodeFormatData" eSuperTypes="#//AbstractFormatData">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The format data for a node."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="-2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The width of this node."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="-2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The height of this node."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
+ eType="#//NodeFormatData" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents the format of the children of this node."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingEdges" upperBound="-1"
+ eType="#//EdgeFormatData" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents the format of the edges that go out from this node."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="location" eType="#//Point"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents the relative location of this node (relative to the parent formatData)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EdgeFormatData" eSuperTypes="#//AbstractFormatData">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The format data for an edge."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sourceTerminal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier associated with the source anchor.&#xA;@see {@link org.eclipse.gmf.runtime.draw2d.ui.figures.IAnchorableFigure}&#xA;@see {@link org.eclipse.gmf.runtime.draw2d.ui.figures.BaseSlidableAnchor.parseTerminalString}"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetTerminal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier associated with the target anchor.&#xA;@see {@link org.eclipse.gmf.runtime.draw2d.ui.figures.IAnchorableFigure}&#xA;@see {@link org.eclipse.gmf.runtime.draw2d.ui.figures.BaseSlidableAnchor.parseTerminalString}"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="routing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The literal value of the routing.&#xA;@see {@link org.eclipse.gmf.runtime.notation.Routing}"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="pointList" upperBound="-1"
+ eType="#//Point" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="List of points by which the edge passes."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceRefPoint" eType="#//Point"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetRefPoint" eType="#//Point"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="jumpLinkStatus" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The literal value of the Jump Links Status&#xD;&#xA;@see {@link org.eclipse.gmf.runtime.notation.JumpLinkStatus}"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="jumpLinkType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The literal value of the Jump Links Type.&#xD;&#xA;@see {@link org.eclipse.gmf.runtime.notation.JumpLinkType}"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reverseJumpLink" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The literal value of the Reverse Jump Links."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smoothness" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The literal value of the smotohness.&#xD;&#xA;@see {@link org.eclipse.gmf.runtime.notation.Smoothness}"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Point">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents a point (x, y) in 2-dimensional space."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents the x coordinate."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents the y coordinate."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/model/formatdata.genmodel b/plugins/org.eclipse.sirius.diagram.formatdata/model/formatdata.genmodel
new file mode 100644
index 0000000000..1f5fdef01e
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/model/formatdata.genmodel
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; Obeo - initial API and implementation&#xA;"
+ modelDirectory="/org.eclipse.sirius.diagram.formatdata/src-gen" editDirectory=""
+ editorDirectory="" modelPluginID="org.eclipse.sirius.diagram.formatdata" modelName="Formatdata"
+ editPluginClass="org.eclipse.sirius.diagram.formatdata.provider.FormatdataEditPlugin"
+ editorPluginClass="org.eclipse.sirius.diagram.formatdata.presentation.FormatdataEditorPlugin"
+ nonNLSMarkers="true" testsDirectory="" testSuiteClass="org.eclipse.sirius.diagram.formatdata.tests.FormatdataAllTests"
+ importerID="org.eclipse.emf.importer.ecore" containmentProxies="true" complianceLevel="5.0"
+ copyrightFields="false" runtimeVersion="2.6" language="" usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation ../../org.eclipse.sirius/model/viewpoint.genmodel#//viewpoint">
+ <foreignModel>formatdata.ecore</foreignModel>
+ <genPackages prefix="Formatdata" basePackage="org.eclipse.sirius.diagram" disposableProviderFactory="true"
+ ecorePackage="formatdata.ecore#/">
+ <genClasses image="false" ecoreClass="formatdata.ecore#//AbstractFormatData">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//AbstractFormatData/id"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference formatdata.ecore#//AbstractFormatData/label"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference formatdata.ecore#//AbstractFormatData/siriusStyle"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference formatdata.ecore#//AbstractFormatData/gmfView"/>
+ </genClasses>
+ <genClasses ecoreClass="formatdata.ecore#//NodeFormatData">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//NodeFormatData/width"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//NodeFormatData/height"/>
+ <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference formatdata.ecore#//NodeFormatData/children"/>
+ <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference formatdata.ecore#//NodeFormatData/outgoingEdges"/>
+ <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference formatdata.ecore#//NodeFormatData/location"/>
+ </genClasses>
+ <genClasses ecoreClass="formatdata.ecore#//EdgeFormatData">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//EdgeFormatData/sourceTerminal"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//EdgeFormatData/targetTerminal"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//EdgeFormatData/routing"/>
+ <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference formatdata.ecore#//EdgeFormatData/pointList"/>
+ <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference formatdata.ecore#//EdgeFormatData/sourceRefPoint"/>
+ <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference formatdata.ecore#//EdgeFormatData/targetRefPoint"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//EdgeFormatData/jumpLinkStatus"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//EdgeFormatData/jumpLinkType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//EdgeFormatData/reverseJumpLink"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//EdgeFormatData/smoothness"/>
+ </genClasses>
+ <genClasses ecoreClass="formatdata.ecore#//Point">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//Point/x"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute formatdata.ecore#//Point/y"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/plugin.properties b/plugins/org.eclipse.sirius.diagram.formatdata/plugin.properties
new file mode 100644
index 0000000000..3881b1616c
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/plugin.properties
@@ -0,0 +1,30 @@
+# ====================================================================
+# Copyright (c) 2007, 2016 THALES GLOBAL SERVICES
+# 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:
+# Obeo - initial API and implementation
+# ====================================================================
+
+# ====================================================================
+# To code developer:
+# Do NOT change the properties between this line and the
+# "%%% END OF TRANSLATED PROPERTIES %%%" line.
+# Make a new property name, append to the end of the file and change
+# the code to use the new property.
+# ====================================================================
+
+# ====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# ====================================================================
+
+pluginName = Sirius Formatdata Model
+providerName = Eclipse Modeling Project
+
+EdgeConfigurationImpl_toString = distanceAroundPointsOfEdgeBendpointsList: {0}
+ConfigurationImpl_toString = Node configuration: {0}\nEdge configuration: {1}
+FormatHelperImpl_formatDifferenceMessage = Configuration: [\n{0}\n]\nDifference between left element [[\n\t{1}\n]] and right element [[\n\t{2}\n]]
+NodeConfigurationImpl_distanceAroundPoint = distanceAroundPoint: {0}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/plugin.xml b/plugins/org.eclipse.sirius.diagram.formatdata/plugin.xml
new file mode 100644
index 0000000000..ac23512f7f
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/plugin.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<!--
+ Copyright (c) 2007, 2016 THALES GLOBAL SERVICES
+ 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:
+ Obeo - Initial API and implementation
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/sirius/dsl/formatdata/1.1.0"
+ class = "org.eclipse.sirius.diagram.formatdata.FormatdataPackage"
+ genModel = "model/formatdata.genmodel" />
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/pom.xml b/plugins/org.eclipse.sirius.diagram.formatdata/pom.xml
new file mode 100644
index 0000000000..3085229751
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2007, 2016 THALES GLOBAL SERVICES
+ 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:
+ Obeo - Initial API and implementation
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.sirius</groupId>
+ <artifactId>sirius-parent</artifactId>
+ <version>4.1.0-SNAPSHOT</version>
+ <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
+ </parent>
+
+ <artifactId>org.eclipse.sirius.diagram.formatdata</artifactId>
+ <version>4.1.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+
+</project> \ No newline at end of file
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/AbstractFormatData.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/AbstractFormatData.java
new file mode 100644
index 0000000000..6223c33f52
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/AbstractFormatData.java
@@ -0,0 +1,155 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.sirius.viewpoint.Style;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Abstract Format Data</b></em>'. <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc --> An astract class for all format data. <!--
+ * end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getId
+ * <em>Id</em>}</li>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getLabel
+ * <em>Label</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getSiriusStyle
+ * <em>Sirius Style</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getGmfView
+ * <em>Gmf View</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getAbstractFormatData()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractFormatData extends EObject {
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * Serialization of the ID of the associated graphical element <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getAbstractFormatData_Id()
+ * @model id="true" required="true"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getId
+ * <em>Id</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Label</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * Represents the format of the label of this edge (only the location is
+ * used). <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Label</em>' containment reference.
+ * @see #setLabel(NodeFormatData)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getAbstractFormatData_Label()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ NodeFormatData getLabel();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getLabel
+ * <em>Label</em>}' containment reference. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Label</em>' containment reference.
+ * @see #getLabel()
+ * @generated
+ */
+ void setLabel(NodeFormatData value);
+
+ /**
+ * Returns the value of the '<em><b>Sirius Style</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc --> <!--
+ * begin-model-doc --> A copy of the original Sirius style of this
+ * DDiagramElement. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Sirius Style</em>' containment reference.
+ * @see #setSiriusStyle(Style)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getAbstractFormatData_SiriusStyle()
+ * @model containment="true" resolveProxies="true" required="true"
+ * @generated
+ */
+ Style getSiriusStyle();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getSiriusStyle
+ * <em>Sirius Style</em>}' containment reference. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Sirius Style</em>' containment
+ * reference.
+ * @see #getSiriusStyle()
+ * @generated
+ */
+ void setSiriusStyle(Style value);
+
+ /**
+ * Returns the value of the '<em><b>Gmf View</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc --> <!--
+ * begin-model-doc --> A copy of the original GMF View corresponding to this
+ * DDiagramElement (without copying the element reference). <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Gmf View</em>' containment reference.
+ * @see #setGmfView(View)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getAbstractFormatData_GmfView()
+ * @model containment="true" resolveProxies="true" required="true"
+ * @generated
+ */
+ View getGmfView();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getGmfView
+ * <em>Gmf View</em>}' containment reference. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Gmf View</em>' containment
+ * reference.
+ * @see #getGmfView()
+ * @generated
+ */
+ void setGmfView(View value);
+
+} // AbstractFormatData
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/EdgeFormatData.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/EdgeFormatData.java
new file mode 100644
index 0000000000..849dab1eb6
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/EdgeFormatData.java
@@ -0,0 +1,334 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Edge Format Data</b></em>'. <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc --> The format data for an edge. <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSourceTerminal
+ * <em>Source Terminal</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getTargetTerminal
+ * <em>Target Terminal</em>}</li>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getRouting
+ * <em>Routing</em>}</li>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getPointList
+ * <em>Point List</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSourceRefPoint
+ * <em>Source Ref Point</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getTargetRefPoint
+ * <em>Target Ref Point</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getJumpLinkStatus
+ * <em>Jump Link Status</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getJumpLinkType
+ * <em>Jump Link Type</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#isReverseJumpLink
+ * <em>Reverse Jump Link</em>}</li>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSmoothness
+ * <em>Smoothness</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData()
+ * @model
+ * @generated
+ */
+public interface EdgeFormatData extends AbstractFormatData {
+ /**
+ * Returns the value of the '<em><b>Source Terminal</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * Identifier associated with the source anchor.
+ *
+ * @see {@link org.eclipse.gmf.runtime.draw2d.ui.figures.IAnchorableFigure}
+ * @see {@link org.eclipse.gmf.runtime.draw2d.ui.figures.BaseSlidableAnchor.parseTerminalString}
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Source Terminal</em>' attribute.
+ * @see #setSourceTerminal(String)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_SourceTerminal()
+ * @model
+ * @generated
+ */
+ String getSourceTerminal();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSourceTerminal
+ * <em>Source Terminal</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Source Terminal</em>' attribute.
+ * @see #getSourceTerminal()
+ * @generated
+ */
+ void setSourceTerminal(String value);
+
+ /**
+ * Returns the value of the '<em><b>Target Terminal</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * Identifier associated with the target anchor.
+ *
+ * @see {@link org.eclipse.gmf.runtime.draw2d.ui.figures.IAnchorableFigure}
+ * @see {@link org.eclipse.gmf.runtime.draw2d.ui.figures.BaseSlidableAnchor.parseTerminalString}
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Target Terminal</em>' attribute.
+ * @see #setTargetTerminal(String)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_TargetTerminal()
+ * @model
+ * @generated
+ */
+ String getTargetTerminal();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getTargetTerminal
+ * <em>Target Terminal</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Target Terminal</em>' attribute.
+ * @see #getTargetTerminal()
+ * @generated
+ */
+ void setTargetTerminal(String value);
+
+ /**
+ * Returns the value of the '<em><b>Routing</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> The
+ * literal value of the routing.
+ *
+ * @see {@link org.eclipse.gmf.runtime.notation.Routing} <!-- end-model-doc
+ * -->
+ * @return the value of the '<em>Routing</em>' attribute.
+ * @see #setRouting(int)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_Routing()
+ * @model
+ * @generated
+ */
+ int getRouting();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getRouting
+ * <em>Routing</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @param value
+ * the new value of the '<em>Routing</em>' attribute.
+ * @see #getRouting()
+ * @generated
+ */
+ void setRouting(int value);
+
+ /**
+ * Returns the value of the '<em><b>Point List</b></em>' containment
+ * reference list. The list contents are of type
+ * {@link org.eclipse.sirius.diagram.formatdata.Point}. <!-- begin-user-doc
+ * --> <!-- end-user-doc --> <!-- begin-model-doc --> List of points by
+ * which the edge passes. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Point List</em>' containment reference
+ * list.
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_PointList()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<Point> getPointList();
+
+ /**
+ * Returns the value of the '<em><b>Source Ref Point</b></em>' containment
+ * reference. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source Ref Point</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Source Ref Point</em>' containment
+ * reference.
+ * @see #setSourceRefPoint(Point)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_SourceRefPoint()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ Point getSourceRefPoint();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSourceRefPoint
+ * <em>Source Ref Point</em>}' containment reference. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Source Ref Point</em>' containment
+ * reference.
+ * @see #getSourceRefPoint()
+ * @generated
+ */
+ void setSourceRefPoint(Point value);
+
+ /**
+ * Returns the value of the '<em><b>Target Ref Point</b></em>' containment
+ * reference. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target Ref Point</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Target Ref Point</em>' containment
+ * reference.
+ * @see #setTargetRefPoint(Point)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_TargetRefPoint()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ Point getTargetRefPoint();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getTargetRefPoint
+ * <em>Target Ref Point</em>}' containment reference. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Target Ref Point</em>' containment
+ * reference.
+ * @see #getTargetRefPoint()
+ * @generated
+ */
+ void setTargetRefPoint(Point value);
+
+ /**
+ * Returns the value of the '<em><b>Jump Link Status</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * The literal value of the Jump Links Status
+ *
+ * @see {@link org.eclipse.gmf.runtime.notation.JumpLinkStatus} <!--
+ * end-model-doc -->
+ * @return the value of the '<em>Jump Link Status</em>' attribute.
+ * @see #setJumpLinkStatus(int)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_JumpLinkStatus()
+ * @model
+ * @generated
+ */
+ int getJumpLinkStatus();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getJumpLinkStatus
+ * <em>Jump Link Status</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Jump Link Status</em>' attribute.
+ * @see #getJumpLinkStatus()
+ * @generated
+ */
+ void setJumpLinkStatus(int value);
+
+ /**
+ * Returns the value of the '<em><b>Jump Link Type</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> The
+ * literal value of the Jump Links Type.
+ *
+ * @see {@link org.eclipse.gmf.runtime.notation.JumpLinkType} <!--
+ * end-model-doc -->
+ * @return the value of the '<em>Jump Link Type</em>' attribute.
+ * @see #setJumpLinkType(int)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_JumpLinkType()
+ * @model
+ * @generated
+ */
+ int getJumpLinkType();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getJumpLinkType
+ * <em>Jump Link Type</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Jump Link Type</em>' attribute.
+ * @see #getJumpLinkType()
+ * @generated
+ */
+ void setJumpLinkType(int value);
+
+ /**
+ * Returns the value of the '<em><b>Reverse Jump Link</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * The literal value of the Reverse Jump Links. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Reverse Jump Link</em>' attribute.
+ * @see #setReverseJumpLink(boolean)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_ReverseJumpLink()
+ * @model
+ * @generated
+ */
+ boolean isReverseJumpLink();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#isReverseJumpLink
+ * <em>Reverse Jump Link</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Reverse Jump Link</em>' attribute.
+ * @see #isReverseJumpLink()
+ * @generated
+ */
+ void setReverseJumpLink(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Smoothness</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> The
+ * literal value of the smotohness.
+ *
+ * @see {@link org.eclipse.gmf.runtime.notation.Smoothness} <!--
+ * end-model-doc -->
+ * @return the value of the '<em>Smoothness</em>' attribute.
+ * @see #setSmoothness(int)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getEdgeFormatData_Smoothness()
+ * @model
+ * @generated
+ */
+ int getSmoothness();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSmoothness
+ * <em>Smoothness</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Smoothness</em>' attribute.
+ * @see #getSmoothness()
+ * @generated
+ */
+ void setSmoothness(int value);
+
+} // EdgeFormatData
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/FormatdataFactory.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/FormatdataFactory.java
new file mode 100644
index 0000000000..b2c6c85656
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/FormatdataFactory.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc --> The <b>Factory</b> for the model. It provides a
+ * create method for each non-abstract class of the model. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage
+ * @generated
+ */
+public interface FormatdataFactory extends EFactory {
+ /**
+ * The singleton instance of the factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ FormatdataFactory eINSTANCE = org.eclipse.sirius.diagram.formatdata.impl.FormatdataFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Node Format Data</em>'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Node Format Data</em>'.
+ * @generated
+ */
+ NodeFormatData createNodeFormatData();
+
+ /**
+ * Returns a new object of class '<em>Edge Format Data</em>'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Edge Format Data</em>'.
+ * @generated
+ */
+ EdgeFormatData createEdgeFormatData();
+
+ /**
+ * Returns a new object of class '<em>Point</em>'. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Point</em>'.
+ * @generated
+ */
+ Point createPoint();
+
+ /**
+ * Returns the package supported by this factory. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ FormatdataPackage getFormatdataPackage();
+
+} // FormatdataFactory
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/FormatdataPackage.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/FormatdataPackage.java
new file mode 100644
index 0000000000..b084163855
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/FormatdataPackage.java
@@ -0,0 +1,966 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc --> The <b>Package</b> for the model. It contains
+ * accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface FormatdataPackage extends EPackage {
+ /**
+ * The package name. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNAME = "formatdata"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/sirius/dsl/formatdata/1.1.0"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "formatdata"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ FormatdataPackage eINSTANCE = org.eclipse.sirius.diagram.formatdata.impl.FormatdataPackageImpl.init();
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.AbstractFormatDataImpl
+ * <em>Abstract Format Data</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.impl.AbstractFormatDataImpl
+ * @see org.eclipse.sirius.diagram.formatdata.impl.FormatdataPackageImpl#getAbstractFormatData()
+ * @generated
+ */
+ int ABSTRACT_FORMAT_DATA = 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_FORMAT_DATA__ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_FORMAT_DATA__LABEL = 1;
+
+ /**
+ * The feature id for the '<em><b>Sirius Style</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_FORMAT_DATA__SIRIUS_STYLE = 2;
+
+ /**
+ * The feature id for the '<em><b>Gmf View</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_FORMAT_DATA__GMF_VIEW = 3;
+
+ /**
+ * The number of structural features of the '<em>Abstract Format Data</em>'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_FORMAT_DATA_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.NodeFormatDataImpl
+ * <em>Node Format Data</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.impl.NodeFormatDataImpl
+ * @see org.eclipse.sirius.diagram.formatdata.impl.FormatdataPackageImpl#getNodeFormatData()
+ * @generated
+ */
+ int NODE_FORMAT_DATA = 1;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA__ID = FormatdataPackage.ABSTRACT_FORMAT_DATA__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA__LABEL = FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Sirius Style</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA__SIRIUS_STYLE = FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Gmf View</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA__GMF_VIEW = FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW;
+
+ /**
+ * The feature id for the '<em><b>Width</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA__WIDTH = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Height</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA__HEIGHT = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' containment reference
+ * list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA__CHILDREN = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Outgoing Edges</b></em>' containment
+ * reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA__OUTGOING_EDGES = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Location</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA__LOCATION = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Node Format Data</em>'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_FORMAT_DATA_FEATURE_COUNT = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl
+ * <em>Edge Format Data</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl
+ * @see org.eclipse.sirius.diagram.formatdata.impl.FormatdataPackageImpl#getEdgeFormatData()
+ * @generated
+ */
+ int EDGE_FORMAT_DATA = 2;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__ID = FormatdataPackage.ABSTRACT_FORMAT_DATA__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__LABEL = FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Sirius Style</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__SIRIUS_STYLE = FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Gmf View</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__GMF_VIEW = FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW;
+
+ /**
+ * The feature id for the '<em><b>Source Terminal</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__SOURCE_TERMINAL = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Target Terminal</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__TARGET_TERMINAL = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Routing</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__ROUTING = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Point List</b></em>' containment reference
+ * list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__POINT_LIST = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Source Ref Point</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__SOURCE_REF_POINT = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Target Ref Point</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__TARGET_REF_POINT = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Jump Link Status</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__JUMP_LINK_STATUS = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Jump Link Type</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__JUMP_LINK_TYPE = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Reverse Jump Link</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__REVERSE_JUMP_LINK = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Smoothness</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA__SMOOTHNESS = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 9;
+
+ /**
+ * The number of structural features of the '<em>Edge Format Data</em>'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EDGE_FORMAT_DATA_FEATURE_COUNT = FormatdataPackage.ABSTRACT_FORMAT_DATA_FEATURE_COUNT + 10;
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.PointImpl
+ * <em>Point</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.impl.PointImpl
+ * @see org.eclipse.sirius.diagram.formatdata.impl.FormatdataPackageImpl#getPoint()
+ * @generated
+ */
+ int POINT = 3;
+
+ /**
+ * The feature id for the '<em><b>X</b></em>' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int POINT__X = 0;
+
+ /**
+ * The feature id for the '<em><b>Y</b></em>' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int POINT__Y = 1;
+
+ /**
+ * The number of structural features of the '<em>Point</em>' class. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int POINT_FEATURE_COUNT = 2;
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData
+ * <em>Abstract Format Data</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>Abstract Format Data</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.AbstractFormatData
+ * @generated
+ */
+ EClass getAbstractFormatData();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getId
+ * <em>Id</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getId()
+ * @see #getAbstractFormatData()
+ * @generated
+ */
+ EAttribute getAbstractFormatData_Id();
+
+ /**
+ * Returns the meta object for the containment reference '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getLabel
+ * <em>Label</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference '<em>Label</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getLabel()
+ * @see #getAbstractFormatData()
+ * @generated
+ */
+ EReference getAbstractFormatData_Label();
+
+ /**
+ * Returns the meta object for the containment reference '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getSiriusStyle
+ * <em>Sirius Style</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference '
+ * <em>Sirius Style</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getSiriusStyle()
+ * @see #getAbstractFormatData()
+ * @generated
+ */
+ EReference getAbstractFormatData_SiriusStyle();
+
+ /**
+ * Returns the meta object for the containment reference '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getGmfView
+ * <em>Gmf View</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference '<em>Gmf View</em>
+ * '.
+ * @see org.eclipse.sirius.diagram.formatdata.AbstractFormatData#getGmfView()
+ * @see #getAbstractFormatData()
+ * @generated
+ */
+ EReference getAbstractFormatData_GmfView();
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData
+ * <em>Node Format Data</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for class '<em>Node Format Data</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.NodeFormatData
+ * @generated
+ */
+ EClass getNodeFormatData();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getWidth
+ * <em>Width</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Width</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.NodeFormatData#getWidth()
+ * @see #getNodeFormatData()
+ * @generated
+ */
+ EAttribute getNodeFormatData_Width();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getHeight
+ * <em>Height</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Height</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.NodeFormatData#getHeight()
+ * @see #getNodeFormatData()
+ * @generated
+ */
+ EAttribute getNodeFormatData_Height();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getChildren
+ * <em>Children</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>Children</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.NodeFormatData#getChildren()
+ * @see #getNodeFormatData()
+ * @generated
+ */
+ EReference getNodeFormatData_Children();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getOutgoingEdges
+ * <em>Outgoing Edges</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>Outgoing Edges</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.NodeFormatData#getOutgoingEdges()
+ * @see #getNodeFormatData()
+ * @generated
+ */
+ EReference getNodeFormatData_OutgoingEdges();
+
+ /**
+ * Returns the meta object for the containment reference '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getLocation
+ * <em>Location</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference '<em>Location</em>
+ * '.
+ * @see org.eclipse.sirius.diagram.formatdata.NodeFormatData#getLocation()
+ * @see #getNodeFormatData()
+ * @generated
+ */
+ EReference getNodeFormatData_Location();
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData
+ * <em>Edge Format Data</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for class '<em>Edge Format Data</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData
+ * @generated
+ */
+ EClass getEdgeFormatData();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSourceTerminal
+ * <em>Source Terminal</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Source Terminal</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSourceTerminal()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EAttribute getEdgeFormatData_SourceTerminal();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getTargetTerminal
+ * <em>Target Terminal</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Target Terminal</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getTargetTerminal()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EAttribute getEdgeFormatData_TargetTerminal();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getRouting
+ * <em>Routing</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Routing</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getRouting()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EAttribute getEdgeFormatData_Routing();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getPointList
+ * <em>Point List</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>Point List</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getPointList()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EReference getEdgeFormatData_PointList();
+
+ /**
+ * Returns the meta object for the containment reference '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSourceRefPoint
+ * <em>Source Ref Point</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for the containment reference '
+ * <em>Source Ref Point</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSourceRefPoint()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EReference getEdgeFormatData_SourceRefPoint();
+
+ /**
+ * Returns the meta object for the containment reference '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getTargetRefPoint
+ * <em>Target Ref Point</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for the containment reference '
+ * <em>Target Ref Point</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getTargetRefPoint()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EReference getEdgeFormatData_TargetRefPoint();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getJumpLinkStatus
+ * <em>Jump Link Status</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for the attribute '<em>Jump Link Status</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getJumpLinkStatus()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EAttribute getEdgeFormatData_JumpLinkStatus();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getJumpLinkType
+ * <em>Jump Link Type</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Jump Link Type</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getJumpLinkType()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EAttribute getEdgeFormatData_JumpLinkType();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#isReverseJumpLink
+ * <em>Reverse Jump Link</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for the attribute '<em>Reverse Jump Link</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#isReverseJumpLink()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EAttribute getEdgeFormatData_ReverseJumpLink();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSmoothness
+ * <em>Smoothness</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Smoothness</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData#getSmoothness()
+ * @see #getEdgeFormatData()
+ * @generated
+ */
+ EAttribute getEdgeFormatData_Smoothness();
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.sirius.diagram.formatdata.Point <em>Point</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Point</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.Point
+ * @generated
+ */
+ EClass getPoint();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.Point#getX <em>X</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>X</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.Point#getX()
+ * @see #getPoint()
+ * @generated
+ */
+ EAttribute getPoint_X();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.sirius.diagram.formatdata.Point#getY <em>Y</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Y</em>'.
+ * @see org.eclipse.sirius.diagram.formatdata.Point#getY()
+ * @see #getPoint()
+ * @generated
+ */
+ EAttribute getPoint_Y();
+
+ /**
+ * Returns the factory that creates the instances of the model. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ FormatdataFactory getFormatdataFactory();
+
+ /**
+ * <!-- begin-user-doc --> Defines literals for the meta objects that
+ * represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.AbstractFormatDataImpl
+ * <em>Abstract Format Data</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.impl.AbstractFormatDataImpl
+ * @see org.eclipse.sirius.diagram.formatdata.impl.FormatdataPackageImpl#getAbstractFormatData()
+ * @generated
+ */
+ EClass ABSTRACT_FORMAT_DATA = FormatdataPackage.eINSTANCE.getAbstractFormatData();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute
+ * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ABSTRACT_FORMAT_DATA__ID = FormatdataPackage.eINSTANCE.getAbstractFormatData_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Label</b></em>' containment
+ * reference feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference ABSTRACT_FORMAT_DATA__LABEL = FormatdataPackage.eINSTANCE.getAbstractFormatData_Label();
+
+ /**
+ * The meta object literal for the '<em><b>Sirius Style</b></em>'
+ * containment reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference ABSTRACT_FORMAT_DATA__SIRIUS_STYLE = FormatdataPackage.eINSTANCE.getAbstractFormatData_SiriusStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Gmf View</b></em>'
+ * containment reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference ABSTRACT_FORMAT_DATA__GMF_VIEW = FormatdataPackage.eINSTANCE.getAbstractFormatData_GmfView();
+
+ /**
+ * The meta object literal for the '
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.NodeFormatDataImpl
+ * <em>Node Format Data</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.impl.NodeFormatDataImpl
+ * @see org.eclipse.sirius.diagram.formatdata.impl.FormatdataPackageImpl#getNodeFormatData()
+ * @generated
+ */
+ EClass NODE_FORMAT_DATA = FormatdataPackage.eINSTANCE.getNodeFormatData();
+
+ /**
+ * The meta object literal for the '<em><b>Width</b></em>' attribute
+ * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute NODE_FORMAT_DATA__WIDTH = FormatdataPackage.eINSTANCE.getNodeFormatData_Width();
+
+ /**
+ * The meta object literal for the '<em><b>Height</b></em>' attribute
+ * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute NODE_FORMAT_DATA__HEIGHT = FormatdataPackage.eINSTANCE.getNodeFormatData_Height();
+
+ /**
+ * The meta object literal for the '<em><b>Children</b></em>'
+ * containment reference list feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference NODE_FORMAT_DATA__CHILDREN = FormatdataPackage.eINSTANCE.getNodeFormatData_Children();
+
+ /**
+ * The meta object literal for the '<em><b>Outgoing Edges</b></em>'
+ * containment reference list feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference NODE_FORMAT_DATA__OUTGOING_EDGES = FormatdataPackage.eINSTANCE.getNodeFormatData_OutgoingEdges();
+
+ /**
+ * The meta object literal for the '<em><b>Location</b></em>'
+ * containment reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference NODE_FORMAT_DATA__LOCATION = FormatdataPackage.eINSTANCE.getNodeFormatData_Location();
+
+ /**
+ * The meta object literal for the '
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl
+ * <em>Edge Format Data</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl
+ * @see org.eclipse.sirius.diagram.formatdata.impl.FormatdataPackageImpl#getEdgeFormatData()
+ * @generated
+ */
+ EClass EDGE_FORMAT_DATA = FormatdataPackage.eINSTANCE.getEdgeFormatData();
+
+ /**
+ * The meta object literal for the '<em><b>Source Terminal</b></em>'
+ * attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EDGE_FORMAT_DATA__SOURCE_TERMINAL = FormatdataPackage.eINSTANCE.getEdgeFormatData_SourceTerminal();
+
+ /**
+ * The meta object literal for the '<em><b>Target Terminal</b></em>'
+ * attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EDGE_FORMAT_DATA__TARGET_TERMINAL = FormatdataPackage.eINSTANCE.getEdgeFormatData_TargetTerminal();
+
+ /**
+ * The meta object literal for the '<em><b>Routing</b></em>' attribute
+ * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EDGE_FORMAT_DATA__ROUTING = FormatdataPackage.eINSTANCE.getEdgeFormatData_Routing();
+
+ /**
+ * The meta object literal for the '<em><b>Point List</b></em>'
+ * containment reference list feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference EDGE_FORMAT_DATA__POINT_LIST = FormatdataPackage.eINSTANCE.getEdgeFormatData_PointList();
+
+ /**
+ * The meta object literal for the '<em><b>Source Ref Point</b></em>'
+ * containment reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference EDGE_FORMAT_DATA__SOURCE_REF_POINT = FormatdataPackage.eINSTANCE.getEdgeFormatData_SourceRefPoint();
+
+ /**
+ * The meta object literal for the '<em><b>Target Ref Point</b></em>'
+ * containment reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference EDGE_FORMAT_DATA__TARGET_REF_POINT = FormatdataPackage.eINSTANCE.getEdgeFormatData_TargetRefPoint();
+
+ /**
+ * The meta object literal for the '<em><b>Jump Link Status</b></em>'
+ * attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EDGE_FORMAT_DATA__JUMP_LINK_STATUS = FormatdataPackage.eINSTANCE.getEdgeFormatData_JumpLinkStatus();
+
+ /**
+ * The meta object literal for the '<em><b>Jump Link Type</b></em>'
+ * attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EDGE_FORMAT_DATA__JUMP_LINK_TYPE = FormatdataPackage.eINSTANCE.getEdgeFormatData_JumpLinkType();
+
+ /**
+ * The meta object literal for the '<em><b>Reverse Jump Link</b></em>'
+ * attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EDGE_FORMAT_DATA__REVERSE_JUMP_LINK = FormatdataPackage.eINSTANCE.getEdgeFormatData_ReverseJumpLink();
+
+ /**
+ * The meta object literal for the '<em><b>Smoothness</b></em>'
+ * attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EDGE_FORMAT_DATA__SMOOTHNESS = FormatdataPackage.eINSTANCE.getEdgeFormatData_Smoothness();
+
+ /**
+ * The meta object literal for the '
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.PointImpl
+ * <em>Point</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.impl.PointImpl
+ * @see org.eclipse.sirius.diagram.formatdata.impl.FormatdataPackageImpl#getPoint()
+ * @generated
+ */
+ EClass POINT = FormatdataPackage.eINSTANCE.getPoint();
+
+ /**
+ * The meta object literal for the '<em><b>X</b></em>' attribute
+ * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute POINT__X = FormatdataPackage.eINSTANCE.getPoint_X();
+
+ /**
+ * The meta object literal for the '<em><b>Y</b></em>' attribute
+ * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute POINT__Y = FormatdataPackage.eINSTANCE.getPoint_Y();
+
+ }
+
+} // FormatdataPackage
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/NodeFormatData.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/NodeFormatData.java
new file mode 100644
index 0000000000..d2434568af
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/NodeFormatData.java
@@ -0,0 +1,153 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Node Format Data</b></em>'. <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc --> The format data for a node. <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getWidth
+ * <em>Width</em>}</li>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getHeight
+ * <em>Height</em>}</li>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getChildren
+ * <em>Children</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getOutgoingEdges
+ * <em>Outgoing Edges</em>}</li>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getLocation
+ * <em>Location</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getNodeFormatData()
+ * @model
+ * @generated
+ */
+public interface NodeFormatData extends AbstractFormatData {
+ /**
+ * Returns the value of the '<em><b>Width</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> The
+ * width of this node. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Width</em>' attribute.
+ * @see #setWidth(int)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getNodeFormatData_Width()
+ * @model
+ * @generated
+ */
+ int getWidth();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getWidth
+ * <em>Width</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Width</em>' attribute.
+ * @see #getWidth()
+ * @generated
+ */
+ void setWidth(int value);
+
+ /**
+ * Returns the value of the '<em><b>Height</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> The
+ * height of this node. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Height</em>' attribute.
+ * @see #setHeight(int)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getNodeFormatData_Height()
+ * @model
+ * @generated
+ */
+ int getHeight();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getHeight
+ * <em>Height</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @param value
+ * the new value of the '<em>Height</em>' attribute.
+ * @see #getHeight()
+ * @generated
+ */
+ void setHeight(int value);
+
+ /**
+ * Returns the value of the '<em><b>Children</b></em>' containment reference
+ * list. The list contents are of type
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData}. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * Represents the format of the children of this node. <!-- end-model-doc
+ * -->
+ *
+ * @return the value of the '<em>Children</em>' containment reference list.
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getNodeFormatData_Children()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<NodeFormatData> getChildren();
+
+ /**
+ * Returns the value of the '<em><b>Outgoing Edges</b></em>' containment
+ * reference list. The list contents are of type
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData}. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * Represents the format of the edges that go out from this node. <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Outgoing Edges</em>' containment reference
+ * list.
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getNodeFormatData_OutgoingEdges()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<EdgeFormatData> getOutgoingEdges();
+
+ /**
+ * Returns the value of the '<em><b>Location</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc --> <!--
+ * begin-model-doc --> Represents the relative location of this node
+ * (relative to the parent formatData). <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Location</em>' containment reference.
+ * @see #setLocation(Point)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getNodeFormatData_Location()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ Point getLocation();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData#getLocation
+ * <em>Location</em>}' containment reference. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Location</em>' containment
+ * reference.
+ * @see #getLocation()
+ * @generated
+ */
+ void setLocation(Point value);
+
+} // NodeFormatData
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/Point.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/Point.java
new file mode 100644
index 0000000000..4b4f405823
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/Point.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Point</b></em>'. <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc --> Represents a point (x, y) in 2-dimensional space.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.Point#getX <em>X</em>}</li>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.Point#getY <em>Y</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getPoint()
+ * @model
+ * @generated
+ */
+public interface Point extends EObject {
+ /**
+ * Returns the value of the '<em><b>X</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * Represents the x coordinate. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>X</em>' attribute.
+ * @see #setX(int)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getPoint_X()
+ * @model
+ * @generated
+ */
+ int getX();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.Point#getX <em>X</em>}'
+ * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>X</em>' attribute.
+ * @see #getX()
+ * @generated
+ */
+ void setX(int value);
+
+ /**
+ * Returns the value of the '<em><b>Y</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc -->
+ * Represents the y coordinate. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Y</em>' attribute.
+ * @see #setY(int)
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#getPoint_Y()
+ * @model
+ * @generated
+ */
+ int getY();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.sirius.diagram.formatdata.Point#getY <em>Y</em>}'
+ * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Y</em>' attribute.
+ * @see #getY()
+ * @generated
+ */
+ void setY(int value);
+
+} // Point
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/AbstractFormatDataImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/AbstractFormatDataImpl.java
new file mode 100644
index 0000000000..d1ca70c17c
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/AbstractFormatDataImpl.java
@@ -0,0 +1,512 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.sirius.diagram.formatdata.AbstractFormatData;
+import org.eclipse.sirius.diagram.formatdata.FormatdataPackage;
+import org.eclipse.sirius.diagram.formatdata.NodeFormatData;
+import org.eclipse.sirius.viewpoint.Style;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Abstract Format Data</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.AbstractFormatDataImpl#getId
+ * <em>Id</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.AbstractFormatDataImpl#getLabel
+ * <em>Label</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.AbstractFormatDataImpl#getSiriusStyle
+ * <em>Sirius Style</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.AbstractFormatDataImpl#getGmfView
+ * <em>Gmf View</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AbstractFormatDataImpl extends EObjectImpl implements AbstractFormatData {
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = AbstractFormatDataImpl.ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getLabel() <em>Label</em>}' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getLabel()
+ * @generated
+ * @ordered
+ */
+ protected NodeFormatData label;
+
+ /**
+ * The cached value of the '{@link #getSiriusStyle() <em>Sirius Style</em>}'
+ * containment reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getSiriusStyle()
+ * @generated
+ * @ordered
+ */
+ protected Style siriusStyle;
+
+ /**
+ * The cached value of the '{@link #getGmfView() <em>Gmf View</em>}'
+ * containment reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getGmfView()
+ * @generated
+ * @ordered
+ */
+ protected View gmfView;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected AbstractFormatDataImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FormatdataPackage.Literals.ABSTRACT_FORMAT_DATA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setId(String newId) {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.ABSTRACT_FORMAT_DATA__ID, oldId, id));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NodeFormatData getLabel() {
+ if (label != null && label.eIsProxy()) {
+ InternalEObject oldLabel = (InternalEObject) label;
+ label = (NodeFormatData) eResolveProxy(oldLabel);
+ if (label != oldLabel) {
+ InternalEObject newLabel = (InternalEObject) label;
+ NotificationChain msgs = oldLabel.eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL, null, null);
+ if (newLabel.eInternalContainer() == null) {
+ msgs = newLabel.eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL, null, msgs);
+ }
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL, oldLabel, label));
+ }
+ }
+ }
+ return label;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NodeFormatData basicGetLabel() {
+ return label;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetLabel(NodeFormatData newLabel, NotificationChain msgs) {
+ NodeFormatData oldLabel = label;
+ label = newLabel;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL, oldLabel, newLabel);
+ if (msgs == null) {
+ msgs = notification;
+ } else {
+ msgs.add(notification);
+ }
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setLabel(NodeFormatData newLabel) {
+ if (newLabel != label) {
+ NotificationChain msgs = null;
+ if (label != null) {
+ msgs = ((InternalEObject) label).eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL, null, msgs);
+ }
+ if (newLabel != null) {
+ msgs = ((InternalEObject) newLabel).eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL, null, msgs);
+ }
+ msgs = basicSetLabel(newLabel, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ } else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL, newLabel, newLabel));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Style getSiriusStyle() {
+ if (siriusStyle != null && siriusStyle.eIsProxy()) {
+ InternalEObject oldSiriusStyle = (InternalEObject) siriusStyle;
+ siriusStyle = (Style) eResolveProxy(oldSiriusStyle);
+ if (siriusStyle != oldSiriusStyle) {
+ InternalEObject newSiriusStyle = (InternalEObject) siriusStyle;
+ NotificationChain msgs = oldSiriusStyle.eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE, null, null);
+ if (newSiriusStyle.eInternalContainer() == null) {
+ msgs = newSiriusStyle.eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE, null, msgs);
+ }
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE, oldSiriusStyle, siriusStyle));
+ }
+ }
+ }
+ return siriusStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Style basicGetSiriusStyle() {
+ return siriusStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetSiriusStyle(Style newSiriusStyle, NotificationChain msgs) {
+ Style oldSiriusStyle = siriusStyle;
+ siriusStyle = newSiriusStyle;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE, oldSiriusStyle, newSiriusStyle);
+ if (msgs == null) {
+ msgs = notification;
+ } else {
+ msgs.add(notification);
+ }
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSiriusStyle(Style newSiriusStyle) {
+ if (newSiriusStyle != siriusStyle) {
+ NotificationChain msgs = null;
+ if (siriusStyle != null) {
+ msgs = ((InternalEObject) siriusStyle).eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE, null, msgs);
+ }
+ if (newSiriusStyle != null) {
+ msgs = ((InternalEObject) newSiriusStyle).eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE, null, msgs);
+ }
+ msgs = basicSetSiriusStyle(newSiriusStyle, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ } else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE, newSiriusStyle, newSiriusStyle));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public View getGmfView() {
+ if (gmfView != null && gmfView.eIsProxy()) {
+ InternalEObject oldGmfView = (InternalEObject) gmfView;
+ gmfView = (View) eResolveProxy(oldGmfView);
+ if (gmfView != oldGmfView) {
+ InternalEObject newGmfView = (InternalEObject) gmfView;
+ NotificationChain msgs = oldGmfView.eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW, null, null);
+ if (newGmfView.eInternalContainer() == null) {
+ msgs = newGmfView.eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW, null, msgs);
+ }
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW, oldGmfView, gmfView));
+ }
+ }
+ }
+ return gmfView;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public View basicGetGmfView() {
+ return gmfView;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetGmfView(View newGmfView, NotificationChain msgs) {
+ View oldGmfView = gmfView;
+ gmfView = newGmfView;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW, oldGmfView, newGmfView);
+ if (msgs == null) {
+ msgs = notification;
+ } else {
+ msgs.add(notification);
+ }
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setGmfView(View newGmfView) {
+ if (newGmfView != gmfView) {
+ NotificationChain msgs = null;
+ if (gmfView != null) {
+ msgs = ((InternalEObject) gmfView).eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW, null, msgs);
+ }
+ if (newGmfView != null) {
+ msgs = ((InternalEObject) newGmfView).eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW, null, msgs);
+ }
+ msgs = basicSetGmfView(newGmfView, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ } else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW, newGmfView, newGmfView));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL:
+ return basicSetLabel(null, msgs);
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE:
+ return basicSetSiriusStyle(null, msgs);
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW:
+ return basicSetGmfView(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__ID:
+ return getId();
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL:
+ if (resolve) {
+ return getLabel();
+ }
+ return basicGetLabel();
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE:
+ if (resolve) {
+ return getSiriusStyle();
+ }
+ return basicGetSiriusStyle();
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW:
+ if (resolve) {
+ return getGmfView();
+ }
+ return basicGetGmfView();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__ID:
+ setId((String) newValue);
+ return;
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL:
+ setLabel((NodeFormatData) newValue);
+ return;
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE:
+ setSiriusStyle((Style) newValue);
+ return;
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW:
+ setGmfView((View) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__ID:
+ setId(AbstractFormatDataImpl.ID_EDEFAULT);
+ return;
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL:
+ setLabel((NodeFormatData) null);
+ return;
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE:
+ setSiriusStyle((Style) null);
+ return;
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW:
+ setGmfView((View) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__ID:
+ return AbstractFormatDataImpl.ID_EDEFAULT == null ? id != null : !AbstractFormatDataImpl.ID_EDEFAULT.equals(id);
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL:
+ return label != null;
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE:
+ return siriusStyle != null;
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW:
+ return gmfView != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (id: "); //$NON-NLS-1$
+ result.append(id);
+ result.append(')');
+ return result.toString();
+ }
+
+} // AbstractFormatDataImpl
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/EdgeFormatDataImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/EdgeFormatDataImpl.java
new file mode 100644
index 0000000000..557ae7d159
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/EdgeFormatDataImpl.java
@@ -0,0 +1,813 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.sirius.diagram.formatdata.EdgeFormatData;
+import org.eclipse.sirius.diagram.formatdata.FormatdataPackage;
+import org.eclipse.sirius.diagram.formatdata.Point;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Edge Format Data</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#getSourceTerminal
+ * <em>Source Terminal</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#getTargetTerminal
+ * <em>Target Terminal</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#getRouting
+ * <em>Routing</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#getPointList
+ * <em>Point List</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#getSourceRefPoint
+ * <em>Source Ref Point</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#getTargetRefPoint
+ * <em>Target Ref Point</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#getJumpLinkStatus
+ * <em>Jump Link Status</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#getJumpLinkType
+ * <em>Jump Link Type</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#isReverseJumpLink
+ * <em>Reverse Jump Link</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.EdgeFormatDataImpl#getSmoothness
+ * <em>Smoothness</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class EdgeFormatDataImpl extends AbstractFormatDataImpl implements EdgeFormatData {
+ /**
+ * The default value of the '{@link #getSourceTerminal()
+ * <em>Source Terminal</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getSourceTerminal()
+ * @generated
+ * @ordered
+ */
+ protected static final String SOURCE_TERMINAL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSourceTerminal()
+ * <em>Source Terminal</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getSourceTerminal()
+ * @generated
+ * @ordered
+ */
+ protected String sourceTerminal = EdgeFormatDataImpl.SOURCE_TERMINAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTargetTerminal()
+ * <em>Target Terminal</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getTargetTerminal()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_TERMINAL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetTerminal()
+ * <em>Target Terminal</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getTargetTerminal()
+ * @generated
+ * @ordered
+ */
+ protected String targetTerminal = EdgeFormatDataImpl.TARGET_TERMINAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRouting() <em>Routing</em>}'
+ * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getRouting()
+ * @generated
+ * @ordered
+ */
+ protected static final int ROUTING_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getRouting() <em>Routing</em>}'
+ * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getRouting()
+ * @generated
+ * @ordered
+ */
+ protected int routing = EdgeFormatDataImpl.ROUTING_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPointList() <em>Point List</em>}'
+ * containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getPointList()
+ * @generated
+ * @ordered
+ */
+ protected EList<Point> pointList;
+
+ /**
+ * The cached value of the '{@link #getSourceRefPoint()
+ * <em>Source Ref Point</em>}' containment reference. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getSourceRefPoint()
+ * @generated
+ * @ordered
+ */
+ protected Point sourceRefPoint;
+
+ /**
+ * The cached value of the '{@link #getTargetRefPoint()
+ * <em>Target Ref Point</em>}' containment reference. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getTargetRefPoint()
+ * @generated
+ * @ordered
+ */
+ protected Point targetRefPoint;
+
+ /**
+ * The default value of the '{@link #getJumpLinkStatus()
+ * <em>Jump Link Status</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getJumpLinkStatus()
+ * @generated
+ * @ordered
+ */
+ protected static final int JUMP_LINK_STATUS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getJumpLinkStatus()
+ * <em>Jump Link Status</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getJumpLinkStatus()
+ * @generated
+ * @ordered
+ */
+ protected int jumpLinkStatus = EdgeFormatDataImpl.JUMP_LINK_STATUS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getJumpLinkType()
+ * <em>Jump Link Type</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getJumpLinkType()
+ * @generated
+ * @ordered
+ */
+ protected static final int JUMP_LINK_TYPE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getJumpLinkType()
+ * <em>Jump Link Type</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getJumpLinkType()
+ * @generated
+ * @ordered
+ */
+ protected int jumpLinkType = EdgeFormatDataImpl.JUMP_LINK_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isReverseJumpLink()
+ * <em>Reverse Jump Link</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #isReverseJumpLink()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean REVERSE_JUMP_LINK_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReverseJumpLink()
+ * <em>Reverse Jump Link</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #isReverseJumpLink()
+ * @generated
+ * @ordered
+ */
+ protected boolean reverseJumpLink = EdgeFormatDataImpl.REVERSE_JUMP_LINK_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSmoothness() <em>Smoothness</em>}'
+ * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getSmoothness()
+ * @generated
+ * @ordered
+ */
+ protected static final int SMOOTHNESS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSmoothness() <em>Smoothness</em>}'
+ * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getSmoothness()
+ * @generated
+ * @ordered
+ */
+ protected int smoothness = EdgeFormatDataImpl.SMOOTHNESS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EdgeFormatDataImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FormatdataPackage.Literals.EDGE_FORMAT_DATA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getSourceTerminal() {
+ return sourceTerminal;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSourceTerminal(String newSourceTerminal) {
+ String oldSourceTerminal = sourceTerminal;
+ sourceTerminal = newSourceTerminal;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_TERMINAL, oldSourceTerminal, sourceTerminal));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getTargetTerminal() {
+ return targetTerminal;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setTargetTerminal(String newTargetTerminal) {
+ String oldTargetTerminal = targetTerminal;
+ targetTerminal = newTargetTerminal;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__TARGET_TERMINAL, oldTargetTerminal, targetTerminal));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getRouting() {
+ return routing;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setRouting(int newRouting) {
+ int oldRouting = routing;
+ routing = newRouting;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__ROUTING, oldRouting, routing));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<Point> getPointList() {
+ if (pointList == null) {
+ pointList = new EObjectContainmentEList.Resolving<Point>(Point.class, this, FormatdataPackage.EDGE_FORMAT_DATA__POINT_LIST);
+ }
+ return pointList;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Point getSourceRefPoint() {
+ if (sourceRefPoint != null && sourceRefPoint.eIsProxy()) {
+ InternalEObject oldSourceRefPoint = (InternalEObject) sourceRefPoint;
+ sourceRefPoint = (Point) eResolveProxy(oldSourceRefPoint);
+ if (sourceRefPoint != oldSourceRefPoint) {
+ InternalEObject newSourceRefPoint = (InternalEObject) sourceRefPoint;
+ NotificationChain msgs = oldSourceRefPoint.eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT, null, null);
+ if (newSourceRefPoint.eInternalContainer() == null) {
+ msgs = newSourceRefPoint.eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT, null, msgs);
+ }
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT, oldSourceRefPoint, sourceRefPoint));
+ }
+ }
+ }
+ return sourceRefPoint;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Point basicGetSourceRefPoint() {
+ return sourceRefPoint;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetSourceRefPoint(Point newSourceRefPoint, NotificationChain msgs) {
+ Point oldSourceRefPoint = sourceRefPoint;
+ sourceRefPoint = newSourceRefPoint;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT, oldSourceRefPoint, newSourceRefPoint);
+ if (msgs == null) {
+ msgs = notification;
+ } else {
+ msgs.add(notification);
+ }
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSourceRefPoint(Point newSourceRefPoint) {
+ if (newSourceRefPoint != sourceRefPoint) {
+ NotificationChain msgs = null;
+ if (sourceRefPoint != null) {
+ msgs = ((InternalEObject) sourceRefPoint).eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT, null, msgs);
+ }
+ if (newSourceRefPoint != null) {
+ msgs = ((InternalEObject) newSourceRefPoint).eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT, null, msgs);
+ }
+ msgs = basicSetSourceRefPoint(newSourceRefPoint, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ } else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT, newSourceRefPoint, newSourceRefPoint));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Point getTargetRefPoint() {
+ if (targetRefPoint != null && targetRefPoint.eIsProxy()) {
+ InternalEObject oldTargetRefPoint = (InternalEObject) targetRefPoint;
+ targetRefPoint = (Point) eResolveProxy(oldTargetRefPoint);
+ if (targetRefPoint != oldTargetRefPoint) {
+ InternalEObject newTargetRefPoint = (InternalEObject) targetRefPoint;
+ NotificationChain msgs = oldTargetRefPoint.eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT, null, null);
+ if (newTargetRefPoint.eInternalContainer() == null) {
+ msgs = newTargetRefPoint.eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT, null, msgs);
+ }
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT, oldTargetRefPoint, targetRefPoint));
+ }
+ }
+ }
+ return targetRefPoint;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Point basicGetTargetRefPoint() {
+ return targetRefPoint;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetTargetRefPoint(Point newTargetRefPoint, NotificationChain msgs) {
+ Point oldTargetRefPoint = targetRefPoint;
+ targetRefPoint = newTargetRefPoint;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT, oldTargetRefPoint, newTargetRefPoint);
+ if (msgs == null) {
+ msgs = notification;
+ } else {
+ msgs.add(notification);
+ }
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setTargetRefPoint(Point newTargetRefPoint) {
+ if (newTargetRefPoint != targetRefPoint) {
+ NotificationChain msgs = null;
+ if (targetRefPoint != null) {
+ msgs = ((InternalEObject) targetRefPoint).eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT, null, msgs);
+ }
+ if (newTargetRefPoint != null) {
+ msgs = ((InternalEObject) newTargetRefPoint).eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT, null, msgs);
+ }
+ msgs = basicSetTargetRefPoint(newTargetRefPoint, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ } else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT, newTargetRefPoint, newTargetRefPoint));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getJumpLinkStatus() {
+ return jumpLinkStatus;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setJumpLinkStatus(int newJumpLinkStatus) {
+ int oldJumpLinkStatus = jumpLinkStatus;
+ jumpLinkStatus = newJumpLinkStatus;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_STATUS, oldJumpLinkStatus, jumpLinkStatus));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getJumpLinkType() {
+ return jumpLinkType;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setJumpLinkType(int newJumpLinkType) {
+ int oldJumpLinkType = jumpLinkType;
+ jumpLinkType = newJumpLinkType;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_TYPE, oldJumpLinkType, jumpLinkType));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean isReverseJumpLink() {
+ return reverseJumpLink;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setReverseJumpLink(boolean newReverseJumpLink) {
+ boolean oldReverseJumpLink = reverseJumpLink;
+ reverseJumpLink = newReverseJumpLink;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__REVERSE_JUMP_LINK, oldReverseJumpLink, reverseJumpLink));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getSmoothness() {
+ return smoothness;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSmoothness(int newSmoothness) {
+ int oldSmoothness = smoothness;
+ smoothness = newSmoothness;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.EDGE_FORMAT_DATA__SMOOTHNESS, oldSmoothness, smoothness));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FormatdataPackage.EDGE_FORMAT_DATA__POINT_LIST:
+ return ((InternalEList<?>) getPointList()).basicRemove(otherEnd, msgs);
+ case FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT:
+ return basicSetSourceRefPoint(null, msgs);
+ case FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT:
+ return basicSetTargetRefPoint(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_TERMINAL:
+ return getSourceTerminal();
+ case FormatdataPackage.EDGE_FORMAT_DATA__TARGET_TERMINAL:
+ return getTargetTerminal();
+ case FormatdataPackage.EDGE_FORMAT_DATA__ROUTING:
+ return getRouting();
+ case FormatdataPackage.EDGE_FORMAT_DATA__POINT_LIST:
+ return getPointList();
+ case FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT:
+ if (resolve) {
+ return getSourceRefPoint();
+ }
+ return basicGetSourceRefPoint();
+ case FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT:
+ if (resolve) {
+ return getTargetRefPoint();
+ }
+ return basicGetTargetRefPoint();
+ case FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_STATUS:
+ return getJumpLinkStatus();
+ case FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_TYPE:
+ return getJumpLinkType();
+ case FormatdataPackage.EDGE_FORMAT_DATA__REVERSE_JUMP_LINK:
+ return isReverseJumpLink();
+ case FormatdataPackage.EDGE_FORMAT_DATA__SMOOTHNESS:
+ return getSmoothness();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_TERMINAL:
+ setSourceTerminal((String) newValue);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__TARGET_TERMINAL:
+ setTargetTerminal((String) newValue);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__ROUTING:
+ setRouting((Integer) newValue);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__POINT_LIST:
+ getPointList().clear();
+ getPointList().addAll((Collection<? extends Point>) newValue);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT:
+ setSourceRefPoint((Point) newValue);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT:
+ setTargetRefPoint((Point) newValue);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_STATUS:
+ setJumpLinkStatus((Integer) newValue);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_TYPE:
+ setJumpLinkType((Integer) newValue);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__REVERSE_JUMP_LINK:
+ setReverseJumpLink((Boolean) newValue);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__SMOOTHNESS:
+ setSmoothness((Integer) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_TERMINAL:
+ setSourceTerminal(EdgeFormatDataImpl.SOURCE_TERMINAL_EDEFAULT);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__TARGET_TERMINAL:
+ setTargetTerminal(EdgeFormatDataImpl.TARGET_TERMINAL_EDEFAULT);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__ROUTING:
+ setRouting(EdgeFormatDataImpl.ROUTING_EDEFAULT);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__POINT_LIST:
+ getPointList().clear();
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT:
+ setSourceRefPoint((Point) null);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT:
+ setTargetRefPoint((Point) null);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_STATUS:
+ setJumpLinkStatus(EdgeFormatDataImpl.JUMP_LINK_STATUS_EDEFAULT);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_TYPE:
+ setJumpLinkType(EdgeFormatDataImpl.JUMP_LINK_TYPE_EDEFAULT);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__REVERSE_JUMP_LINK:
+ setReverseJumpLink(EdgeFormatDataImpl.REVERSE_JUMP_LINK_EDEFAULT);
+ return;
+ case FormatdataPackage.EDGE_FORMAT_DATA__SMOOTHNESS:
+ setSmoothness(EdgeFormatDataImpl.SMOOTHNESS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_TERMINAL:
+ return EdgeFormatDataImpl.SOURCE_TERMINAL_EDEFAULT == null ? sourceTerminal != null : !EdgeFormatDataImpl.SOURCE_TERMINAL_EDEFAULT.equals(sourceTerminal);
+ case FormatdataPackage.EDGE_FORMAT_DATA__TARGET_TERMINAL:
+ return EdgeFormatDataImpl.TARGET_TERMINAL_EDEFAULT == null ? targetTerminal != null : !EdgeFormatDataImpl.TARGET_TERMINAL_EDEFAULT.equals(targetTerminal);
+ case FormatdataPackage.EDGE_FORMAT_DATA__ROUTING:
+ return routing != EdgeFormatDataImpl.ROUTING_EDEFAULT;
+ case FormatdataPackage.EDGE_FORMAT_DATA__POINT_LIST:
+ return pointList != null && !pointList.isEmpty();
+ case FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT:
+ return sourceRefPoint != null;
+ case FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT:
+ return targetRefPoint != null;
+ case FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_STATUS:
+ return jumpLinkStatus != EdgeFormatDataImpl.JUMP_LINK_STATUS_EDEFAULT;
+ case FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_TYPE:
+ return jumpLinkType != EdgeFormatDataImpl.JUMP_LINK_TYPE_EDEFAULT;
+ case FormatdataPackage.EDGE_FORMAT_DATA__REVERSE_JUMP_LINK:
+ return reverseJumpLink != EdgeFormatDataImpl.REVERSE_JUMP_LINK_EDEFAULT;
+ case FormatdataPackage.EDGE_FORMAT_DATA__SMOOTHNESS:
+ return smoothness != EdgeFormatDataImpl.SMOOTHNESS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (sourceTerminal: "); //$NON-NLS-1$
+ result.append(sourceTerminal);
+ result.append(", targetTerminal: "); //$NON-NLS-1$
+ result.append(targetTerminal);
+ result.append(", routing: "); //$NON-NLS-1$
+ result.append(routing);
+ result.append(", jumpLinkStatus: "); //$NON-NLS-1$
+ result.append(jumpLinkStatus);
+ result.append(", jumpLinkType: "); //$NON-NLS-1$
+ result.append(jumpLinkType);
+ result.append(", reverseJumpLink: "); //$NON-NLS-1$
+ result.append(reverseJumpLink);
+ result.append(", smoothness: "); //$NON-NLS-1$
+ result.append(smoothness);
+ result.append(')');
+ return result.toString();
+ }
+
+} // EdgeFormatDataImpl
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/FormatdataFactoryImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/FormatdataFactoryImpl.java
new file mode 100644
index 0000000000..b8b8c9f144
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/FormatdataFactoryImpl.java
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.sirius.diagram.formatdata.EdgeFormatData;
+import org.eclipse.sirius.diagram.formatdata.FormatdataFactory;
+import org.eclipse.sirius.diagram.formatdata.FormatdataPackage;
+import org.eclipse.sirius.diagram.formatdata.NodeFormatData;
+import org.eclipse.sirius.diagram.formatdata.Point;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class FormatdataFactoryImpl extends EFactoryImpl implements FormatdataFactory {
+ /**
+ * Creates the default factory implementation. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public static FormatdataFactory init() {
+ try {
+ FormatdataFactory theFormatdataFactory = (FormatdataFactory) EPackage.Registry.INSTANCE.getEFactory(FormatdataPackage.eNS_URI);
+ if (theFormatdataFactory != null) {
+ return theFormatdataFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new FormatdataFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public FormatdataFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case FormatdataPackage.NODE_FORMAT_DATA:
+ return createNodeFormatData();
+ case FormatdataPackage.EDGE_FORMAT_DATA:
+ return createEdgeFormatData();
+ case FormatdataPackage.POINT:
+ return createPoint();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NodeFormatData createNodeFormatData() {
+ NodeFormatDataImpl nodeFormatData = new NodeFormatDataImpl();
+ return nodeFormatData;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EdgeFormatData createEdgeFormatData() {
+ EdgeFormatDataImpl edgeFormatData = new EdgeFormatDataImpl();
+ return edgeFormatData;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Point createPoint() {
+ PointImpl point = new PointImpl();
+ return point;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public FormatdataPackage getFormatdataPackage() {
+ return (FormatdataPackage) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static FormatdataPackage getPackage() {
+ return FormatdataPackage.eINSTANCE;
+ }
+
+} // FormatdataFactoryImpl
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/FormatdataPackageImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/FormatdataPackageImpl.java
new file mode 100644
index 0000000000..fe74ba8382
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/FormatdataPackageImpl.java
@@ -0,0 +1,554 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.sirius.diagram.formatdata.AbstractFormatData;
+import org.eclipse.sirius.diagram.formatdata.EdgeFormatData;
+import org.eclipse.sirius.diagram.formatdata.FormatdataFactory;
+import org.eclipse.sirius.diagram.formatdata.FormatdataPackage;
+import org.eclipse.sirius.diagram.formatdata.NodeFormatData;
+import org.eclipse.sirius.diagram.formatdata.Point;
+import org.eclipse.sirius.viewpoint.ViewpointPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class FormatdataPackageImpl extends EPackageImpl implements FormatdataPackage {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass abstractFormatDataEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass nodeFormatDataEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass edgeFormatDataEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass pointEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the
+ * package package URI value.
+ * <p>
+ * Note: the correct way to create the package is via the static factory
+ * method {@link #init init()}, which also performs initialization of the
+ * package, or returns the registered package, if one already exists. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private FormatdataPackageImpl() {
+ super(FormatdataPackage.eNS_URI, FormatdataFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model,
+ * and for any others upon which it depends.
+ *
+ * <p>
+ * This method is used to initialize {@link FormatdataPackage#eINSTANCE}
+ * when that field is accessed. Clients should not invoke it directly.
+ * Instead, they should simply access that field to obtain the package. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static FormatdataPackage init() {
+ if (FormatdataPackageImpl.isInited) {
+ return (FormatdataPackage) EPackage.Registry.INSTANCE.getEPackage(FormatdataPackage.eNS_URI);
+ }
+
+ // Obtain or create and register package
+ FormatdataPackageImpl theFormatdataPackage = (FormatdataPackageImpl) (EPackage.Registry.INSTANCE.get(FormatdataPackage.eNS_URI) instanceof FormatdataPackageImpl
+ ? EPackage.Registry.INSTANCE.get(FormatdataPackage.eNS_URI) : new FormatdataPackageImpl());
+
+ FormatdataPackageImpl.isInited = true;
+
+ // Initialize simple dependencies
+ NotationPackage.eINSTANCE.eClass();
+ ViewpointPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theFormatdataPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theFormatdataPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theFormatdataPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(FormatdataPackage.eNS_URI, theFormatdataPackage);
+ return theFormatdataPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getAbstractFormatData() {
+ return abstractFormatDataEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getAbstractFormatData_Id() {
+ return (EAttribute) abstractFormatDataEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getAbstractFormatData_Label() {
+ return (EReference) abstractFormatDataEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getAbstractFormatData_SiriusStyle() {
+ return (EReference) abstractFormatDataEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getAbstractFormatData_GmfView() {
+ return (EReference) abstractFormatDataEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getNodeFormatData() {
+ return nodeFormatDataEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getNodeFormatData_Width() {
+ return (EAttribute) nodeFormatDataEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getNodeFormatData_Height() {
+ return (EAttribute) nodeFormatDataEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getNodeFormatData_Children() {
+ return (EReference) nodeFormatDataEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getNodeFormatData_OutgoingEdges() {
+ return (EReference) nodeFormatDataEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getNodeFormatData_Location() {
+ return (EReference) nodeFormatDataEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getEdgeFormatData() {
+ return edgeFormatDataEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEdgeFormatData_SourceTerminal() {
+ return (EAttribute) edgeFormatDataEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEdgeFormatData_TargetTerminal() {
+ return (EAttribute) edgeFormatDataEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEdgeFormatData_Routing() {
+ return (EAttribute) edgeFormatDataEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getEdgeFormatData_PointList() {
+ return (EReference) edgeFormatDataEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getEdgeFormatData_SourceRefPoint() {
+ return (EReference) edgeFormatDataEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EReference getEdgeFormatData_TargetRefPoint() {
+ return (EReference) edgeFormatDataEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEdgeFormatData_JumpLinkStatus() {
+ return (EAttribute) edgeFormatDataEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEdgeFormatData_JumpLinkType() {
+ return (EAttribute) edgeFormatDataEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEdgeFormatData_ReverseJumpLink() {
+ return (EAttribute) edgeFormatDataEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEdgeFormatData_Smoothness() {
+ return (EAttribute) edgeFormatDataEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getPoint() {
+ return pointEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getPoint_X() {
+ return (EAttribute) pointEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getPoint_Y() {
+ return (EAttribute) pointEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public FormatdataFactory getFormatdataFactory() {
+ return (FormatdataFactory) getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is guarded to
+ * have no affect on any invocation but its first. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) {
+ return;
+ }
+ isCreated = true;
+
+ // Create classes and their features
+ abstractFormatDataEClass = createEClass(FormatdataPackage.ABSTRACT_FORMAT_DATA);
+ createEAttribute(abstractFormatDataEClass, FormatdataPackage.ABSTRACT_FORMAT_DATA__ID);
+ createEReference(abstractFormatDataEClass, FormatdataPackage.ABSTRACT_FORMAT_DATA__LABEL);
+ createEReference(abstractFormatDataEClass, FormatdataPackage.ABSTRACT_FORMAT_DATA__SIRIUS_STYLE);
+ createEReference(abstractFormatDataEClass, FormatdataPackage.ABSTRACT_FORMAT_DATA__GMF_VIEW);
+
+ nodeFormatDataEClass = createEClass(FormatdataPackage.NODE_FORMAT_DATA);
+ createEAttribute(nodeFormatDataEClass, FormatdataPackage.NODE_FORMAT_DATA__WIDTH);
+ createEAttribute(nodeFormatDataEClass, FormatdataPackage.NODE_FORMAT_DATA__HEIGHT);
+ createEReference(nodeFormatDataEClass, FormatdataPackage.NODE_FORMAT_DATA__CHILDREN);
+ createEReference(nodeFormatDataEClass, FormatdataPackage.NODE_FORMAT_DATA__OUTGOING_EDGES);
+ createEReference(nodeFormatDataEClass, FormatdataPackage.NODE_FORMAT_DATA__LOCATION);
+
+ edgeFormatDataEClass = createEClass(FormatdataPackage.EDGE_FORMAT_DATA);
+ createEAttribute(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_TERMINAL);
+ createEAttribute(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__TARGET_TERMINAL);
+ createEAttribute(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__ROUTING);
+ createEReference(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__POINT_LIST);
+ createEReference(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__SOURCE_REF_POINT);
+ createEReference(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__TARGET_REF_POINT);
+ createEAttribute(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_STATUS);
+ createEAttribute(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__JUMP_LINK_TYPE);
+ createEAttribute(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__REVERSE_JUMP_LINK);
+ createEAttribute(edgeFormatDataEClass, FormatdataPackage.EDGE_FORMAT_DATA__SMOOTHNESS);
+
+ pointEClass = createEClass(FormatdataPackage.POINT);
+ createEAttribute(pointEClass, FormatdataPackage.POINT__X);
+ createEAttribute(pointEClass, FormatdataPackage.POINT__Y);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) {
+ return;
+ }
+ isInitialized = true;
+
+ // Initialize package
+ setName(FormatdataPackage.eNAME);
+ setNsPrefix(FormatdataPackage.eNS_PREFIX);
+ setNsURI(FormatdataPackage.eNS_URI);
+
+ // Obtain other dependent packages
+ ViewpointPackage theViewpointPackage = (ViewpointPackage) EPackage.Registry.INSTANCE.getEPackage(ViewpointPackage.eNS_URI);
+ NotationPackage theNotationPackage = (NotationPackage) EPackage.Registry.INSTANCE.getEPackage(NotationPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ nodeFormatDataEClass.getESuperTypes().add(this.getAbstractFormatData());
+ edgeFormatDataEClass.getESuperTypes().add(this.getAbstractFormatData());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(abstractFormatDataEClass, AbstractFormatData.class, "AbstractFormatData", EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getAbstractFormatData_Id(), ecorePackage.getEString(), "id", null, 1, 1, AbstractFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE,
+ !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEReference(getAbstractFormatData_Label(), this.getNodeFormatData(), null, "label", null, 0, 1, AbstractFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE,
+ EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEReference(getAbstractFormatData_SiriusStyle(), theViewpointPackage.getStyle(), null, "siriusStyle", null, 1, 1, AbstractFormatData.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$
+ !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE,
+ EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEReference(getAbstractFormatData_GmfView(), theNotationPackage.getView(), null, "gmfView", null, 1, 1, AbstractFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE,
+ EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+
+ initEClass(nodeFormatDataEClass, NodeFormatData.class, "NodeFormatData", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getNodeFormatData_Width(), ecorePackage.getEInt(), "width", "-2", 0, 1, NodeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$ //$NON-NLS-2$
+ !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE,
+ !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEAttribute(getNodeFormatData_Height(), ecorePackage.getEInt(), "height", "-2", 0, 1, NodeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ //$NON-NLS-2$
+ EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE,
+ !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEReference(getNodeFormatData_Children(), this.getNodeFormatData(), null, "children", null, 0, -1, NodeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE,
+ EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEReference(getNodeFormatData_OutgoingEdges(), this.getEdgeFormatData(), null, "outgoingEdges", null, 0, -1, NodeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE,
+ EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEReference(getNodeFormatData_Location(), this.getPoint(), null, "location", null, 0, 1, NodeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES,
+ !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+
+ initEClass(edgeFormatDataEClass, EdgeFormatData.class, "EdgeFormatData", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getEdgeFormatData_SourceTerminal(), ecorePackage.getEString(), "sourceTerminal", null, 0, 1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE,
+ !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEAttribute(getEdgeFormatData_TargetTerminal(), ecorePackage.getEString(), "targetTerminal", null, 0, 1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE,
+ !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEAttribute(getEdgeFormatData_Routing(), ecorePackage.getEInt(), "routing", null, 0, 1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE,
+ !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEReference(getEdgeFormatData_PointList(), this.getPoint(), null, "pointList", null, 0, -1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE,
+ EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEReference(getEdgeFormatData_SourceRefPoint(), this.getPoint(), null, "sourceRefPoint", null, 0, 1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE,
+ EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEReference(getEdgeFormatData_TargetRefPoint(), this.getPoint(), null, "targetRefPoint", null, 0, 1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE,
+ EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEAttribute(getEdgeFormatData_JumpLinkStatus(), ecorePackage.getEInt(), "jumpLinkStatus", null, 0, 1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE,
+ !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEAttribute(getEdgeFormatData_JumpLinkType(), ecorePackage.getEInt(), "jumpLinkType", null, 0, 1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID,
+ EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEAttribute(getEdgeFormatData_ReverseJumpLink(), ecorePackage.getEBoolean(), "reverseJumpLink", null, 0, 1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE,
+ !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEAttribute(getEdgeFormatData_Smoothness(), ecorePackage.getEInt(), "smoothness", null, 0, 1, EdgeFormatData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$
+ EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID,
+ EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+
+ initEClass(pointEClass, Point.class, "Point", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPoint_X(), ecorePackage.getEInt(), "x", null, 0, 1, Point.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$
+ !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+ initEAttribute(getPoint_Y(), ecorePackage.getEInt(), "y", null, 0, 1, Point.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$
+ !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED);
+
+ // Create resource
+ createResource(FormatdataPackage.eNS_URI);
+ }
+
+} // FormatdataPackageImpl
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/NodeFormatDataImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/NodeFormatDataImpl.java
new file mode 100644
index 0000000000..5955fc902b
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/NodeFormatDataImpl.java
@@ -0,0 +1,448 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.sirius.diagram.formatdata.EdgeFormatData;
+import org.eclipse.sirius.diagram.formatdata.FormatdataPackage;
+import org.eclipse.sirius.diagram.formatdata.NodeFormatData;
+import org.eclipse.sirius.diagram.formatdata.Point;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Node Format Data</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.NodeFormatDataImpl#getWidth
+ * <em>Width</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.NodeFormatDataImpl#getHeight
+ * <em>Height</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.NodeFormatDataImpl#getChildren
+ * <em>Children</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.NodeFormatDataImpl#getOutgoingEdges
+ * <em>Outgoing Edges</em>}</li>
+ * <li>
+ * {@link org.eclipse.sirius.diagram.formatdata.impl.NodeFormatDataImpl#getLocation
+ * <em>Location</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NodeFormatDataImpl extends AbstractFormatDataImpl implements NodeFormatData {
+ /**
+ * The default value of the '{@link #getWidth() <em>Width</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getWidth()
+ * @generated
+ * @ordered
+ */
+ protected static final int WIDTH_EDEFAULT = -2;
+
+ /**
+ * The cached value of the '{@link #getWidth() <em>Width</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getWidth()
+ * @generated
+ * @ordered
+ */
+ protected int width = NodeFormatDataImpl.WIDTH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHeight() <em>Height</em>}'
+ * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHeight()
+ * @generated
+ * @ordered
+ */
+ protected static final int HEIGHT_EDEFAULT = -2;
+
+ /**
+ * The cached value of the '{@link #getHeight() <em>Height</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHeight()
+ * @generated
+ * @ordered
+ */
+ protected int height = NodeFormatDataImpl.HEIGHT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getChildren() <em>Children</em>}'
+ * containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getChildren()
+ * @generated
+ * @ordered
+ */
+ protected EList<NodeFormatData> children;
+
+ /**
+ * The cached value of the '{@link #getOutgoingEdges()
+ * <em>Outgoing Edges</em>}' containment reference list. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getOutgoingEdges()
+ * @generated
+ * @ordered
+ */
+ protected EList<EdgeFormatData> outgoingEdges;
+
+ /**
+ * The cached value of the '{@link #getLocation() <em>Location</em>}'
+ * containment reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getLocation()
+ * @generated
+ * @ordered
+ */
+ protected Point location;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected NodeFormatDataImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FormatdataPackage.Literals.NODE_FORMAT_DATA;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getWidth() {
+ return width;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setWidth(int newWidth) {
+ int oldWidth = width;
+ width = newWidth;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.NODE_FORMAT_DATA__WIDTH, oldWidth, width));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getHeight() {
+ return height;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setHeight(int newHeight) {
+ int oldHeight = height;
+ height = newHeight;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.NODE_FORMAT_DATA__HEIGHT, oldHeight, height));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<NodeFormatData> getChildren() {
+ if (children == null) {
+ children = new EObjectContainmentEList.Resolving<NodeFormatData>(NodeFormatData.class, this, FormatdataPackage.NODE_FORMAT_DATA__CHILDREN);
+ }
+ return children;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<EdgeFormatData> getOutgoingEdges() {
+ if (outgoingEdges == null) {
+ outgoingEdges = new EObjectContainmentEList.Resolving<EdgeFormatData>(EdgeFormatData.class, this, FormatdataPackage.NODE_FORMAT_DATA__OUTGOING_EDGES);
+ }
+ return outgoingEdges;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Point getLocation() {
+ if (location != null && location.eIsProxy()) {
+ InternalEObject oldLocation = (InternalEObject) location;
+ location = (Point) eResolveProxy(oldLocation);
+ if (location != oldLocation) {
+ InternalEObject newLocation = (InternalEObject) location;
+ NotificationChain msgs = oldLocation.eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.NODE_FORMAT_DATA__LOCATION, null, null);
+ if (newLocation.eInternalContainer() == null) {
+ msgs = newLocation.eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.NODE_FORMAT_DATA__LOCATION, null, msgs);
+ }
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FormatdataPackage.NODE_FORMAT_DATA__LOCATION, oldLocation, location));
+ }
+ }
+ }
+ return location;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Point basicGetLocation() {
+ return location;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetLocation(Point newLocation, NotificationChain msgs) {
+ Point oldLocation = location;
+ location = newLocation;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FormatdataPackage.NODE_FORMAT_DATA__LOCATION, oldLocation, newLocation);
+ if (msgs == null) {
+ msgs = notification;
+ } else {
+ msgs.add(notification);
+ }
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setLocation(Point newLocation) {
+ if (newLocation != location) {
+ NotificationChain msgs = null;
+ if (location != null) {
+ msgs = ((InternalEObject) location).eInverseRemove(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.NODE_FORMAT_DATA__LOCATION, null, msgs);
+ }
+ if (newLocation != null) {
+ msgs = ((InternalEObject) newLocation).eInverseAdd(this, InternalEObject.EOPPOSITE_FEATURE_BASE - FormatdataPackage.NODE_FORMAT_DATA__LOCATION, null, msgs);
+ }
+ msgs = basicSetLocation(newLocation, msgs);
+ if (msgs != null) {
+ msgs.dispatch();
+ }
+ } else if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.NODE_FORMAT_DATA__LOCATION, newLocation, newLocation));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case FormatdataPackage.NODE_FORMAT_DATA__CHILDREN:
+ return ((InternalEList<?>) getChildren()).basicRemove(otherEnd, msgs);
+ case FormatdataPackage.NODE_FORMAT_DATA__OUTGOING_EDGES:
+ return ((InternalEList<?>) getOutgoingEdges()).basicRemove(otherEnd, msgs);
+ case FormatdataPackage.NODE_FORMAT_DATA__LOCATION:
+ return basicSetLocation(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FormatdataPackage.NODE_FORMAT_DATA__WIDTH:
+ return getWidth();
+ case FormatdataPackage.NODE_FORMAT_DATA__HEIGHT:
+ return getHeight();
+ case FormatdataPackage.NODE_FORMAT_DATA__CHILDREN:
+ return getChildren();
+ case FormatdataPackage.NODE_FORMAT_DATA__OUTGOING_EDGES:
+ return getOutgoingEdges();
+ case FormatdataPackage.NODE_FORMAT_DATA__LOCATION:
+ if (resolve) {
+ return getLocation();
+ }
+ return basicGetLocation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FormatdataPackage.NODE_FORMAT_DATA__WIDTH:
+ setWidth((Integer) newValue);
+ return;
+ case FormatdataPackage.NODE_FORMAT_DATA__HEIGHT:
+ setHeight((Integer) newValue);
+ return;
+ case FormatdataPackage.NODE_FORMAT_DATA__CHILDREN:
+ getChildren().clear();
+ getChildren().addAll((Collection<? extends NodeFormatData>) newValue);
+ return;
+ case FormatdataPackage.NODE_FORMAT_DATA__OUTGOING_EDGES:
+ getOutgoingEdges().clear();
+ getOutgoingEdges().addAll((Collection<? extends EdgeFormatData>) newValue);
+ return;
+ case FormatdataPackage.NODE_FORMAT_DATA__LOCATION:
+ setLocation((Point) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FormatdataPackage.NODE_FORMAT_DATA__WIDTH:
+ setWidth(NodeFormatDataImpl.WIDTH_EDEFAULT);
+ return;
+ case FormatdataPackage.NODE_FORMAT_DATA__HEIGHT:
+ setHeight(NodeFormatDataImpl.HEIGHT_EDEFAULT);
+ return;
+ case FormatdataPackage.NODE_FORMAT_DATA__CHILDREN:
+ getChildren().clear();
+ return;
+ case FormatdataPackage.NODE_FORMAT_DATA__OUTGOING_EDGES:
+ getOutgoingEdges().clear();
+ return;
+ case FormatdataPackage.NODE_FORMAT_DATA__LOCATION:
+ setLocation((Point) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FormatdataPackage.NODE_FORMAT_DATA__WIDTH:
+ return width != NodeFormatDataImpl.WIDTH_EDEFAULT;
+ case FormatdataPackage.NODE_FORMAT_DATA__HEIGHT:
+ return height != NodeFormatDataImpl.HEIGHT_EDEFAULT;
+ case FormatdataPackage.NODE_FORMAT_DATA__CHILDREN:
+ return children != null && !children.isEmpty();
+ case FormatdataPackage.NODE_FORMAT_DATA__OUTGOING_EDGES:
+ return outgoingEdges != null && !outgoingEdges.isEmpty();
+ case FormatdataPackage.NODE_FORMAT_DATA__LOCATION:
+ return location != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @not-generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ if (location != null) {
+ result.append(" (x: "); //$NON-NLS-1$
+ result.append(location.getX());
+ result.append(", y: "); //$NON-NLS-1$
+ result.append(location.getY());
+ result.append(") "); //$NON-NLS-1$
+ }
+
+ result.append(" (width: "); //$NON-NLS-1$
+ result.append(width);
+ result.append(", height: "); //$NON-NLS-1$
+ result.append(height);
+ result.append(')');
+ return result.toString();
+ }
+
+} // NodeFormatDataImpl
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/PointImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/PointImpl.java
new file mode 100644
index 0000000000..90fcdea13e
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/impl/PointImpl.java
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.sirius.diagram.formatdata.FormatdataPackage;
+import org.eclipse.sirius.diagram.formatdata.Point;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Point</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.impl.PointImpl#getX
+ * <em>X</em>}</li>
+ * <li>{@link org.eclipse.sirius.diagram.formatdata.impl.PointImpl#getY
+ * <em>Y</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PointImpl extends EObjectImpl implements Point {
+ /**
+ * The default value of the '{@link #getX() <em>X</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getX()
+ * @generated
+ * @ordered
+ */
+ protected static final int X_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getX() <em>X</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getX()
+ * @generated
+ * @ordered
+ */
+ protected int x = PointImpl.X_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getY() <em>Y</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getY()
+ * @generated
+ * @ordered
+ */
+ protected static final int Y_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getY() <em>Y</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getY()
+ * @generated
+ * @ordered
+ */
+ protected int y = PointImpl.Y_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected PointImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FormatdataPackage.Literals.POINT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getX() {
+ return x;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setX(int newX) {
+ int oldX = x;
+ x = newX;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.POINT__X, oldX, x));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public int getY() {
+ return y;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setY(int newY) {
+ int oldY = y;
+ y = newY;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, FormatdataPackage.POINT__Y, oldY, y));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FormatdataPackage.POINT__X:
+ return getX();
+ case FormatdataPackage.POINT__Y:
+ return getY();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FormatdataPackage.POINT__X:
+ setX((Integer) newValue);
+ return;
+ case FormatdataPackage.POINT__Y:
+ setY((Integer) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FormatdataPackage.POINT__X:
+ setX(PointImpl.X_EDEFAULT);
+ return;
+ case FormatdataPackage.POINT__Y:
+ setY(PointImpl.Y_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FormatdataPackage.POINT__X:
+ return x != PointImpl.X_EDEFAULT;
+ case FormatdataPackage.POINT__Y:
+ return y != PointImpl.Y_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (x: "); //$NON-NLS-1$
+ result.append(x);
+ result.append(", y: "); //$NON-NLS-1$
+ result.append(y);
+ result.append(')');
+ return result.toString();
+ }
+
+} // PointImpl
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/util/FormatdataAdapterFactory.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/util/FormatdataAdapterFactory.java
new file mode 100644
index 0000000000..a5e9cdac0d
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/util/FormatdataAdapterFactory.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.sirius.diagram.formatdata.AbstractFormatData;
+import org.eclipse.sirius.diagram.formatdata.EdgeFormatData;
+import org.eclipse.sirius.diagram.formatdata.FormatdataPackage;
+import org.eclipse.sirius.diagram.formatdata.NodeFormatData;
+import org.eclipse.sirius.diagram.formatdata.Point;
+
+/**
+ * <!-- begin-user-doc --> The <b>Adapter Factory</b> for the model. It provides
+ * an adapter <code>createXXX</code> method for each class of the model. <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage
+ * @generated
+ */
+public class FormatdataAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static FormatdataPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public FormatdataAdapterFactory() {
+ if (FormatdataAdapterFactory.modelPackage == null) {
+ FormatdataAdapterFactory.modelPackage = FormatdataPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc --> This implementation returns <code>true</code> if
+ * the object is either the model's package or is an instance object of the
+ * model. <!-- end-user-doc -->
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == FormatdataAdapterFactory.modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == FormatdataAdapterFactory.modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected FormatdataSwitch<Adapter> modelSwitch = new FormatdataSwitch<Adapter>() {
+ @Override
+ public Adapter caseAbstractFormatData(AbstractFormatData object) {
+ return createAbstractFormatDataAdapter();
+ }
+
+ @Override
+ public Adapter caseNodeFormatData(NodeFormatData object) {
+ return createNodeFormatDataAdapter();
+ }
+
+ @Override
+ public Adapter caseEdgeFormatData(EdgeFormatData object) {
+ return createEdgeFormatDataAdapter();
+ }
+
+ @Override
+ public Adapter casePoint(Point object) {
+ return createPointAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param target
+ * the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject) target);
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.sirius.diagram.formatdata.AbstractFormatData
+ * <em>Abstract Format Data</em>}'. <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.sirius.diagram.formatdata.AbstractFormatData
+ * @generated
+ */
+ public Adapter createAbstractFormatDataAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.sirius.diagram.formatdata.NodeFormatData
+ * <em>Node Format Data</em>}'. <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.sirius.diagram.formatdata.NodeFormatData
+ * @generated
+ */
+ public Adapter createNodeFormatDataAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.sirius.diagram.formatdata.EdgeFormatData
+ * <em>Edge Format Data</em>}'. <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.sirius.diagram.formatdata.EdgeFormatData
+ * @generated
+ */
+ public Adapter createEdgeFormatDataAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.sirius.diagram.formatdata.Point <em>Point</em>}'. <!--
+ * begin-user-doc --> This default implementation returns null so that we
+ * can easily ignore cases; it's useful to ignore a case when inheritance
+ * will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.sirius.diagram.formatdata.Point
+ * @generated
+ */
+ public Adapter createPointAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case. <!-- begin-user-doc --> This
+ * default implementation returns null. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // FormatdataAdapterFactory
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/util/FormatdataSwitch.java b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/util/FormatdataSwitch.java
new file mode 100644
index 0000000000..c5a88e7ff0
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src-gen/org/eclipse/sirius/diagram/formatdata/util/FormatdataSwitch.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.sirius.diagram.formatdata.AbstractFormatData;
+import org.eclipse.sirius.diagram.formatdata.EdgeFormatData;
+import org.eclipse.sirius.diagram.formatdata.FormatdataPackage;
+import org.eclipse.sirius.diagram.formatdata.NodeFormatData;
+import org.eclipse.sirius.diagram.formatdata.Point;
+
+/**
+ * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance
+ * hierarchy. It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object and proceeding up the
+ * inheritance hierarchy until a non-null result is returned, which is the
+ * result of the switch. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.sirius.diagram.formatdata.FormatdataPackage
+ * @generated
+ */
+public class FormatdataSwitch<T> {
+ /**
+ * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static FormatdataPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public FormatdataSwitch() {
+ if (FormatdataSwitch.modelPackage == null) {
+ FormatdataSwitch.modelPackage = FormatdataPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns
+ * a non null result; it yields that result. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code>
+ * call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns
+ * a non null result; it yields that result. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code>
+ * call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == FormatdataSwitch.modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ } else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns
+ * a non null result; it yields that result. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code>
+ * call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case FormatdataPackage.ABSTRACT_FORMAT_DATA: {
+ AbstractFormatData abstractFormatData = (AbstractFormatData) theEObject;
+ T result = caseAbstractFormatData(abstractFormatData);
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case FormatdataPackage.NODE_FORMAT_DATA: {
+ NodeFormatData nodeFormatData = (NodeFormatData) theEObject;
+ T result = caseNodeFormatData(nodeFormatData);
+ if (result == null) {
+ result = caseAbstractFormatData(nodeFormatData);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case FormatdataPackage.EDGE_FORMAT_DATA: {
+ EdgeFormatData edgeFormatData = (EdgeFormatData) theEObject;
+ T result = caseEdgeFormatData(edgeFormatData);
+ if (result == null) {
+ result = caseAbstractFormatData(edgeFormatData);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case FormatdataPackage.POINT: {
+ Point point = (Point) theEObject;
+ T result = casePoint(point);
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Abstract Format Data</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Abstract Format Data</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractFormatData(AbstractFormatData object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Node Format Data</em>'. <!-- begin-user-doc --> This implementation
+ * returns null; returning a non-null result will terminate the switch. <!--
+ * end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Node Format Data</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNodeFormatData(NodeFormatData object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Edge Format Data</em>'. <!-- begin-user-doc --> This implementation
+ * returns null; returning a non-null result will terminate the switch. <!--
+ * end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Edge Format Data</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEdgeFormatData(EdgeFormatData object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Point</em>'. <!-- begin-user-doc --> This implementation returns
+ * null; returning a non-null result will terminate the switch. <!--
+ * end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Point</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePoint(Point object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>EObject</em>'. <!-- begin-user-doc --> This implementation returns
+ * null; returning a non-null result will terminate the switch, but this is
+ * the last case anyway. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // FormatdataSwitch
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/FormatDataPlugin.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/FormatDataPlugin.java
new file mode 100644
index 0000000000..53ca90e8bc
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/FormatDataPlugin.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * Plug-in class for <em>org.eclipse.sirius.diagram.formatdata</em>.
+ *
+ * @author pcdavid
+ */
+public class FormatDataPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ */
+ public static final FormatDataPlugin INSTANCE = new FormatDataPlugin();
+
+ /**
+ * Keep track of the singleton.
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ */
+ public FormatDataPlugin() {
+ super(new ResourceLocator[0]);
+ }
+
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ *
+ * @return the singleton instance.
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ */
+ public Implementation() {
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/Messages.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/Messages.java
new file mode 100644
index 0000000000..b81d57f7ab
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/Messages.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools;
+
+import org.eclipse.sirius.diagram.formatdata.FormatDataPlugin;
+import org.eclipse.sirius.ext.base.I18N;
+import org.eclipse.sirius.ext.base.I18N.TranslatableMessage;
+
+/**
+ * Helper class to obtains translated strings.
+ *
+ * @author <a href="mailto:laurent.fasani@obeo.fr">Laurent Fasani</a>
+ */
+public final class Messages {
+
+ static {
+ I18N.initializeMessages(Messages.class, FormatDataPlugin.INSTANCE);
+ }
+
+ // CHECKSTYLE:OFF
+
+ @TranslatableMessage
+ public static String EdgeConfigurationImpl_toString;
+
+ @TranslatableMessage
+ public static String ConfigurationImpl_toString;
+
+ @TranslatableMessage
+ public static String FormatHelperImpl_formatDifferenceMessage;
+
+ @TranslatableMessage
+ public static String NodeConfigurationImpl_distanceAroundPoint;
+
+ // CHECKSTYLE:ON
+
+ private Messages() {
+ // Prevents instanciation.
+ }
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/FormatHelper.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/FormatHelper.java
new file mode 100644
index 0000000000..e502f21729
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/FormatHelper.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools.api.util;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.sirius.diagram.formatdata.EdgeFormatData;
+import org.eclipse.sirius.diagram.formatdata.NodeFormatData;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.Configuration;
+import org.eclipse.sirius.diagram.formatdata.tools.internal.util.FormatHelperImpl;
+
+/**
+ * Helper to manage the format data.
+ *
+ * @author <a href="mailto:laurent.redor@obeo.fr">Laurent Redor</a>
+ *
+ */
+public interface FormatHelper {
+
+ public interface FormatDifference<T> {
+
+ /**
+ * Get left element of difference.
+ *
+ * @return Left element of difference.
+ */
+ T getLeftElement();
+
+ /**
+ * Get right element of difference.
+ *
+ * @return Right element of difference.
+ */
+ T getRightElement();
+
+ /**
+ * Message of difference.
+ *
+ * @return Message of difference.
+ */
+ String getMessage();
+ }
+
+ /**
+ * Singleton.
+ */
+ FormatHelper INSTANCE = new FormatHelperImpl();
+
+ /**
+ * Check if two node formats have the same layout.
+ *
+ * @param nodeFormat1
+ * The first nodeFormat to check
+ * @param nodeFormat2
+ * The second nodeFormat to check
+ * @param configuration
+ * Configuration for this search.
+ * @return true if the two node formats have same layout, false otherwise.
+ */
+ boolean haveSameLayout(NodeFormatData nodeFormat1, NodeFormatData nodeFormat2, Configuration configuration);
+
+ /**
+ * Compute the first difference between two collections of node formats.
+ * <p>
+ * Elements <strong>must be</strong> in the same order.
+ * </p>
+ *
+ * @param col1
+ * The first collection of nodeFormat to check
+ * @param col2
+ * The second collection nodeFormat to check
+ * @param configuration
+ * Configuration for this search.
+ * @return First difference found. <code>null</code> if no difference is
+ * found.
+ */
+ FormatDifference<?> computeFirstFormatDifference(Collection<? extends EObject> col1, Collection<? extends EObject> col2, Configuration configuration);
+
+ /**
+ * Check if two collections of node formats have the same layout.
+ * <p>
+ * Elements <strong>must be</strong> in the same order.
+ * </p>
+ *
+ * @param col1
+ * The first collection of nodeFormat to check
+ * @param col2
+ * The second collection nodeFormat to check
+ * @param configuration
+ * Configuration for this search.
+ * @return true if the two collections EObjects contains node formats and
+ * have same layout, false otherwise.
+ */
+ boolean haveSameLayout(Collection<? extends EObject> col1, Collection<? extends EObject> col2, Configuration configuration);
+
+ /**
+ * Check if two edge formats have the same layout.
+ *
+ * @param edgeFormat1
+ * The first edgeFormat to check
+ * @param edgeFormat2
+ * The second edgeFormat to check
+ * @param configuration
+ * Configuration for this search.
+ * @return true if the two edge formats have same layout, false otherwise.
+ */
+ boolean haveSameLayout(EdgeFormatData edgeFormat1, EdgeFormatData edgeFormat2, Configuration configuration);
+
+ /**
+ * Check if two collections of edge formats have the same layout.
+ * <p>
+ * Elements <strong>must be</strong> in the same order.
+ * </p>
+ *
+ * @param col1
+ * The first collection of edge layout to check
+ * @param col2
+ * The second collection of edge layout to check
+ * @param configuration
+ * Configuration for this search.
+ * @return true if the two collections of edge formats have same layout,
+ * false otherwise.
+ */
+ // boolean haveSameLayout(Collection<EdgeFormatData> col1,
+ // Collection<EdgeFormatData> col2, Configuration configuration);
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/Configuration.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/Configuration.java
new file mode 100644
index 0000000000..f4f2aba165
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/Configuration.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration;
+
+/**
+ * Configuration to use with
+ * {@link org.eclipse.sirius.diagram.formatdata.tools.api.util.FormatHelper}
+ * methods.
+ *
+ * @author dlecan
+ */
+public interface Configuration {
+
+ /**
+ * Get {@link NodeConfiguration}.
+ *
+ * @return {@link NodeConfiguration}.
+ */
+ NodeConfiguration getNodeConfiguration();
+
+ /**
+ * Get {@link EdgeConfiguration}.
+ *
+ * @return {@link EdgeConfiguration}.
+ */
+ EdgeConfiguration getEdgeConfiguration();
+
+ /**
+ * Set if search must be recursive.
+ * <p>
+ * This value is <code>true</code> by default.
+ * </p>
+ * <p>
+ * The node children and the outgoing edges will be compared if search has
+ * to be recusrsive.
+ * </p>
+ *
+ * @param recursively
+ * Set this to <code>true</code> if search must recursive,
+ * <code>false</code> otherwise.
+ */
+ void setRecursively(boolean recursively);
+
+ /**
+ * Returns the recursively.
+ *
+ * @return The recursively.
+ */
+ boolean isRecursive();
+
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/ConfigurationFactory.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/ConfigurationFactory.java
new file mode 100644
index 0000000000..c7c4d3f861
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/ConfigurationFactory.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration;
+
+import org.eclipse.sirius.diagram.formatdata.tools.internal.util.configuration.ConfigurationImpl;
+
+/**
+ * Factory of {@link Configuration}.
+ *
+ * @author dlecan
+ */
+public final class ConfigurationFactory {
+
+ private ConfigurationFactory() {
+ // Nothing
+ }
+
+ /**
+ * Build a {@link Configuration}.
+ *
+ * @return New configuration.
+ */
+ public static Configuration buildConfiguration() {
+ return new ConfigurationImpl();
+ }
+
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/EdgeConfiguration.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/EdgeConfiguration.java
new file mode 100644
index 0000000000..6e145fee2f
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/EdgeConfiguration.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration;
+
+/**
+ * Configuration for edges.
+ *
+ * @author dlecan
+ */
+public interface EdgeConfiguration {
+
+ /**
+ * Set the distance to use to compute edge bendpoints list format.
+ *
+ * @param distance
+ * Number such as distance (with
+ * {@link org.eclipse.draw2d.geometry.Point#getDistance(org.eclipse.draw2d.geometry.Point)}
+ * ) between original point and new point will be less or equal
+ * than the provided distance.
+ */
+ void setDistanceAroundPointsOfEdgeBendpointsList(double distance);
+
+ /**
+ * Returns the distance.
+ *
+ * @return The distance.
+ */
+ double getDistanceAroundPointsOfEdgeBendpointsList();
+
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/NodeConfiguration.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/NodeConfiguration.java
new file mode 100644
index 0000000000..0a262d4d15
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/api/util/configuration/NodeConfiguration.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration;
+
+/**
+ * Configuration for nodes.
+ *
+ * @author dlecan
+ */
+public interface NodeConfiguration {
+
+ /**
+ * Returns the distanceAroundPoint.
+ *
+ * @return The distanceAroundPoint.
+ */
+ double getDistanceAroundPoint();
+
+ /**
+ * Sets the value of distanceAroundPoint to distanceAroundPoint.
+ *
+ * @param distanceAroundPoint
+ * The distanceAroundPoint to set.
+ */
+ void setDistanceAroundPoint(double distanceAroundPoint);
+
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/FormatHelperImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/FormatHelperImpl.java
new file mode 100644
index 0000000000..1d421d67d3
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/FormatHelperImpl.java
@@ -0,0 +1,336 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools.internal.util;
+
+import java.text.MessageFormat;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.sirius.common.tools.api.util.StringUtil;
+import org.eclipse.sirius.diagram.formatdata.AbstractFormatData;
+import org.eclipse.sirius.diagram.formatdata.EdgeFormatData;
+import org.eclipse.sirius.diagram.formatdata.NodeFormatData;
+import org.eclipse.sirius.diagram.formatdata.Point;
+import org.eclipse.sirius.diagram.formatdata.tools.Messages;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.FormatHelper;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.Configuration;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.EdgeConfiguration;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.NodeConfiguration;
+
+/**
+ * Helper to manage the format data.
+ *
+ * @author <a href="mailto:laurent.redor@obeo.fr">Laurent Redor</a>
+ */
+public class FormatHelperImpl implements FormatHelper {
+
+ /**
+ * Basic implementation.
+ *
+ * @author dlecan
+ */
+ private static final class FormatDifferenceImpl<T> implements FormatDifference<T> {
+
+ private final T leftElement;
+
+ private final T rightElement;
+
+ private final Configuration configuration;
+
+ private FormatDifferenceImpl(final T leftElement, final T rightElement, Configuration configuration) {
+ this.leftElement = leftElement;
+ this.rightElement = rightElement;
+ this.configuration = configuration;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getMessage() {
+ return MessageFormat.format(Messages.FormatHelperImpl_formatDifferenceMessage, configuration, elementToString(leftElement), elementToString(rightElement));
+ }
+
+ private String elementToString(T element) {
+ String elementToString;
+ if (leftElement instanceof EObject) {
+ elementToString = FormatHelperImpl.toString((EObject) element);
+ } else {
+ elementToString = element.toString();
+ }
+ return elementToString;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public T getLeftElement() {
+ return leftElement;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public T getRightElement() {
+ return rightElement;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ return getMessage();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean haveSameLayout(final NodeFormatData nodeFormat1, final NodeFormatData nodeFormat2, final Configuration configuration) {
+ return doHaveSameLayout(nodeFormat1, nodeFormat2, configuration) == null;
+ }
+
+ private <T extends AbstractFormatData> FormatDifference<T> doAbstractFormatDataHaveSameLayout(final T abstractFormat1, final T abstractFormat2, final Configuration configuration) {
+ FormatDifference<T> result = null;
+ boolean haveSameLayout = false;
+
+ if (abstractFormat1 == abstractFormat2) {
+ haveSameLayout = true;
+ } else if (abstractFormat1 != null && abstractFormat2 != null) {
+ haveSameLayout = abstractFormat1.getId() != null;
+ haveSameLayout = haveSameLayout && abstractFormat1.getId().equals(abstractFormat2.getId());
+ haveSameLayout = haveSameLayout && haveSameLayout(abstractFormat1.getLabel(), abstractFormat2.getLabel(), configuration);
+ }
+ if (!haveSameLayout && result == null) {
+ result = new FormatDifferenceImpl<T>(abstractFormat1, abstractFormat2, configuration);
+ }
+ return result;
+ }
+
+ private FormatDifference<? extends AbstractFormatData> doHaveSameLayout(final NodeFormatData nodeFormat1, final NodeFormatData nodeFormat2, final Configuration configuration) {
+ FormatDifference<? extends AbstractFormatData> result = null;
+ boolean haveSameLayout = false;
+
+ FormatDifference<NodeFormatData> abstractDataHaveSameLayout = doAbstractFormatDataHaveSameLayout(nodeFormat1, nodeFormat2, configuration);
+
+ haveSameLayout = abstractDataHaveSameLayout == null;
+
+ // If they have the same basic format,
+ // - either the 2 nodes are both not null
+ // => check inner data
+ // - or both null
+ // => nothing to check, same format
+ if (haveSameLayout && nodeFormat1 != null && nodeFormat2 != null) {
+
+ NodeConfiguration nodeConfiguration = configuration.getNodeConfiguration();
+
+ haveSameLayout = haveSameLayout && isAroundPoint(nodeFormat1.getLocation(), nodeFormat2.getLocation(), nodeConfiguration.getDistanceAroundPoint());
+ haveSameLayout = haveSameLayout && nodeFormat1.getWidth() == nodeFormat2.getWidth();
+ haveSameLayout = haveSameLayout && nodeFormat1.getHeight() == nodeFormat2.getHeight();
+
+ if (haveSameLayout && configuration.isRecursive()) {
+
+ haveSameLayout = nodeFormat1.getChildren().size() == nodeFormat2.getChildren().size();
+ haveSameLayout = haveSameLayout && nodeFormat1.getOutgoingEdges().size() == nodeFormat2.getOutgoingEdges().size();
+
+ if (haveSameLayout) {
+ for (int i = 0; i < nodeFormat1.getChildren().size() && haveSameLayout; i++) {
+ result = doHaveSameLayout(nodeFormat1.getChildren().get(i), nodeFormat2.getChildren().get(i), configuration);
+ haveSameLayout = result == null;
+ }
+ for (int i = 0; i < nodeFormat1.getOutgoingEdges().size() && haveSameLayout; i++) {
+ result = doHaveSameLayout(nodeFormat1.getOutgoingEdges().get(i), nodeFormat2.getOutgoingEdges().get(i), configuration);
+ haveSameLayout = result == null;
+ }
+ }
+ }
+ if (!haveSameLayout && result == null) {
+ result = new FormatDifferenceImpl<NodeFormatData>(nodeFormat1, nodeFormat2, configuration);
+ }
+ } else {
+ result = abstractDataHaveSameLayout;
+ }
+
+ return result;
+ }
+
+ /**
+ * Check if real point is around expected point.
+ * <p>
+ * Distance between the 2 points must be less or equal than provided
+ * distance.
+ * </p>
+ *
+ * @param location
+ * The expected location
+ * @param realLocation
+ * The real location
+ * @param maxDistance
+ * the error margin in x and y coordinates.
+ * @return true is the real location is near the expected location, false
+ * otherwise
+ */
+ private boolean isAroundPoint(Point expectedLocation, Point realLocation, double maxDistance) {
+ long dx = realLocation.getX() - expectedLocation.getX();
+ long dy = realLocation.getY() - expectedLocation.getY();
+ long distance2 = dx * dx + dy * dy;
+ return distance2 <= (maxDistance * maxDistance);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public FormatDifference<?> computeFirstFormatDifference(final Collection<? extends EObject> col1, final Collection<? extends EObject> col2, final Configuration configuration) {
+
+ FormatDifference<?> result = null;
+
+ boolean haveSameLayout = false;
+
+ if (col1 == col2) {
+ haveSameLayout = true;
+ } else {
+ haveSameLayout = col1 != null && col2 != null && col1.size() == col2.size();
+ if (haveSameLayout) {
+ final Iterator<? extends EObject> it1 = col1.iterator();
+ final Iterator<? extends EObject> it2 = col2.iterator();
+
+ while (haveSameLayout && it1.hasNext() && it2.hasNext()) {
+ final EObject formatData1 = it1.next();
+ final EObject formatData2 = it2.next();
+
+ if (formatData1 instanceof NodeFormatData && formatData2 instanceof NodeFormatData) {
+ result = doHaveSameLayout((NodeFormatData) formatData1, (NodeFormatData) formatData2, configuration);
+ } else if (formatData1 instanceof EdgeFormatData && formatData2 instanceof EdgeFormatData) {
+ result = doHaveSameLayout((EdgeFormatData) formatData1, (EdgeFormatData) formatData2, configuration);
+ }
+ haveSameLayout = result == null;
+ }
+ }
+ }
+
+ if (!haveSameLayout && result == null) {
+ result = new FormatDifferenceImpl<Collection<? extends EObject>>(col1, col2, configuration);
+ }
+
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean haveSameLayout(final Collection<? extends EObject> col1, final Collection<? extends EObject> col2, final Configuration configuration) {
+ return computeFirstFormatDifference(col1, col2, configuration) == null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean haveSameLayout(final EdgeFormatData edgeFormat1, final EdgeFormatData edgeFormat2, Configuration configuration) {
+ return doHaveSameLayout(edgeFormat1, edgeFormat2, configuration) == null;
+ }
+
+ private FormatDifference<EdgeFormatData> doHaveSameLayout(final EdgeFormatData edgeFormat1, final EdgeFormatData edgeFormat2, Configuration configuration) {
+ FormatDifference<EdgeFormatData> result = null;
+ boolean haveSameLayout = false;
+
+ FormatDifference<EdgeFormatData> abstractDataHaveSameLayout = doAbstractFormatDataHaveSameLayout(edgeFormat1, edgeFormat2, configuration);
+
+ haveSameLayout = abstractDataHaveSameLayout == null;
+
+ // If they have the same basic format,
+ // - either the 2 nodes are both not null
+ // => check inner data
+ // - or both null
+ // => nothing to check, same format
+ if (haveSameLayout && edgeFormat1 != null && edgeFormat2 != null) {
+
+ EdgeConfiguration edgeConfiguration = configuration.getEdgeConfiguration();
+
+ haveSameLayout = haveSameLayout && StringUtil.equals(edgeFormat1.getSourceTerminal(), edgeFormat2.getSourceTerminal());
+ haveSameLayout = haveSameLayout && StringUtil.equals(edgeFormat1.getTargetTerminal(), edgeFormat2.getTargetTerminal());
+
+ haveSameLayout = haveSameLayout && edgeFormat1.getRouting() == edgeFormat2.getRouting();
+ haveSameLayout = haveSameLayout && isAroundPoint(edgeFormat1.getSourceRefPoint(), edgeFormat2.getSourceRefPoint(), edgeConfiguration.getDistanceAroundPointsOfEdgeBendpointsList());
+
+ haveSameLayout = haveSameLayout && edgeFormat1.getPointList().size() == edgeFormat2.getPointList().size();
+
+ if (haveSameLayout) {
+ for (int i = 0; i < edgeFormat1.getPointList().size() && haveSameLayout; i++) {
+ haveSameLayout = isAroundPoint(edgeFormat1.getPointList().get(i), edgeFormat2.getPointList().get(i), edgeConfiguration.getDistanceAroundPointsOfEdgeBendpointsList());
+ }
+ }
+
+ if (!haveSameLayout) {
+ result = new FormatDifferenceImpl<EdgeFormatData>(edgeFormat1, edgeFormat2, configuration);
+ }
+ } else {
+ result = abstractDataHaveSameLayout;
+ }
+
+ return result;
+ }
+
+ private static String toString(EObject eobject) {
+ return FormatHelperImpl.toString("\n", eobject); //$NON-NLS-1$
+ }
+
+ private static String toString(String prefix, EObject eobject) {
+ StringBuilder sb = new StringBuilder();
+ EClass eClass = eobject.eClass();
+ int i;
+ int size = eClass.getFeatureCount();
+ for (i = 0; i < size; ++i) {
+ // Ignore derived features.
+ //
+ EStructuralFeature feature = eClass.getEStructuralFeature(i);
+ if (!feature.isDerived()) {
+ sb.append(prefix);
+ sb.append(feature.getName());
+ sb.append(" : "); //$NON-NLS-1$
+ Object obj = eobject.eGet(feature);
+ if (obj == null) {
+ sb.append("null"); //$NON-NLS-1$
+ } else if (obj instanceof EObject) {
+ sb.append(FormatHelperImpl.toString("\n ", (EObject) obj)); //$NON-NLS-1$
+ } else if (obj instanceof List<?>) {
+ List<?> list = (List<?>) obj;
+ if (!list.isEmpty()) {
+ sb.append('\n');
+ sb.append(" "); //$NON-NLS-1$
+ }
+ for (Object object : list) {
+ sb.append('\n');
+ sb.append(" "); //$NON-NLS-1$
+ if (object instanceof EObject) {
+ sb.append(FormatHelperImpl.toString((EObject) object));
+ } else {
+ sb.append(object.toString());
+ }
+ }
+ } else {
+ sb.append(obj.toString());
+ }
+ }
+ }
+ return sb.toString();
+ }
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/ConfigurationImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/ConfigurationImpl.java
new file mode 100644
index 0000000000..6b6e586a41
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/ConfigurationImpl.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools.internal.util.configuration;
+
+import java.text.MessageFormat;
+
+import org.eclipse.sirius.diagram.formatdata.tools.Messages;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.Configuration;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.EdgeConfiguration;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.NodeConfiguration;
+
+/**
+ * Implementation of {@link Configuration}.
+ *
+ * @author dlecan
+ */
+public class ConfigurationImpl implements Configuration {
+
+ private static final boolean DEFAULT_RECURSIVELY = true;
+
+ private NodeConfiguration nodeConfiguration;
+
+ private EdgeConfiguration edgeConfiguration;
+
+ private boolean recursively = DEFAULT_RECURSIVELY;
+
+ /**
+ * Constructor.
+ */
+ public ConfigurationImpl() {
+ this.nodeConfiguration = new NodeConfigurationImpl();
+ this.edgeConfiguration = new EdgeConfigurationImpl();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public EdgeConfiguration getEdgeConfiguration() {
+ return edgeConfiguration;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public NodeConfiguration getNodeConfiguration() {
+ return nodeConfiguration;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void setRecursively(boolean recursively) {
+ this.recursively = recursively;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public final boolean isRecursive() {
+ return recursively;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ return MessageFormat.format(Messages.ConfigurationImpl_toString, nodeConfiguration, edgeConfiguration);
+ }
+
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/EdgeConfigurationImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/EdgeConfigurationImpl.java
new file mode 100644
index 0000000000..e5441d2a16
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/EdgeConfigurationImpl.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools.internal.util.configuration;
+
+import java.text.MessageFormat;
+
+import org.eclipse.sirius.diagram.formatdata.tools.Messages;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.EdgeConfiguration;
+
+/**
+ * Implementation of
+ * {@link org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.EdgeConfiguration}
+ * .
+ *
+ * @author dlecan
+ */
+public class EdgeConfigurationImpl implements EdgeConfiguration {
+
+ private static final double DEFAULT_DISTANCE_AROUND = 0;
+
+ private double distance = DEFAULT_DISTANCE_AROUND;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void setDistanceAroundPointsOfEdgeBendpointsList(double pDistance) {
+ this.distance = pDistance;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public final double getDistanceAroundPointsOfEdgeBendpointsList() {
+ return distance;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ return MessageFormat.format(Messages.EdgeConfigurationImpl_toString, getDistanceAroundPointsOfEdgeBendpointsList());
+ }
+
+}
diff --git a/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/NodeConfigurationImpl.java b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/NodeConfigurationImpl.java
new file mode 100644
index 0000000000..fa1b3a57ec
--- /dev/null
+++ b/plugins/org.eclipse.sirius.diagram.formatdata/src/org/eclipse/sirius/diagram/formatdata/tools/internal/util/configuration/NodeConfigurationImpl.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2016 THALES GLOBAL SERVICES.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.diagram.formatdata.tools.internal.util.configuration;
+
+import java.text.MessageFormat;
+
+import org.eclipse.sirius.diagram.formatdata.tools.Messages;
+import org.eclipse.sirius.diagram.formatdata.tools.api.util.configuration.NodeConfiguration;
+
+/**
+ * Implementation of {@link NodeConfiguration}.
+ *
+ * @author dlecan
+ */
+public class NodeConfigurationImpl implements NodeConfiguration {
+
+ private static final double DEFAULT_DISTANCE_AROUND_POINT = 0;
+
+ private double distanceAroundPoint = DEFAULT_DISTANCE_AROUND_POINT;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public final double getDistanceAroundPoint() {
+ return distanceAroundPoint;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public final void setDistanceAroundPoint(double distanceAroundPoint) {
+ this.distanceAroundPoint = distanceAroundPoint;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ return MessageFormat.format(Messages.NodeConfigurationImpl_distanceAroundPoint, getDistanceAroundPoint());
+ }
+
+}
diff --git a/releng/org.eclipse.sirius.settings/sirius.psf b/releng/org.eclipse.sirius.settings/sirius.psf
index 6c79d3a296..a72ca46564 100644
--- a/releng/org.eclipse.sirius.settings/sirius.psf
+++ b/releng/org.eclipse.sirius.settings/sirius.psf
@@ -9,6 +9,7 @@
<project reference="1.0,https://git.eclipse.org/r/sirius/org.eclipse.sirius.git,master,plugins/org.eclipse.sirius.common.ui"/>
<project reference="1.0,https://git.eclipse.org/r/sirius/org.eclipse.sirius.git,master,plugins/org.eclipse.sirius.common.xtext"/>
<project reference="1.0,https://git.eclipse.org/r/sirius/org.eclipse.sirius.git,master,plugins/org.eclipse.sirius.diagram"/>
+<project reference="1.0,https://git.eclipse.org/r/sirius/org.eclipse.sirius.git,master,plugins/org.eclipse.sirius.diagram.formatdata"/>
<project reference="1.0,https://git.eclipse.org/r/sirius/org.eclipse.sirius.git,master,plugins/org.eclipse.sirius.diagram.layoutdata"/>
<project reference="1.0,https://git.eclipse.org/r/sirius/org.eclipse.sirius.git,master,plugins/org.eclipse.sirius.diagram.sequence"/>
<project reference="1.0,https://git.eclipse.org/r/sirius/org.eclipse.sirius.git,master,plugins/org.eclipse.sirius.diagram.sequence.edit"/>
@@ -117,6 +118,7 @@
<item elementID="=org.eclipse.sirius.ext.emf.edit" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
<item elementID="=org.eclipse.sirius.tests.support" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
<item elementID="=org.eclipse.sirius.synchronizer" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
+<item elementID="=org.eclipse.sirius.diagram.formatdata" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
<item elementID="=org.eclipse.sirius.diagram.layoutdata" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
<item elementID="=org.eclipse.sirius.table" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>
<item elementID="=org.eclipse.sirius.common.ui" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>

Back to the top