parallel ip - initial checkin

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.project b/.project
new file mode 100644
index 0000000..1167a70
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.datainterchange.aggregator</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/about.html b/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
new file mode 100644
index 0000000..41ae5dc
--- /dev/null
+++ b/jenkins.build.config.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2016 - Loetz GmbH&Co.KG                                    -->
+<!--# 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:                                                          -->
+<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation                           -->
+<!--#======================================================================= -->
+<!--# Module specific parameters for the Jenkins Job 						 -->
+<!--#======================================================================= -->
+
+<jenkins>
+	<!-- DO NOT EDIT BELOW THIS LINE -->
+        <jenkins.build.dependencies>
+                <jenkins.build.dependency>org.eclipse.osbp.dsl</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.eventbroker</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.osgi.hybrid.api</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.persistence</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.preferences</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.runtime</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.runtime.web</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.ui.api</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.utils</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.addons</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.basic</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
+        </jenkins.build.dependencies>
+</jenkins>
diff --git a/notice.html b/notice.html
new file mode 100644
index 0000000..c3d34c3
--- /dev/null
+++ b/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/.project b/org.eclipse.osbp.xtext.datainterchange.common/.project
new file mode 100644
index 0000000..3f36ca9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.datainterchange.common</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/LICENSE.txt b/org.eclipse.osbp.xtext.datainterchange.common/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.datainterchange.common/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c8bf698
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.datainterchange.common
+Bundle-SymbolicName: org.eclipse.osbp.xtext.datainterchange.common
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: org.eclipse.osbp.eventbroker;version="0.9.0",
+ org.eclipse.osbp.persistence;version="0.9.0",
+ org.eclipse.e4.core.services.events,
+ org.milyn.event,
+ org.milyn.event.types,
+ org.slf4j;version="1.7.2"
+Export-Package: org.eclipse.osbp.xtext.datainterchange.common;version="0.9.0"
+Require-Bundle: org.eclipse.osbp.utils;bundle-version="[0.9.0,0.10.0)",
+ com.vaadin.server;bundle-version="[7.5.7,7.7.0)"
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/about.html b/org.eclipse.osbp.xtext.datainterchange.common/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/about.ini b/org.eclipse.osbp.xtext.datainterchange.common/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/about.mappings b/org.eclipse.osbp.xtext.datainterchange.common/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/about.properties b/org.eclipse.osbp.xtext.datainterchange.common/about.properties
new file mode 100644
index 0000000..75592ba
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.xtext.datainterchange.common
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/build.properties b/org.eclipse.osbp.xtext.datainterchange.common/build.properties
new file mode 100644
index 0000000..054bea6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/build.properties
@@ -0,0 +1,13 @@
+source.. = src/
+output.. = target/classes/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html			   
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/epl-v10.html b/org.eclipse.osbp.xtext.datainterchange.common/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/license.html b/org.eclipse.osbp.xtext.datainterchange.common/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/pom.xml b/org.eclipse.osbp.xtext.datainterchange.common/pom.xml
new file mode 100644
index 0000000..e65d61c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/pom.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - 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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>org.eclipse.osbp.xtext.datainterchange.common</artifactId>
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<plugins>
+		</plugins>
+	</build>
+	<packaging>eclipse-plugin</packaging>
+	<parent>
+		<groupId>org.eclipse.osbp.xtext.datainterchange</groupId>
+		<artifactId>org.eclipse.osbp.xtext.datainterchange.aggregator</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath>..</relativePath>
+	</parent>
+
+</project>
diff --git a/org.eclipse.osbp.xtext.datainterchange.common/src/org/eclipse/osbp/xtext/datainterchange/common/WorkerThreadRunnable.java b/org.eclipse.osbp.xtext.datainterchange.common/src/org/eclipse/osbp/xtext/datainterchange/common/WorkerThreadRunnable.java
new file mode 100644
index 0000000..833d22e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.common/src/org/eclipse/osbp/xtext/datainterchange/common/WorkerThreadRunnable.java
@@ -0,0 +1,201 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.datainterchange.common;
+
+import org.eclipse.e4.core.services.events.IEventBroker;
+import org.milyn.event.ExecutionEvent;
+import org.milyn.event.ExecutionEventListener;
+import org.milyn.event.types.ElementPresentEvent;
+import org.milyn.event.types.FilterLifecycleEvent;
+import org.milyn.event.types.FilterLifecycleEvent.EventType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.ProgressBar;
+import com.vaadin.ui.UI;
+
+import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+import org.eclipse.osbp.persistence.IPersistenceService;
+
+public class WorkerThreadRunnable implements Runnable, ExecutionEventListener
+{
+	static final Logger log = LoggerFactory.getLogger(WorkerThreadRunnable.class);
+	private String name = null;
+	private String status = null;
+	private IEventBroker eventBroker;
+	private ProgressBar progressBar;
+	private HorizontalLayout progressBarArea;
+	private IPersistenceService persistenceService;
+	private long counter = 0 ;
+	private long length = 0;
+	private long avgElementSize = 0;
+	private static float previousValue = 0.0f;
+	private static float newValue = 0.0f;
+	private UI ui = null;
+	
+	public enum Direction {IMPORT, EXPORT};
+	
+	private Direction direction = Direction.IMPORT;
+	
+	public WorkerThreadRunnable() {
+		progressBarArea = new HorizontalLayout();
+		progressBar = new ProgressBar();
+		progressBarArea.addComponent(progressBar);
+	}
+
+	@Override
+	public void run() {
+	}
+
+	public void setLength(long length) {
+		this.length = length;
+	}
+
+	public void setAvgElementSize(long avgElementSize) {
+		this.avgElementSize = avgElementSize;
+	}
+
+	public void setProgressBarStyleName(String styleName) {
+		progressBar.addStyleName(styleName);
+	}
+	
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+		progressBar.setDescription(name);
+	}
+
+	public String getStatus() {
+		return status;
+	}
+
+	public void setStatus(String status) {
+		this.status = status;
+	}
+
+	public IEventBroker getEventBroker() {
+		return eventBroker;
+	}
+
+	public void setEventBroker(IEventBroker eventBroker) {
+		this.eventBroker = eventBroker;
+	}
+
+	public IPersistenceService getPersistenceService() {
+		return persistenceService;
+	}
+
+	public void setPersistenceService(IPersistenceService persistenceService) {
+		this.persistenceService = persistenceService;
+	}
+
+	public ProgressBar getProgressBar() {
+		return progressBar;
+	}
+
+	public HorizontalLayout getProgressBarArea() {
+		return progressBarArea;
+	}
+
+	public Direction getDirection() {
+		return direction;
+	}
+
+	public void setDirection(Direction direction) {
+		this.direction = direction;
+	}
+
+	public UI getUi() {
+		return ui;
+	}
+
+	public void setUi(UI ui) {
+		this.ui = ui;
+	}
+
+	public void setProgressBarEnabled(final boolean enable) {
+		if (ui != null) {
+            ui.access(new Runnable() {
+                @Override
+                public void run() {
+                	progressBar.setEnabled(enable);
+                }
+            });
+		}
+	}
+	
+	public void setProgressIndeterminated(final boolean indeterminate) {
+		if (ui != null) {
+            ui.access(new Runnable() {
+                @Override
+                public void run() {
+                	progressBar.setIndeterminate(indeterminate);
+                }
+            });
+		}
+	}
+
+	@Override
+	public void onEvent(ExecutionEvent event) {
+		if (event instanceof FilterLifecycleEvent) {
+			if (((FilterLifecycleEvent) event).getEventType() == EventType.STARTED) {
+				log.debug("started");
+				if (ui != null) {
+		            ui.access(new Runnable() {
+		                @Override
+		                public void run() {
+		                	progressBar.setValue(0.0f);
+		                	progressBar.setEnabled(false);
+		                }
+		            });
+				}
+			} else if (((FilterLifecycleEvent) event).getEventType() == EventType.FINISHED) {
+				log.debug("finished");
+				if (ui != null) {
+		            ui.access(new Runnable() {
+		                @Override
+		                public void run() {
+		                	progressBar.setValue(1.0f);
+		        			if(getEventBroker()!=null) {
+		        				// notify view about this worker finished working
+		        				getEventBroker().send(EventBrokerMsg.WORKER_THREAD_INFO, getName());
+		        			}
+		                }
+		            });
+				}
+			}
+		} else if (event instanceof ElementPresentEvent) {
+			log.debug("ElementPresentEvent");
+        	counter ++; 
+    		if (length != 0) {
+    			newValue = ((float)counter*avgElementSize)/length;
+    			if (Math.abs(newValue-previousValue) > 0.01) {
+    				if (ui != null) {
+    		            ui.access(new Runnable() {
+    		                @Override
+    		                public void run() {
+    		        			log.debug("new value:"+newValue);
+    		                	progressBar.setValue(newValue);
+    		                }
+    		            });
+    				}
+    			}
+    		}
+		}
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/.project b/org.eclipse.osbp.xtext.datainterchange.feature/.project
new file mode 100644
index 0000000..dfd60ce
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.datainterchange.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/LICENSE.txt b/org.eclipse.osbp.xtext.datainterchange.feature/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/build.properties b/org.eclipse.osbp.xtext.datainterchange.feature/build.properties
new file mode 100644
index 0000000..961a3e0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/build.properties
@@ -0,0 +1,5 @@
+bin.includes = license.html,  epl-v10.html,  feature.xml,\
+               feature.properties
+src.includes = LICENSE.txt,\
+               epl-v10.html,\
+               license.html
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/epl-v10.html b/org.eclipse.osbp.xtext.datainterchange.feature/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/feature.properties b/org.eclipse.osbp.xtext.datainterchange.feature/feature.properties
new file mode 100644
index 0000000..88dc6c2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/feature.properties
@@ -0,0 +1,169 @@
+###############################################################################
+# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany).
+# 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:
+#     Cristiano Gavião - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName =OSBP DSL: DataInterchange 
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse OSBP
+
+# "description" property - description of the feature
+description=This feature provides the bundles for the OSBP DataInterchangeDSL.
+
+# "updateSiteName" property - label for the update site
+updateSiteName=
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+################ end of copyright property ####################################
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+February 1, 2011\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+       - The top-level (root) directory\n\
+       - Plug-in and Fragment directories\n\
+       - Inside Plug-ins and Fragments packaged as JARs\n\
+       - Sub-directories of the directory named "src" of certain Plug-ins\n\
+       - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+       - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/feature.xml b/org.eclipse.osbp.xtext.datainterchange.feature/feature.xml
new file mode 100644
index 0000000..f4cd903
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/feature.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+        id="org.eclipse.osbp.xtext.datainterchange.feature"
+        label="%featureName"
+        version="0.9.0.qualifier"
+        provider-name="%providerName">
+        
+    <description>
+        %description
+    </description>
+        
+    <copyright>
+        %copyright
+    </copyright>
+        
+    <license url="%licenseURL">
+        %license
+    </license>
+        
+    <plugin
+        id="org.eclipse.osbp.xtext.datainterchange"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.xtext.datainterchange.tests"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.xtext.datainterchange.common"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.xtext.datainterchange.ui"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+</feature>
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/license.html b/org.eclipse.osbp.xtext.datainterchange.feature/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/pom.xml b/org.eclipse.osbp.xtext.datainterchange.feature/pom.xml
new file mode 100644
index 0000000..a88e82b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/pom.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany). -->
+<!--# 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: -->
+<!--# Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 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.osbp.xtext.datainterchange</groupId>
+		<artifactId>org.eclipse.osbp.xtext.datainterchange.aggregator</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.osbp.xtext.datainterchange.feature</artifactId>
+	<packaging>eclipse-feature</packaging>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho.extras</groupId>
+				<artifactId>tycho-source-feature-plugin</artifactId>
+				<version>${tychoExtrasVersion}</version>
+				<executions>
+					<execution>
+						<id>source-feature</id>
+						<phase>package</phase>
+						<goals>
+							<goal>source-feature</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<labelSuffix> (source)</labelSuffix>
+					<excludes>
+					</excludes>
+				</configuration>
+			</plugin>
+			<plugin>
+				<!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 
+					is not fixed -->
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-p2-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<executions>
+					<execution>
+						<id>attached-p2-metadata</id>
+						<phase>package</phase>
+						<goals>
+							<goal>p2-metadata</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>javadoc-jar</id>
+						<phase>package</phase>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.eclipse.osbp.xtext.datainterchange</groupId>
+			<artifactId>org.eclipse.osbp.xtext.datainterchange</artifactId>
+			<version>0.9.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.xtext.datainterchange</groupId>
+			<artifactId>org.eclipse.osbp.xtext.datainterchange.tests</artifactId>
+			<version>0.9.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.xtext.datainterchange</groupId>
+			<artifactId>org.eclipse.osbp.xtext.datainterchange.common</artifactId>
+			<version>0.9.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.osbp.xtext.datainterchange</groupId>
+			<artifactId>org.eclipse.osbp.xtext.datainterchange.ui</artifactId>
+			<version>0.9.0-SNAPSHOT</version>
+		</dependency>
+		
+	</dependencies>
+
+</project>
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/src/main/javadoc/README.txt b/org.eclipse.osbp.xtext.datainterchange.feature/src/main/javadoc/README.txt
new file mode 100644
index 0000000..831da7e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/src/main/javadoc/README.txt
@@ -0,0 +1 @@
+Resource folder for javadoc resources.
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.feature/src/overview.html b/org.eclipse.osbp.xtext.datainterchange.feature/src/overview.html
new file mode 100644
index 0000000..4cf94de
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.feature/src/overview.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+	<title>OSBP Tools Graphical Entity</title>
+</head>
+<body>
+<p>The <strong>OSBP&nbsp;Xtext&nbsp;Datainterchange DSL</strong>&nbsp;implements the datainterchange DSL.</p>
+
+<p>&nbsp;</p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/.project b/org.eclipse.osbp.xtext.datainterchange.tests/.project
new file mode 100644
index 0000000..db08d6b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.datainterchange.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/LICENSE.txt b/org.eclipse.osbp.xtext.datainterchange.tests/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.datainterchange.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..fd4cb4b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.datainterchange.tests
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-SymbolicName: org.eclipse.osbp.xtext.datainterchange.tests;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.osbp.xtext.datainterchange;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.datainterchange.ui;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.core.runtime,
+ org.eclipse.xtext.junit4;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.ui.workbench;resolution:=optional,
+ org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional,
+ com.google.inject;bundle-version="3.0.0"
+Import-Package: org.apache.log4j,
+ org.hamcrest.core,
+ org.junit;version="4.5.0",
+ org.junit.runner;version="4.5.0",
+ org.junit.runner.manipulation;version="4.5.0",
+ org.junit.runner.notification;version="4.5.0",
+ org.junit.runners;version="4.5.0",
+ org.junit.runners.model;version="4.5.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.xtext.datainterchange;version="0.9.0"
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/about.html b/org.eclipse.osbp.xtext.datainterchange.tests/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/about.ini b/org.eclipse.osbp.xtext.datainterchange.tests/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/about.mappings b/org.eclipse.osbp.xtext.datainterchange.tests/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/about.properties b/org.eclipse.osbp.xtext.datainterchange.tests/about.properties
new file mode 100644
index 0000000..a61dadf
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.xtext.datainterchange.tests
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/build.properties b/org.eclipse.osbp.xtext.datainterchange.tests/build.properties
new file mode 100644
index 0000000..431ea22
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/build.properties
@@ -0,0 +1,14 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html			   
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/epl-v10.html b/org.eclipse.osbp.xtext.datainterchange.tests/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/license.html b/org.eclipse.osbp.xtext.datainterchange.tests/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/org.eclipse.osbp.xtext.datainterchange.tests.launch b/org.eclipse.osbp.xtext.datainterchange.tests/org.eclipse.osbp.xtext.datainterchange.tests.launch
new file mode 100644
index 0000000..01ac48e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/org.eclipse.osbp.xtext.datainterchange.tests.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.osbp.xtext.datainterchange.tests"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.osbp.xtext.datainterchange.tests"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.osbp.xtext.datainterchange.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+</launchConfiguration>
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/pom.xml b/org.eclipse.osbp.xtext.datainterchange.tests/pom.xml
new file mode 100644
index 0000000..4f0ed88
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - 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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.xtext.datainterchange.tests</artifactId>
+  <packaging>eclipse-plugin</packaging>
+  <parent>
+  	<groupId>org.eclipse.osbp.xtext.datainterchange</groupId>
+  	<artifactId>org.eclipse.osbp.xtext.datainterchange.aggregator</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  	<relativePath>..</relativePath>
+  </parent>
+  
+</project>
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/src-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLInjectorProvider.java b/org.eclipse.osbp.xtext.datainterchange.tests/src-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLInjectorProvider.java
new file mode 100644
index 0000000..0e0ce1e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/src-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLInjectorProvider.java
@@ -0,0 +1,55 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.xtext.junit4.GlobalRegistries;
+import org.eclipse.xtext.junit4.GlobalRegistries.GlobalStateMemento;
+import org.eclipse.xtext.junit4.IInjectorProvider;
+import org.eclipse.xtext.junit4.IRegistryConfigurator;
+
+import com.google.inject.Injector;
+
+public class DataDSLInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
+	
+    protected GlobalStateMemento stateBeforeInjectorCreation;
+	protected GlobalStateMemento stateAfterInjectorCreation;
+	protected Injector injector;
+
+	static {
+		GlobalRegistries.initializeDefaults();
+	}
+
+	public Injector getInjector()
+	{
+		if (injector == null) {
+			stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+			this.injector = internalCreateInjector();
+			stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+		}
+		return injector;
+	}
+	
+	protected Injector internalCreateInjector() {
+	    return new DataDSLStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+
+	public void restoreRegistry() {
+		stateBeforeInjectorCreation.restoreGlobalState();
+	}
+
+	public void setupRegistry() {
+		getInjector();
+		stateAfterInjectorCreation.restoreGlobalState();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/src-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLUiInjectorProvider.java b/org.eclipse.osbp.xtext.datainterchange.tests/src-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLUiInjectorProvider.java
new file mode 100644
index 0000000..47c1b3c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/src-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLUiInjectorProvider.java
@@ -0,0 +1,26 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class DataDSLUiInjectorProvider implements IInjectorProvider {
+	
+	public Injector getInjector() {
+		return org.eclipse.osbp.xtext.datainterchange.ui.internal.DataDSLActivator.getInstance().getInjector("org.eclipse.osbp.xtext.datainterchange.DataDSL");
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/src/README.txt b/org.eclipse.osbp.xtext.datainterchange.tests/src/README.txt
new file mode 100644
index 0000000..dcc8010
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/src/README.txt
@@ -0,0 +1 @@
+needed for the build-path to be complete - do not remove
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.tests/xtend-gen/README.txt b/org.eclipse.osbp.xtext.datainterchange.tests/xtend-gen/README.txt
new file mode 100644
index 0000000..dcc8010
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.tests/xtend-gen/README.txt
@@ -0,0 +1 @@
+needed for the build-path to be complete - do not remove
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/.project b/org.eclipse.osbp.xtext.datainterchange.ui/.project
new file mode 100644
index 0000000..b94f853
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.datainterchange.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/LICENSE.txt b/org.eclipse.osbp.xtext.datainterchange.ui/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.datainterchange.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..7926918
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,39 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.datainterchange.ui
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-SymbolicName: org.eclipse.osbp.xtext.datainterchange.ui;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.slf4j.api;bundle-version="1.7.2",
+ org.eclipse.wb.core,
+ org.eclipse.wb.core.java;bundle-version="1.7.0",
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.xtext.ui;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.ui.shared;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.xbase.ui;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.common.types.ui;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.ui.codetemplates.ui;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.builder;bundle-version="[2.7.3,2.8.0)",
+ org.antlr.runtime,
+ org.eclipse.compare,
+ org.eclipse.osbp.dsl.entity.xtext;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.dsl.common.xtext;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.jdt.debug.ui,
+ org.eclipse.ui,
+ org.eclipse.osbp.utils;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.basic.ui;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.datainterchange;bundle-version="[0.9.0,0.10.0)"
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.xtext.datainterchange.ui;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.ui.contentassist;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.ui.internal;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.ui.labeling;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.ui.outline;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.ui.quickfix;version="0.9.0"
+Bundle-Activator: org.eclipse.osbp.xtext.datainterchange.ui.internal.DataDSLActivator
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/about.html b/org.eclipse.osbp.xtext.datainterchange.ui/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/about.ini b/org.eclipse.osbp.xtext.datainterchange.ui/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/about.mappings b/org.eclipse.osbp.xtext.datainterchange.ui/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/about.properties b/org.eclipse.osbp.xtext.datainterchange.ui/about.properties
new file mode 100644
index 0000000..91ba579
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.xtext.datainterchange.ui
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/build.properties b/org.eclipse.osbp.xtext.datainterchange.ui/build.properties
new file mode 100644
index 0000000..77467f6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/build.properties
@@ -0,0 +1,19 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               plugin.xml,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               i18n/,\
+               templates/,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html,\
+               icons/
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html,\
+               icons/
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/epl-v10.html b/org.eclipse.osbp.xtext.datainterchange.ui/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/i18n/I18N.properties b/org.eclipse.osbp.xtext.datainterchange.ui/i18n/I18N.properties
new file mode 100644
index 0000000..0206a67
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/i18n/I18N.properties
@@ -0,0 +1,193 @@
+#
+#Wed Jan 27 15:40:09 CET 2016
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchange=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchange.averageElementSize=An average size in bytes related to one line in the source file. The number is used to calculate the advancement of the progress bar while importing line by line.
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchange.create\ report=A logfile ist created for the interchange process
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchange.described\ by=The description for this interchange used in runtime documentations.
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchange.input=Defines the input of an interchange.
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchange.interchange=The main keyword to 
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchange.output=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchange.progressBarStyle=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchange.refreshViewWhenFinished=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.createOn=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.entity=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.expression=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.format=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.lookup=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.mapping=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.marker=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.recordBean=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.recordElement=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntity.recordList=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntityExpression=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntityExpression.copy=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntityExpression.from=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntityExpression.property=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntityPath=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeEntityPath.path=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeExpression=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeFormat=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeFormat.coding=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeFormat.for=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeFormat.locale=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeImport=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeImport.import=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInput=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.CSV=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.delimiter=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.encoding=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.indent=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.quoteCharacter=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.recordElementName=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.rootElementName=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.skipLines=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.strict=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputCSV.validateHeader=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputEDI=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputEDI.EDI=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputEDI.mappingModel=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputEDI.validate=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputXML=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeInputXML.XML=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeLookup=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeLookup.allowNoResult=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeLookup.allowNonuniqueResult=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeLookup.cacheSize=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeLookup.createOn=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeLookup.for=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeLookup.mapTo=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeLookup.on=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeLookup.with=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeMapping=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeMapping.map=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeMapping.to=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeMarkerEntity=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeMarkerEntity.markedBy=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeMarkerEntity.markerEntity=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeMarkerPath=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeMarkerPath.markerPath=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeModel=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeOutput=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeOutputDataSource=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeOutputDataSource.dataSource=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeOutputDataSource.persistenceUnit=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangePackage=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangePackage.package=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangePackage.title=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangePredefinedExpression=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangePredefinedExpression.as=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangePredefinedExpression.assign=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangePredefinedExpression.with=
+org.eclipse.osbp.xtext.datainterchange.CCDataInterchangeQualifiedNameWithWildCard=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange.averageElementSize=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange.bean=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange.beans=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange.create\ report=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange.described\ by=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange.file=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange.interchange=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange.progressBarStyle=
+org.eclipse.osbp.xtext.datainterchange.DataInterchange.refreshViewWhenFinished=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean.createOn=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean.entity=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean.expression=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean.format=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean.lookup=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean.mapping=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean.marker=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean.recordElement=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean.recordList=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBeanDataSource=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBeanPath=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeBeanPath.path=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity.createOn=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity.entity=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity.expression=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity.format=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity.lookup=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity.mapping=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity.marker=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity.recordElement=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntity.recordList=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression.copy=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression.from=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression.property=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV.CSV=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV.delimiter=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV.encoding=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV.indent=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV.quoteCharacter=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV.skipLines=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV.strict=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV.validateHeader=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI.EDI=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI.mappingModel=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI.validate=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML.XML=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat.coding=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat.for=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat.locale=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeImport=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeImport.import=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup.allowNoResult=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup.allowNonuniqueResult=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup.cacheSize=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup.createOn=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup.for=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup.mapTo=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup.on=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup.with=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping.map=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping.to=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity.markedBy=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity.markerEntity=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath.markerPath=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage.package=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage.title=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression.as=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression.assign=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression.with=
+org.eclipse.osbp.xtext.datainterchange.DataInterchangeQualifiedNameWithWildCard=
+org.eclipse.osbp.xtext.datainterchange.LFQN=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum.NowDate=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum.StartDate=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum.UniversallyUniqueIdentifier=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum.Date=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum.ExecuteContext=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum.Milliseconds=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum.Nanoseconds=
+org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum.Random=
+org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum=
+org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum.green=
+org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum.important=
+org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum.none=
+org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum.normal=
+org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum.red=
+org.eclipse.osbp.xtext.datainterchange.QualifiedName=
+org.eclipse.osbp.xtext.datainterchange.RecordBeanType=
+org.eclipse.osbp.xtext.datainterchange.RecordBeanType.list=
+org.eclipse.osbp.xtext.datainterchange.RecordBeanType.single=
+org.eclipse.osbp.xtext.datainterchange.TRANSLATABLEID=
+org.eclipse.osbp.xtext.datainterchange.TRANSLATABLESTRING=
+org.eclipse.osbp.xtext.datainterchange.ValidID=
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/csv.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/csv.png
new file mode 100644
index 0000000..8d1a903
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/csv.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/data_interchange.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/data_interchange.png
new file mode 100644
index 0000000..113157f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/data_interchange.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/data_lookup.gif b/org.eclipse.osbp.xtext.datainterchange.ui/icons/data_lookup.gif
new file mode 100644
index 0000000..5533c0b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/data_lookup.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/data_output.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/data_output.png
new file mode 100644
index 0000000..6a7d7dc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/data_output.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_datainterchange.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_datainterchange.png
new file mode 100644
index 0000000..113157f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_datainterchange.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_entity.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_entity.png
new file mode 100644
index 0000000..a063e88
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_entity.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_expression.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_expression.png
new file mode 100644
index 0000000..be9c390
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_expression.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_format.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_format.png
new file mode 100644
index 0000000..0bfcd82
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_format.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_import.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_import.png
new file mode 100644
index 0000000..f4fdcc9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_import.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_path.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_path.png
new file mode 100644
index 0000000..c262256
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/dsl_path.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/edi.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/edi.png
new file mode 100644
index 0000000..b011ba8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/edi.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/model.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/model.png
new file mode 100644
index 0000000..cffb857
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/model.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/package.gif b/org.eclipse.osbp.xtext.datainterchange.ui/icons/package.gif
new file mode 100644
index 0000000..34506fb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/package.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/icons/xml.png b/org.eclipse.osbp.xtext.datainterchange.ui/icons/xml.png
new file mode 100644
index 0000000..2f0a698
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/icons/xml.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/license.html b/org.eclipse.osbp.xtext.datainterchange.ui/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/plugin.xml b/org.eclipse.osbp.xtext.datainterchange.ui/plugin.xml
new file mode 100644
index 0000000..68c51d6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/plugin.xml
@@ -0,0 +1,532 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="data"
+            icon="icons/dsl_datainterchange.png"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            matchingStrategy="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
+            name="OSBP DataDSL Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="org.eclipse.osbp.xtext.datainterchange.DataDSL.validate">
+         <activeWhen>
+            <reference
+                    definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.XtextEditor.opened" />
+	                <iterate>
+						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+					</iterate>
+				</and>
+            </activeWhen>
+        </handler>
+    </extension>
+    <extension point="org.eclipse.core.expressions.definitions">
+        <definition id="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.datainterchange.DataDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="org.eclipse.osbp.xtext.datainterchange.DataDSL.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.datainterchange.DataDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            icon="icons/dsl_datainterchange.png"
+            name="OSBP DataDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.coloring"
+            icon="icons/dsl_datainterchange.png"
+            name="Syntax Coloring">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.templates"
+            icon="icons/dsl_datainterchange.png"
+            name="Templates">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            icon="icons/dsl_datainterchange.png"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            name="OSBP DataDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+            <enabledWhen>
+	            <adapt type="org.eclipse.core.resources.IProject"/>
+			</enabledWhen>
+	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+        </page>
+    </extension>
+    <extension
+        point="org.eclipse.ui.keywords">
+        <keyword
+            id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"
+            label="OSBP DataDSL"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.validate"
+            name="Validate">
+      </command>
+      <!-- copy qualified name -->
+      <command
+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+            categoryId="org.eclipse.ui.category.edit"
+            description="Copy the qualified name for the selected element"
+            name="Copy Qualified Name">
+      </command>
+      <command
+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+            categoryId="org.eclipse.ui.category.edit"
+            description="Copy the qualified name for the selected element"
+            name="Copy Qualified Name">
+      </command>
+    </extension>
+    <extension point="org.eclipse.ui.menus">
+        <menuContribution
+            locationURI="popup:#TextEditorContext?after=group.edit">
+             <command
+                 commandId="org.eclipse.osbp.xtext.datainterchange.DataDSL.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+                </reference>
+            </visibleWhen>
+         </command>  
+         </menuContribution>
+         <!-- copy qualified name -->
+         <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" 
+         		style="push" tooltip="Copy Qualified Name">
+            	<visibleWhen checkEnabled="false">
+                	<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened" />
+            	</visibleWhen>
+         	</command>  
+         </menuContribution>
+         <menuContribution locationURI="menu:edit?after=copy">
+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+            	style="push" tooltip="Copy Qualified Name">
+            	<visibleWhen checkEnabled="false">
+                	<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened" />
+            	</visibleWhen>
+         	</command>  
+         </menuContribution>
+         <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" 
+				style="push" tooltip="Copy Qualified Name">
+         		<visibleWhen checkEnabled="false">
+	            	<and>
+	            		<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.XtextEditor.opened" />
+						<iterate>
+							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+						</iterate>
+					</and>
+				</visibleWhen>
+			</command>
+         </menuContribution>
+    </extension>
+    <extension point="org.eclipse.ui.menus">
+		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+				<visibleWhen checkEnabled="false">
+                	<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="data">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="data">
+        </resourceServiceProvider>
+    </extension>
+
+
+	<!-- marker definitions for org.eclipse.osbp.xtext.datainterchange.DataDSL -->
+	<extension
+	        id="datadsl.check.fast"
+	        name="OSBP DataDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.fast"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="datadsl.check.normal"
+	        name="OSBP DataDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.normal"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="datadsl.check.expensive"
+	        name="OSBP DataDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.expensive"/>
+	    <persistent value="true"/>
+	</extension>
+
+   <extension
+         point="org.eclipse.xtext.builder.participant">
+      <participant
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.compiler.preferencePage"
+            icon="icons/dsl_datainterchange.png"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.compiler.propertyPage"
+            icon="icons/dsl_datainterchange.png"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+            <enabledWhen>
+	            <adapt type="org.eclipse.core.resources.IProject"/>
+			</enabledWhen>
+	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+        </page>
+    </extension>
+
+	<!-- Quick Outline -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension
+		point="org.eclipse.ui.commands">
+		<command
+			description="Open the quick outline."
+			id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+			name="Quick Outline">
+		</command>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+				style="push"
+				tooltip="Open Quick Outline">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for org.eclipse.osbp.xtext.datainterchange.DataDSL -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.datainterchange.ui.datadsl.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.datainterchange.ui.datadsl.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.datainterchange.ui.datadsl.check.expensive">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+    </extension>
+   	<!-- Rename Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+    <extension point="org.eclipse.ui.menus">
+         <menuContribution
+            locationURI="popup:#TextEditorContext?after=group.edit">
+         <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+               style="push">
+            <visibleWhen checkEnabled="false">
+               <reference
+                     definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+	        class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="org.eclipse.osbp.xtext.datainterchange.DataDSL.refactoring"
+            icon="icons/dsl_datainterchange.png"
+	        name="Refactoring">
+	        <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+	    </page>
+	</extension>
+
+<!-- Type Hierarchy  -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.QuickTypeHierarchyHandler"
+			commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy"
+				style="push"
+				tooltip="Open Type Hierarchy">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy"
+				style="push"
+				tooltip="Quick Type Hierarchy">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<!-- Call Hierachy -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierachyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy"
+				style="push"
+				tooltip="Open Call Hierarchy">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension
+         point="org.eclipse.core.runtime.adapters">
+      <factory class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.builder.smap.StratumBreakpointAdapterFactory"
+         adaptableType="org.eclipse.xtext.ui.editor.XtextEditor">
+         <adapter type="org.eclipse.debug.ui.actions.IToggleBreakpointsTarget"/>
+      </factory> 
+   </extension>
+   <extension point="org.eclipse.ui.editorActions">
+      <editorContribution targetID="org.eclipse.osbp.xtext.datainterchange.DataDSL" 
+                          id="org.eclipse.osbp.xtext.datainterchange.DataDSL.ide.rulerActions">
+	     <action
+	             label="Not Used"
+	             class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+	             style="push"
+	             actionID="RulerDoubleClick"
+	             id="org.eclipse.osbp.xtext.datainterchange.DataDSL.doubleClickBreakpointAction"/>
+	  </editorContribution>
+   </extension>
+   <extension point="org.eclipse.ui.popupMenus">
+      <viewerContribution
+         targetID="example.rulerContextMenuId"
+         id="org.eclipse.osbp.xtext.datainterchange.DataDSL.ide.RulerPopupActions">
+         <action
+            label="Toggle Breakpoint"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+            menubarPath="additions"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.ide.rulerContextMenu.toggleBreakpointAction">
+         </action>
+      </viewerContribution>
+   </extension>
+   
+    <!-- Introduce Local Variable Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.refactoring.ExtractVariableHandler"
+			commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+    <extension point="org.eclipse.ui.menus">
+         <menuContribution
+            locationURI="popup:#TextEditorContext?after=group.edit">
+         <command commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable"
+               style="push">
+            <visibleWhen checkEnabled="false">
+               <reference
+                     definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>  
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="org.eclipse.osbp.xtext.datainterchange.DataDSL.compare.contentViewers"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="data">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="org.eclipse.osbp.xtext.datainterchange.DataDSL.compare.contentMergeViewers"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="data" label="DataDSL Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="org.eclipse.osbp.xtext.datainterchange.DataDSL.editors.documentProviders"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="data">
+    </provider>
+  </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/plugin.xml_gen b/org.eclipse.osbp.xtext.datainterchange.ui/plugin.xml_gen
new file mode 100644
index 0000000..327b281
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/plugin.xml_gen
@@ -0,0 +1,562 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="data"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            matchingStrategy="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
+            name="DataDSL Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="org.eclipse.osbp.xtext.datainterchange.DataDSL.validate">
+         <activeWhen>
+            <reference
+                    definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.XtextEditor.opened" />
+	                <iterate>
+						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+					</iterate>
+				</and>
+            </activeWhen>
+        </handler>
+    </extension>
+    <extension point="org.eclipse.core.expressions.definitions">
+        <definition id="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.datainterchange.DataDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="org.eclipse.osbp.xtext.datainterchange.DataDSL.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.datainterchange.DataDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            name="DataDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.templates"
+            name="Templates">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            name="DataDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+            <enabledWhen>
+	            <adapt type="org.eclipse.core.resources.IProject"/>
+			</enabledWhen>
+	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+        </page>
+    </extension>
+    <extension
+        point="org.eclipse.ui.keywords">
+        <keyword
+            id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"
+            label="DataDSL"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.validate"
+            name="Validate">
+      </command>
+      <!-- copy qualified name -->
+      <command
+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+            categoryId="org.eclipse.ui.category.edit"
+            description="Copy the qualified name for the selected element"
+            name="Copy Qualified Name">
+      </command>
+      <command
+            id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+            categoryId="org.eclipse.ui.category.edit"
+            description="Copy the qualified name for the selected element"
+            name="Copy Qualified Name">
+      </command>
+    </extension>
+    <extension point="org.eclipse.ui.menus">
+        <menuContribution
+            locationURI="popup:#TextEditorContext?after=group.edit">
+             <command
+                 commandId="org.eclipse.osbp.xtext.datainterchange.DataDSL.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+                </reference>
+            </visibleWhen>
+         </command>  
+         </menuContribution>
+         <!-- copy qualified name -->
+         <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" 
+         		style="push" tooltip="Copy Qualified Name">
+            	<visibleWhen checkEnabled="false">
+                	<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened" />
+            	</visibleWhen>
+         	</command>  
+         </menuContribution>
+         <menuContribution locationURI="menu:edit?after=copy">
+         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+            	style="push" tooltip="Copy Qualified Name">
+            	<visibleWhen checkEnabled="false">
+                	<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened" />
+            	</visibleWhen>
+         	</command>  
+         </menuContribution>
+         <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" 
+				style="push" tooltip="Copy Qualified Name">
+         		<visibleWhen checkEnabled="false">
+	            	<and>
+	            		<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.XtextEditor.opened" />
+						<iterate>
+							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+						</iterate>
+					</and>
+				</visibleWhen>
+			</command>
+         </menuContribution>
+    </extension>
+    <extension point="org.eclipse.ui.menus">
+		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+				<visibleWhen checkEnabled="false">
+                	<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="data">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="data">
+        </resourceServiceProvider>
+    </extension>
+
+
+	<!-- marker definitions for org.eclipse.osbp.xtext.datainterchange.DataDSL -->
+	<extension
+	        id="datadsl.check.fast"
+	        name="DataDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.fast"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="datadsl.check.normal"
+	        name="DataDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.normal"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="datadsl.check.expensive"
+	        name="DataDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.expensive"/>
+	    <persistent value="true"/>
+	</extension>
+
+   <extension
+         point="org.eclipse.xtext.builder.participant">
+      <participant
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+            fileExtensions="data"
+            >
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.compiler.propertyPage"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+            <enabledWhen>
+	            <adapt type="org.eclipse.core.resources.IProject"/>
+			</enabledWhen>
+	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+        </page>
+    </extension>
+
+	<!-- Quick Outline -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension
+		point="org.eclipse.ui.commands">
+		<command
+			description="Open the quick outline."
+			id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+			name="Quick Outline">
+		</command>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+				style="push"
+				tooltip="Open Quick Outline">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for org.eclipse.osbp.xtext.datainterchange.DataDSL -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.datainterchange.ui.datadsl.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.datainterchange.ui.datadsl.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.datainterchange.ui.datadsl.check.expensive">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+    </extension>
+   	<!-- Rename Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+    <extension point="org.eclipse.ui.menus">
+         <menuContribution
+            locationURI="popup:#TextEditorContext?after=group.edit">
+         <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+               style="push">
+            <visibleWhen checkEnabled="false">
+               <reference
+                     definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="org.eclipse.osbp.xtext.datainterchange.DataDSL"
+	        class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="org.eclipse.osbp.xtext.datainterchange.DataDSL.refactoring"
+	        name="Refactoring">
+	        <keywordReference id="org.eclipse.osbp.xtext.datainterchange.ui.keyword_DataDSL"/>
+	    </page>
+	</extension>
+
+<!-- Type Hierarchy  -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.QuickTypeHierarchyHandler"
+			commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy"
+				style="push"
+				tooltip="Open Type Hierarchy">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy"
+				style="push"
+				tooltip="Quick Type Hierarchy">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<!-- Call Hierachy -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierachyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy"
+				style="push"
+				tooltip="Open Call Hierarchy">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension
+         point="org.eclipse.core.runtime.adapters">
+      <factory class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.builder.smap.StratumBreakpointAdapterFactory"
+         adaptableType="org.eclipse.xtext.ui.editor.XtextEditor">
+         <adapter type="org.eclipse.debug.ui.actions.IToggleBreakpointsTarget"/>
+      </factory> 
+   </extension>
+   <extension point="org.eclipse.ui.editorActions">
+      <editorContribution targetID="org.eclipse.osbp.xtext.datainterchange.DataDSL" 
+                          id="org.eclipse.osbp.xtext.datainterchange.DataDSL.rulerActions">
+	     <action
+	             label="Not Used"
+	             class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+	             style="push"
+	             actionID="RulerDoubleClick"
+	             id="org.eclipse.osbp.xtext.datainterchange.DataDSL.doubleClickBreakpointAction"/>
+	  </editorContribution>
+   </extension>
+   <extension point="org.eclipse.ui.popupMenus">
+      <viewerContribution
+         targetID="org.eclipse.osbp.xtext.datainterchange.DataDSL.RulerContext"
+         id="org.eclipse.osbp.xtext.datainterchange.DataDSL.RulerPopupActions">
+         <action
+            label="Toggle Breakpoint"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+            menubarPath="debug"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.rulerContextMenu.toggleBreakpointAction">
+         </action>
+         <action
+            label="Not used"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
+            menubarPath="debug"
+            id="org.eclipse.osbp.xtext.datainterchange.DataDSL.rulerContextMenu.enableDisableBreakpointAction">
+         </action>
+         <action
+           label="Breakpoint Properties"
+           helpContextId="breakpoint_properties_action_context"
+           class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.jdt.debug.ui.actions.JavaBreakpointPropertiesRulerActionDelegate"
+           menubarPath="group.properties"
+           id="org.eclipse.osbp.xtext.datainterchange.DataDSL.rulerContextMenu.openBreapointPropertiesAction">
+         </action>
+      </viewerContribution>
+   </extension>
+    <!-- Introduce Local Variable Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.refactoring.ExtractVariableHandler"
+			commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+    <extension point="org.eclipse.ui.menus">
+         <menuContribution
+            locationURI="popup:#TextEditorContext?after=group.edit">
+         <command commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable"
+               style="push">
+            <visibleWhen checkEnabled="false">
+               <reference
+                     definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>  
+   <!-- Open implementation -->
+   <extension point="org.eclipse.ui.handlers">
+      <handler
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.navigation.OpenImplementationHandler"
+            commandId="org.eclipse.xtext.xbase.ui.OpenImplementationCommand">
+            <activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+      </handler>
+   </extension>
+ <extension point="org.eclipse.ui.menus">
+       <menuContribution
+            locationURI="menu:navigate?after=open.ext4">
+         <command commandId="org.eclipse.xtext.xbase.ui.OpenImplementationCommand">
+		<visibleWhen checkEnabled="false">
+              <reference
+                 definitionId="org.eclipse.osbp.xtext.datainterchange.DataDSL.Editor.opened">
+              </reference>
+		</visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="org.eclipse.osbp.xtext.datainterchange.DataDSL.compare.contentViewers"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="data">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="org.eclipse.osbp.xtext.datainterchange.DataDSL.compare.contentMergeViewers"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="data" label="DataDSL Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="org.eclipse.osbp.xtext.datainterchange.DataDSL.editors.documentProviders"
+            class="org.eclipse.osbp.xtext.datainterchange.ui.DataDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="data">
+    </provider>
+  </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/pom.xml b/org.eclipse.osbp.xtext.datainterchange.ui/pom.xml
new file mode 100644
index 0000000..e6d6bc2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/pom.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - 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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.eclipse.osbp.xtext.datainterchange.ui</artifactId>
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+    <plugins>
+    </plugins>
+  </build>
+  <packaging>eclipse-plugin</packaging>
+  <parent>
+  	<groupId>org.eclipse.osbp.xtext.datainterchange</groupId>
+  	<artifactId>org.eclipse.osbp.xtext.datainterchange.aggregator</artifactId>
+  	<version>0.9.0-SNAPSHOT</version>
+  	<relativePath>..</relativePath>
+  </parent>
+
+</project>
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/AbstractDataDSLUiModule.java b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/AbstractDataDSLUiModule.java
new file mode 100644
index 0000000..9d79317
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/AbstractDataDSLUiModule.java
@@ -0,0 +1,374 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.eclipse.osbp.xtext.datainterchange.ui.DataDSLUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractDataDSLUiModule extends DefaultUiModule {
+	
+	public AbstractDataDSLUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+	}
+	
+	
+	// contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+	public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
+		return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState();
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.XtextEditor> bindXtextEditor() {
+		return org.eclipse.xtext.xbase.ui.editor.XbaseEditor.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.model.XtextDocumentProvider> bindXtextDocumentProvider() {
+		return org.eclipse.xtext.xbase.ui.editor.XbaseDocumentProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() {
+		return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public void configureHighlightingLexer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal.InternalDataDSLLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
+		return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+		return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+		return org.eclipse.xtext.builder.BuilderParticipant.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
+		return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+	public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+		return org.eclipse.osbp.xtext.datainterchange.ui.labeling.DataDSLLabelProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+	public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(org.eclipse.osbp.xtext.datainterchange.ui.labeling.DataDSLDescriptionLabelProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+		return org.eclipse.osbp.xtext.datainterchange.ui.outline.DataDSLOutlineTreeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+		return org.eclipse.osbp.xtext.datainterchange.ui.outline.DataDSLOutlineTreeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+		return org.eclipse.osbp.xtext.datainterchange.ui.quickfix.DataDSLQuickfixProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.contentAssist.ContentAssistFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+		return org.eclipse.osbp.xtext.datainterchange.ui.contentassist.DataDSLProposalProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+		return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
+		return org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.DataDSLParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal.InternalDataDSLLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal.InternalDataDSLLexer.class));
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public void configureContentAssistLexer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal.InternalDataDSLLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() {
+		return org.eclipse.xtext.common.types.ui.refactoring.JdtRenameSupport.Factory.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy.Provider> bindIRenameStrategy$Provider() {
+		return org.eclipse.xtext.common.types.ui.refactoring.participant.JvmMemberRenameStrategy.Provider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public void configureJvmMemberRenameStrategy$Provider$Delegate(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.refactoring.IRenameStrategy.Provider.class).annotatedWith(org.eclipse.xtext.common.types.ui.refactoring.participant.JvmMemberRenameStrategy.Provider.Delegate.class).to(org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategyProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public java.lang.ClassLoader bindClassLoaderToInstance() {
+		return getClass().getClassLoader();
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+		return org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderFactory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+		return org.eclipse.xtext.common.types.xtext.ui.JdtBasedSimpleTypeScopeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider> bindITypesProposalProvider() {
+		return org.eclipse.xtext.common.types.xtext.ui.JdtTypesProposalProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.access.jdt.IJavaProjectProvider> bindIJavaProjectProvider() {
+		return org.eclipse.xtext.common.types.xtext.ui.XtextResourceSetBasedProjectProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() {
+		return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.IValidationJobScheduler> bindIValidationJobScheduler() {
+		return org.eclipse.xtext.common.types.xtext.ui.JdtValidationJobScheduler.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.impl.RefactoringResourceSetProvider> bindRefactoringResourceSetProvider() {
+		return org.eclipse.xtext.common.types.ui.refactoring.JvmRefactoringResourceSetProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractAntlrTokenToAttributeIdMapper> bindAbstractAntlrTokenToAttributeIdMapper() {
+		return org.eclipse.xtext.xbase.ui.syntaxcoloring.XbaseTokenToAttributeIdMapper.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider.ReferenceProposalCreator> bindAbstractJavaBasedContentProposalProvider$ReferenceProposalCreator() {
+		return org.eclipse.xtext.xbase.ui.contentassist.XbaseReferenceProposalCreator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.jface.text.contentassist.IContentAssistProcessor> bindIContentAssistProcessor() {
+		return org.eclipse.xtext.ui.editor.contentassist.RepeatedContentAssistProcessor.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator> bindISemanticHighlightingCalculator() {
+		return org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingCalculator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration> bindIHighlightingConfiguration() {
+		return org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingConfiguration.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider> bindIEObjectHoverProvider() {
+		return org.eclipse.xtext.xbase.ui.hover.XbaseHoverProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.hover.IEObjectHover> bindIEObjectHover() {
+		return org.eclipse.xtext.xbase.ui.hover.XbaseDispatchingEObjectTextHover.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.hover.html.IEObjectHoverDocumentationProvider> bindIEObjectHoverDocumentationProvider() {
+		return org.eclipse.xtext.xbase.ui.hover.XbaseHoverDocumentationProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider.CrossRefResolutionConverter> bindDefaultQuickfixProvider$CrossRefResolutionConverter() {
+		return org.eclipse.xtext.xbase.ui.quickfix.XbaseCrossRefResolutionConverter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.xtext.xbase.ui.validation.XbaseUIValidator> bindXbaseUIValidator() {
+		return org.eclipse.xtext.xbase.ui.validation.XbaseUIValidator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper> bindIHyperlinkHelper() {
+		return org.eclipse.xtext.xbase.ui.navigation.TypeLiteralAwareHyperlinkHelper.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.typesystem.internal.IFeatureScopeTracker.Provider> bindIFeatureScopeTracker$Provider() {
+		return org.eclipse.xtext.xbase.typesystem.internal.OptimizingFeatureScopeTrackerProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler> bindFindReferencesHandler() {
+		return org.eclipse.xtext.xbase.ui.jvmmodel.findrefs.JvmModelFindReferenceHandler.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.findrefs.ReferenceQueryExecutor> bindReferenceQueryExecutor() {
+		return org.eclipse.xtext.xbase.ui.jvmmodel.findrefs.JvmModelReferenceQueryExecutor.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.JvmModelDependentElementsCalculator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.jdt.CombinedJvmJdtRenameRefactoringProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() {
+		return org.eclipse.xtext.xbase.ui.refactoring.XbaseReferenceUpdater.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameContextFactory> bindIRenameContextFactory() {
+		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.jdt.CombinedJvmJdtRenameContextFactory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.ui.refactoring.participant.JdtRenameParticipant.ContextFactory> bindJdtRenameParticipant$ContextFactory() {
+		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.JvmModelJdtRenameParticipantContext.ContextFactory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() {
+		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.DefaultJvmModelRenameStrategy.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.OutlineNodeElementOpener> bindOutlineNodeElementOpener() {
+		return org.eclipse.xtext.xbase.ui.jvmmodel.outline.JvmOutlineNodeElementOpener.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.GlobalURIEditorOpener> bindGlobalURIEditorOpener() {
+		return org.eclipse.xtext.common.types.ui.navigation.GlobalDerivedMemberAwareURIEditorOpener.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.occurrences.IOccurrenceComputer> bindIOccurrenceComputer() {
+		return org.eclipse.xtext.xbase.ui.jvmmodel.occurrence.JvmModelOccurrenceComputer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation> bindIJavaSearchParticipation() {
+		return org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation.No.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public void configureLanguageSpecificURIEditorOpener(com.google.inject.Binder binder) {
+		if (org.eclipse.ui.PlatformUI.isWorkbenchRunning()) { 
+			binder.bind(org.eclipse.xtext.ui.editor.IURIEditorOpener.class).annotatedWith(org.eclipse.xtext.ui.LanguageSpecific.class).to(org.eclipse.xtext.xbase.ui.jvmmodel.navigation.DerivedMemberAwareEditorOpener.class); 
+			binder.bind(org.eclipse.xtext.common.types.ui.navigation.IDerivedMemberAwareEditorOpener.class).to(org.eclipse.xtext.xbase.ui.jvmmodel.navigation.DerivedMemberAwareEditorOpener.class); 
+		};
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.jface.text.hyperlink.IHyperlinkDetector> bindIHyperlinkDetector() {
+		return org.eclipse.xtext.xbase.ui.navigation.XbaseHyperlinkDetector.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.ui.quickfix.JavaTypeQuickfixes> bindJavaTypeQuickfixes() {
+		return org.eclipse.xtext.xbase.ui.quickfix.JavaTypeQuickfixesNoImportSection.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+		return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() {
+		return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry();
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() {
+		return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+		return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
+		return org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.PartialDataDSLContentAssistParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+	public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() {
+		return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class;
+	}
+
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLExecutableExtensionFactory.java b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLExecutableExtensionFactory.java
new file mode 100644
index 0000000..5e4c013
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLExecutableExtensionFactory.java
@@ -0,0 +1,39 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import org.eclipse.osbp.xtext.datainterchange.ui.internal.DataDSLActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class DataDSLExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+	@Override
+	protected Bundle getBundle() {
+		return DataDSLActivator.getInstance().getBundle();
+	}
+	
+	@Override
+	protected Injector getInjector() {
+		return DataDSLActivator.getInstance().getInjector(DataDSLActivator.ORG_ECLIPSE_OSBP_XTEXT_DATAINTERCHANGE_DATADSL);
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/AbstractDataDSLProposalProvider.java b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/AbstractDataDSLProposalProvider.java
new file mode 100644
index 0000000..abd52ea
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/AbstractDataDSLProposalProvider.java
@@ -0,0 +1,297 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.xbase.annotations.ui.contentassist.XbaseWithAnnotationsProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
+ * with a more concrete subtype. 
+ */
+@SuppressWarnings("all")
+public class AbstractDataDSLProposalProvider extends org.eclipse.xtext.xbase.annotations.ui.contentassist.XbaseWithAnnotationsProposalProvider {
+		
+	public void completeDataInterchangeModel_Packages(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangePackage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangePackage_Title(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangePackage_Imports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangePackage_DatInts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchange_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchange_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchange_DescriptionValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchange_CreateReport(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchange_ElementSize(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchange_ProgressBarStyle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchange_RefreshEnabled(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchange_Refresh(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchange_FileEndpoint(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchange_Path(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFileXML_FileURL(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFileCSV_FileURL(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFileCSV_Delimiter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFileCSV_QuoteCharacter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFileCSV_SkipLines(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFileCSV_Indent(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeFileCSV_Strict(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeFileCSV_ValidateHeader(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeFileCSV_Encoding(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFileEDI_FileURL(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFileEDI_MappingModel(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFileEDI_Validate(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeBean_Entity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeBean_ElementMap(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeBean_MarkLatest(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeBean_LatestProperty(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeBean_RecordElement(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeBean_RecordList(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeBean_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeBean_Lookup(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeBean_Format(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeBean_Mappings(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeLookup_TargetProperty(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeLookup_Entity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeLookup_ElementMap(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeLookup_QueryProperty(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeLookup_Cached(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeLookup_CacheSize(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeLookup_DataMap(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeLookup_AllowNoResult(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeLookup_AllowNonuniqueResult(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeLookup_MarkerPath(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeMarkerPath_Path(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeMarkerEntity_MarkerEntity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeMarkerEntity_MarkLatest(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDataInterchangeMarkerEntity_MarkerProperty(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFormat_TargetProperty(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFormat_Format(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeFormat_Locale(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeEntityExpression_TargetProperty(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeEntityExpression_Entity(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeEntityExpression_Property(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangePredefinedExpression_TargetProperty(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangePredefinedExpression_Bean(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangePredefinedExpression_BeanType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeMapping_Property(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeMapping_Data(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataInterchangeImport_ImportedNamespace(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+    
+	public void complete_DataInterchangeModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangePackage(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchange(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeFile(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeFileXML(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeFileCSV(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeFileEDI(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeBean(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeLookup(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeMarkerPath(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeMarkerEntity(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeFormat(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeEntityExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangePredefinedExpression(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeMapping(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeImport(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataInterchangeQualifiedNameWithWildCard(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_QualifiedName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ValidID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_LFQN(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TRANSLATABLESTRING(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TRANSLATABLEID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PredefinedBeanEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PredefinedBeanTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ProgressBarStylesEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/DataDSLParser.java b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/DataDSLParser.java
new file mode 100644
index 0000000..1fa69e8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/DataDSLParser.java
@@ -0,0 +1,585 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.RecognitionException;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+
+import com.google.inject.Inject;
+
+import org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess;
+
+public class DataDSLParser extends AbstractContentAssistParser {
+	
+	@Inject
+	private DataDSLGrammarAccess grammarAccess;
+	
+	private Map<AbstractElement, String> nameMappings;
+	
+	@Override
+	protected org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal.InternalDataDSLParser createParser() {
+		org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal.InternalDataDSLParser result = new org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal.InternalDataDSLParser(null);
+		result.setGrammarAccess(grammarAccess);
+		return result;
+	}
+	
+	@Override
+	protected String getRuleName(AbstractElement element) {
+		if (nameMappings == null) {
+			nameMappings = new HashMap<AbstractElement, String>() {
+				private static final long serialVersionUID = 1L;
+				{
+					put(grammarAccess.getDataInterchangeFileAccess().getAlternatives(), "rule__DataInterchangeFile__Alternatives");
+					put(grammarAccess.getDataInterchangeBeanAccess().getAlternatives_5(), "rule__DataInterchangeBean__Alternatives_5");
+					put(grammarAccess.getDataInterchangeExpressionAccess().getAlternatives(), "rule__DataInterchangeExpression__Alternatives");
+					put(grammarAccess.getXAnnotationAccess().getAlternatives_3_1(), "rule__XAnnotation__Alternatives_3_1");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives(), "rule__XAnnotationElementValueOrCommaList__Alternatives");
+					put(grammarAccess.getXAnnotationElementValueAccess().getAlternatives(), "rule__XAnnotationElementValue__Alternatives");
+					put(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives(), "rule__XAnnotationOrExpression__Alternatives");
+					put(grammarAccess.getXAssignmentAccess().getAlternatives(), "rule__XAssignment__Alternatives");
+					put(grammarAccess.getOpMultiAssignAccess().getAlternatives(), "rule__OpMultiAssign__Alternatives");
+					put(grammarAccess.getOpEqualityAccess().getAlternatives(), "rule__OpEquality__Alternatives");
+					put(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1(), "rule__XRelationalExpression__Alternatives_1");
+					put(grammarAccess.getOpCompareAccess().getAlternatives(), "rule__OpCompare__Alternatives");
+					put(grammarAccess.getOpOtherAccess().getAlternatives(), "rule__OpOther__Alternatives");
+					put(grammarAccess.getOpOtherAccess().getAlternatives_5_1(), "rule__OpOther__Alternatives_5_1");
+					put(grammarAccess.getOpOtherAccess().getAlternatives_6_1(), "rule__OpOther__Alternatives_6_1");
+					put(grammarAccess.getOpAddAccess().getAlternatives(), "rule__OpAdd__Alternatives");
+					put(grammarAccess.getOpMultiAccess().getAlternatives(), "rule__OpMulti__Alternatives");
+					put(grammarAccess.getXUnaryOperationAccess().getAlternatives(), "rule__XUnaryOperation__Alternatives");
+					put(grammarAccess.getOpUnaryAccess().getAlternatives(), "rule__OpUnary__Alternatives");
+					put(grammarAccess.getOpPostfixAccess().getAlternatives(), "rule__OpPostfix__Alternatives");
+					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1(), "rule__XMemberFeatureCall__Alternatives_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1(), "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1(), "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1(), "rule__XMemberFeatureCall__Alternatives_1_1_3_1");
+					put(grammarAccess.getXPrimaryExpressionAccess().getAlternatives(), "rule__XPrimaryExpression__Alternatives");
+					put(grammarAccess.getXLiteralAccess().getAlternatives(), "rule__XLiteral__Alternatives");
+					put(grammarAccess.getXCollectionLiteralAccess().getAlternatives(), "rule__XCollectionLiteral__Alternatives");
+					put(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2(), "rule__XSwitchExpression__Alternatives_2");
+					put(grammarAccess.getXCasePartAccess().getAlternatives_3(), "rule__XCasePart__Alternatives_3");
+					put(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives(), "rule__XExpressionOrVarDeclaration__Alternatives");
+					put(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1(), "rule__XVariableDeclaration__Alternatives_1");
+					put(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2(), "rule__XVariableDeclaration__Alternatives_2");
+					put(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1(), "rule__XFeatureCall__Alternatives_3_1");
+					put(grammarAccess.getFeatureCallIDAccess().getAlternatives(), "rule__FeatureCallID__Alternatives");
+					put(grammarAccess.getIdOrSuperAccess().getAlternatives(), "rule__IdOrSuper__Alternatives");
+					put(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1(), "rule__XConstructorCall__Alternatives_4_1");
+					put(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1(), "rule__XBooleanLiteral__Alternatives_1");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3(), "rule__XTryCatchFinallyExpression__Alternatives_3");
+					put(grammarAccess.getNumberAccess().getAlternatives(), "rule__Number__Alternatives");
+					put(grammarAccess.getNumberAccess().getAlternatives_1_0(), "rule__Number__Alternatives_1_0");
+					put(grammarAccess.getNumberAccess().getAlternatives_1_1_1(), "rule__Number__Alternatives_1_1_1");
+					put(grammarAccess.getJvmTypeReferenceAccess().getAlternatives(), "rule__JvmTypeReference__Alternatives");
+					put(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives(), "rule__JvmArgumentTypeReference__Alternatives");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2(), "rule__JvmWildcardTypeReference__Alternatives_2");
+					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_1(), "rule__XImportDeclaration__Alternatives_1");
+					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_1_0_3(), "rule__XImportDeclaration__Alternatives_1_0_3");
+					put(grammarAccess.getPredefinedBeanEnumAccess().getAlternatives(), "rule__PredefinedBeanEnum__Alternatives");
+					put(grammarAccess.getPredefinedBeanTypeEnumAccess().getAlternatives(), "rule__PredefinedBeanTypeEnum__Alternatives");
+					put(grammarAccess.getProgressBarStylesEnumAccess().getAlternatives(), "rule__ProgressBarStylesEnum__Alternatives");
+					put(grammarAccess.getDataInterchangePackageAccess().getGroup(), "rule__DataInterchangePackage__Group__0");
+					put(grammarAccess.getDataInterchangePackageAccess().getGroup_5(), "rule__DataInterchangePackage__Group_5__0");
+					put(grammarAccess.getDataInterchangeAccess().getGroup(), "rule__DataInterchange__Group__0");
+					put(grammarAccess.getDataInterchangeAccess().getGroup_3(), "rule__DataInterchange__Group_3__0");
+					put(grammarAccess.getDataInterchangeAccess().getGroup_5(), "rule__DataInterchange__Group_5__0");
+					put(grammarAccess.getDataInterchangeAccess().getGroup_6(), "rule__DataInterchange__Group_6__0");
+					put(grammarAccess.getDataInterchangeAccess().getGroup_7(), "rule__DataInterchange__Group_7__0");
+					put(grammarAccess.getDataInterchangeFileXMLAccess().getGroup(), "rule__DataInterchangeFileXML__Group__0");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getGroup(), "rule__DataInterchangeFileCSV__Group__0");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getGroup_3_0(), "rule__DataInterchangeFileCSV__Group_3_0__0");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getGroup_3_1(), "rule__DataInterchangeFileCSV__Group_3_1__0");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getGroup_3_2(), "rule__DataInterchangeFileCSV__Group_3_2__0");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getGroup_3_6(), "rule__DataInterchangeFileCSV__Group_3_6__0");
+					put(grammarAccess.getDataInterchangeFileEDIAccess().getGroup(), "rule__DataInterchangeFileEDI__Group__0");
+					put(grammarAccess.getDataInterchangeBeanAccess().getGroup(), "rule__DataInterchangeBean__Group__0");
+					put(grammarAccess.getDataInterchangeBeanAccess().getGroup_3(), "rule__DataInterchangeBean__Group_3__0");
+					put(grammarAccess.getDataInterchangeBeanAccess().getGroup_4(), "rule__DataInterchangeBean__Group_4__0");
+					put(grammarAccess.getDataInterchangeBeanAccess().getGroup_6(), "rule__DataInterchangeBean__Group_6__0");
+					put(grammarAccess.getDataInterchangeBeanAccess().getGroup_7(), "rule__DataInterchangeBean__Group_7__0");
+					put(grammarAccess.getDataInterchangeBeanAccess().getGroup_8(), "rule__DataInterchangeBean__Group_8__0");
+					put(grammarAccess.getDataInterchangeBeanAccess().getGroup_9(), "rule__DataInterchangeBean__Group_9__0");
+					put(grammarAccess.getDataInterchangeLookupAccess().getGroup(), "rule__DataInterchangeLookup__Group__0");
+					put(grammarAccess.getDataInterchangeLookupAccess().getGroup_5(), "rule__DataInterchangeLookup__Group_5__0");
+					put(grammarAccess.getDataInterchangeLookupAccess().getGroup_8(), "rule__DataInterchangeLookup__Group_8__0");
+					put(grammarAccess.getDataInterchangeLookupAccess().getGroup_9(), "rule__DataInterchangeLookup__Group_9__0");
+					put(grammarAccess.getDataInterchangeMarkerPathAccess().getGroup(), "rule__DataInterchangeMarkerPath__Group__0");
+					put(grammarAccess.getDataInterchangeMarkerEntityAccess().getGroup(), "rule__DataInterchangeMarkerEntity__Group__0");
+					put(grammarAccess.getDataInterchangeMarkerEntityAccess().getGroup_3(), "rule__DataInterchangeMarkerEntity__Group_3__0");
+					put(grammarAccess.getDataInterchangeFormatAccess().getGroup(), "rule__DataInterchangeFormat__Group__0");
+					put(grammarAccess.getDataInterchangeFormatAccess().getGroup_5(), "rule__DataInterchangeFormat__Group_5__0");
+					put(grammarAccess.getDataInterchangeEntityExpressionAccess().getGroup(), "rule__DataInterchangeEntityExpression__Group__0");
+					put(grammarAccess.getDataInterchangePredefinedExpressionAccess().getGroup(), "rule__DataInterchangePredefinedExpression__Group__0");
+					put(grammarAccess.getDataInterchangeMappingAccess().getGroup(), "rule__DataInterchangeMapping__Group__0");
+					put(grammarAccess.getDataInterchangeImportAccess().getGroup(), "rule__DataInterchangeImport__Group__0");
+					put(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getGroup(), "rule__DataInterchangeQualifiedNameWithWildCard__Group__0");
+					put(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getGroup_1(), "rule__DataInterchangeQualifiedNameWithWildCard__Group_1__0");
+					put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
+					put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
+					put(grammarAccess.getLFQNAccess().getGroup(), "rule__LFQN__Group__0");
+					put(grammarAccess.getLFQNAccess().getGroup_1(), "rule__LFQN__Group_1__0");
+					put(grammarAccess.getXAnnotationAccess().getGroup(), "rule__XAnnotation__Group__0");
+					put(grammarAccess.getXAnnotationAccess().getGroup_3(), "rule__XAnnotation__Group_3__0");
+					put(grammarAccess.getXAnnotationAccess().getGroup_3_1_0(), "rule__XAnnotation__Group_3_1_0__0");
+					put(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1(), "rule__XAnnotation__Group_3_1_0_1__0");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getGroup(), "rule__XAnnotationElementValuePair__Group__0");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0(), "rule__XAnnotationElementValuePair__Group_0__0");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0(), "rule__XAnnotationElementValuePair__Group_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0(), "rule__XAnnotationElementValueOrCommaList__Group_0__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0(), "rule__XAnnotationElementValueOrCommaList__Group_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0(), "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1(), "rule__XAnnotationElementValueOrCommaList__Group_0_1__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1(), "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1(), "rule__XAnnotationElementValueOrCommaList__Group_1__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1(), "rule__XAnnotationElementValueOrCommaList__Group_1_1__0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1(), "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0(), "rule__XAnnotationElementValue__Group_0__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0(), "rule__XAnnotationElementValue__Group_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0(), "rule__XAnnotationElementValue__Group_0_0_0__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1(), "rule__XAnnotationElementValue__Group_0_1__0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1(), "rule__XAnnotationElementValue__Group_0_1_1__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_0(), "rule__XAssignment__Group_0__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_1(), "rule__XAssignment__Group_1__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_1_1(), "rule__XAssignment__Group_1_1__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_1_1_0(), "rule__XAssignment__Group_1_1_0__0");
+					put(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0(), "rule__XAssignment__Group_1_1_0_0__0");
+					put(grammarAccess.getOpMultiAssignAccess().getGroup_5(), "rule__OpMultiAssign__Group_5__0");
+					put(grammarAccess.getOpMultiAssignAccess().getGroup_6(), "rule__OpMultiAssign__Group_6__0");
+					put(grammarAccess.getXOrExpressionAccess().getGroup(), "rule__XOrExpression__Group__0");
+					put(grammarAccess.getXOrExpressionAccess().getGroup_1(), "rule__XOrExpression__Group_1__0");
+					put(grammarAccess.getXOrExpressionAccess().getGroup_1_0(), "rule__XOrExpression__Group_1_0__0");
+					put(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0(), "rule__XOrExpression__Group_1_0_0__0");
+					put(grammarAccess.getXAndExpressionAccess().getGroup(), "rule__XAndExpression__Group__0");
+					put(grammarAccess.getXAndExpressionAccess().getGroup_1(), "rule__XAndExpression__Group_1__0");
+					put(grammarAccess.getXAndExpressionAccess().getGroup_1_0(), "rule__XAndExpression__Group_1_0__0");
+					put(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0(), "rule__XAndExpression__Group_1_0_0__0");
+					put(grammarAccess.getXEqualityExpressionAccess().getGroup(), "rule__XEqualityExpression__Group__0");
+					put(grammarAccess.getXEqualityExpressionAccess().getGroup_1(), "rule__XEqualityExpression__Group_1__0");
+					put(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0(), "rule__XEqualityExpression__Group_1_0__0");
+					put(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0(), "rule__XEqualityExpression__Group_1_0_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup(), "rule__XRelationalExpression__Group__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0(), "rule__XRelationalExpression__Group_1_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0(), "rule__XRelationalExpression__Group_1_0_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0(), "rule__XRelationalExpression__Group_1_0_0_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1(), "rule__XRelationalExpression__Group_1_1__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0(), "rule__XRelationalExpression__Group_1_1_0__0");
+					put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0(), "rule__XRelationalExpression__Group_1_1_0_0__0");
+					put(grammarAccess.getOpCompareAccess().getGroup_1(), "rule__OpCompare__Group_1__0");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup(), "rule__XOtherOperatorExpression__Group__0");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1(), "rule__XOtherOperatorExpression__Group_1__0");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0(), "rule__XOtherOperatorExpression__Group_1_0__0");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0(), "rule__XOtherOperatorExpression__Group_1_0_0__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_2(), "rule__OpOther__Group_2__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_5(), "rule__OpOther__Group_5__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_5_1_0(), "rule__OpOther__Group_5_1_0__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0(), "rule__OpOther__Group_5_1_0_0__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_6(), "rule__OpOther__Group_6__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_6_1_0(), "rule__OpOther__Group_6_1_0__0");
+					put(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0(), "rule__OpOther__Group_6_1_0_0__0");
+					put(grammarAccess.getXAdditiveExpressionAccess().getGroup(), "rule__XAdditiveExpression__Group__0");
+					put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1(), "rule__XAdditiveExpression__Group_1__0");
+					put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0(), "rule__XAdditiveExpression__Group_1_0__0");
+					put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0(), "rule__XAdditiveExpression__Group_1_0_0__0");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup(), "rule__XMultiplicativeExpression__Group__0");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1(), "rule__XMultiplicativeExpression__Group_1__0");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0(), "rule__XMultiplicativeExpression__Group_1_0__0");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0(), "rule__XMultiplicativeExpression__Group_1_0_0__0");
+					put(grammarAccess.getXUnaryOperationAccess().getGroup_0(), "rule__XUnaryOperation__Group_0__0");
+					put(grammarAccess.getXCastedExpressionAccess().getGroup(), "rule__XCastedExpression__Group__0");
+					put(grammarAccess.getXCastedExpressionAccess().getGroup_1(), "rule__XCastedExpression__Group_1__0");
+					put(grammarAccess.getXCastedExpressionAccess().getGroup_1_0(), "rule__XCastedExpression__Group_1_0__0");
+					put(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0(), "rule__XCastedExpression__Group_1_0_0__0");
+					put(grammarAccess.getXPostfixOperationAccess().getGroup(), "rule__XPostfixOperation__Group__0");
+					put(grammarAccess.getXPostfixOperationAccess().getGroup_1(), "rule__XPostfixOperation__Group_1__0");
+					put(grammarAccess.getXPostfixOperationAccess().getGroup_1_0(), "rule__XPostfixOperation__Group_1_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup(), "rule__XMemberFeatureCall__Group__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0(), "rule__XMemberFeatureCall__Group_1_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0(), "rule__XMemberFeatureCall__Group_1_0_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0(), "rule__XMemberFeatureCall__Group_1_0_0_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1(), "rule__XMemberFeatureCall__Group_1_1__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0(), "rule__XMemberFeatureCall__Group_1_1_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0(), "rule__XMemberFeatureCall__Group_1_1_0_0__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1(), "rule__XMemberFeatureCall__Group_1_1_1__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2(), "rule__XMemberFeatureCall__Group_1_1_1_2__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3(), "rule__XMemberFeatureCall__Group_1_1_3__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1(), "rule__XMemberFeatureCall__Group_1_1_3_1_1__0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1(), "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0");
+					put(grammarAccess.getXSetLiteralAccess().getGroup(), "rule__XSetLiteral__Group__0");
+					put(grammarAccess.getXSetLiteralAccess().getGroup_3(), "rule__XSetLiteral__Group_3__0");
+					put(grammarAccess.getXSetLiteralAccess().getGroup_3_1(), "rule__XSetLiteral__Group_3_1__0");
+					put(grammarAccess.getXListLiteralAccess().getGroup(), "rule__XListLiteral__Group__0");
+					put(grammarAccess.getXListLiteralAccess().getGroup_3(), "rule__XListLiteral__Group_3__0");
+					put(grammarAccess.getXListLiteralAccess().getGroup_3_1(), "rule__XListLiteral__Group_3_1__0");
+					put(grammarAccess.getXClosureAccess().getGroup(), "rule__XClosure__Group__0");
+					put(grammarAccess.getXClosureAccess().getGroup_0(), "rule__XClosure__Group_0__0");
+					put(grammarAccess.getXClosureAccess().getGroup_0_0(), "rule__XClosure__Group_0_0__0");
+					put(grammarAccess.getXClosureAccess().getGroup_1(), "rule__XClosure__Group_1__0");
+					put(grammarAccess.getXClosureAccess().getGroup_1_0(), "rule__XClosure__Group_1_0__0");
+					put(grammarAccess.getXClosureAccess().getGroup_1_0_0(), "rule__XClosure__Group_1_0_0__0");
+					put(grammarAccess.getXClosureAccess().getGroup_1_0_0_1(), "rule__XClosure__Group_1_0_0_1__0");
+					put(grammarAccess.getXExpressionInClosureAccess().getGroup(), "rule__XExpressionInClosure__Group__0");
+					put(grammarAccess.getXExpressionInClosureAccess().getGroup_1(), "rule__XExpressionInClosure__Group_1__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup(), "rule__XShortClosure__Group__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup_0(), "rule__XShortClosure__Group_0__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup_0_0(), "rule__XShortClosure__Group_0_0__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup_0_0_1(), "rule__XShortClosure__Group_0_0_1__0");
+					put(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1(), "rule__XShortClosure__Group_0_0_1_1__0");
+					put(grammarAccess.getXParenthesizedExpressionAccess().getGroup(), "rule__XParenthesizedExpression__Group__0");
+					put(grammarAccess.getXIfExpressionAccess().getGroup(), "rule__XIfExpression__Group__0");
+					put(grammarAccess.getXIfExpressionAccess().getGroup_6(), "rule__XIfExpression__Group_6__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup(), "rule__XSwitchExpression__Group__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0(), "rule__XSwitchExpression__Group_2_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0(), "rule__XSwitchExpression__Group_2_0_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0(), "rule__XSwitchExpression__Group_2_0_0_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1(), "rule__XSwitchExpression__Group_2_1__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0(), "rule__XSwitchExpression__Group_2_1_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0(), "rule__XSwitchExpression__Group_2_1_0_0__0");
+					put(grammarAccess.getXSwitchExpressionAccess().getGroup_5(), "rule__XSwitchExpression__Group_5__0");
+					put(grammarAccess.getXCasePartAccess().getGroup(), "rule__XCasePart__Group__0");
+					put(grammarAccess.getXCasePartAccess().getGroup_2(), "rule__XCasePart__Group_2__0");
+					put(grammarAccess.getXCasePartAccess().getGroup_3_0(), "rule__XCasePart__Group_3_0__0");
+					put(grammarAccess.getXForLoopExpressionAccess().getGroup(), "rule__XForLoopExpression__Group__0");
+					put(grammarAccess.getXForLoopExpressionAccess().getGroup_0(), "rule__XForLoopExpression__Group_0__0");
+					put(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0(), "rule__XForLoopExpression__Group_0_0__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup(), "rule__XBasicForLoopExpression__Group__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3(), "rule__XBasicForLoopExpression__Group_3__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1(), "rule__XBasicForLoopExpression__Group_3_1__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7(), "rule__XBasicForLoopExpression__Group_7__0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1(), "rule__XBasicForLoopExpression__Group_7_1__0");
+					put(grammarAccess.getXWhileExpressionAccess().getGroup(), "rule__XWhileExpression__Group__0");
+					put(grammarAccess.getXDoWhileExpressionAccess().getGroup(), "rule__XDoWhileExpression__Group__0");
+					put(grammarAccess.getXBlockExpressionAccess().getGroup(), "rule__XBlockExpression__Group__0");
+					put(grammarAccess.getXBlockExpressionAccess().getGroup_2(), "rule__XBlockExpression__Group_2__0");
+					put(grammarAccess.getXVariableDeclarationAccess().getGroup(), "rule__XVariableDeclaration__Group__0");
+					put(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0(), "rule__XVariableDeclaration__Group_2_0__0");
+					put(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0(), "rule__XVariableDeclaration__Group_2_0_0__0");
+					put(grammarAccess.getXVariableDeclarationAccess().getGroup_3(), "rule__XVariableDeclaration__Group_3__0");
+					put(grammarAccess.getJvmFormalParameterAccess().getGroup(), "rule__JvmFormalParameter__Group__0");
+					put(grammarAccess.getFullJvmFormalParameterAccess().getGroup(), "rule__FullJvmFormalParameter__Group__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup(), "rule__XFeatureCall__Group__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_1(), "rule__XFeatureCall__Group_1__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_1_2(), "rule__XFeatureCall__Group_1_2__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_3(), "rule__XFeatureCall__Group_3__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1(), "rule__XFeatureCall__Group_3_1_1__0");
+					put(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1(), "rule__XFeatureCall__Group_3_1_1_1__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup(), "rule__XConstructorCall__Group__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_3(), "rule__XConstructorCall__Group_3__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_3_2(), "rule__XConstructorCall__Group_3_2__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_4(), "rule__XConstructorCall__Group_4__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1(), "rule__XConstructorCall__Group_4_1_1__0");
+					put(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1(), "rule__XConstructorCall__Group_4_1_1_1__0");
+					put(grammarAccess.getXBooleanLiteralAccess().getGroup(), "rule__XBooleanLiteral__Group__0");
+					put(grammarAccess.getXNullLiteralAccess().getGroup(), "rule__XNullLiteral__Group__0");
+					put(grammarAccess.getXNumberLiteralAccess().getGroup(), "rule__XNumberLiteral__Group__0");
+					put(grammarAccess.getXStringLiteralAccess().getGroup(), "rule__XStringLiteral__Group__0");
+					put(grammarAccess.getXTypeLiteralAccess().getGroup(), "rule__XTypeLiteral__Group__0");
+					put(grammarAccess.getXThrowExpressionAccess().getGroup(), "rule__XThrowExpression__Group__0");
+					put(grammarAccess.getXReturnExpressionAccess().getGroup(), "rule__XReturnExpression__Group__0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup(), "rule__XTryCatchFinallyExpression__Group__0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0(), "rule__XTryCatchFinallyExpression__Group_3_0__0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1(), "rule__XTryCatchFinallyExpression__Group_3_0_1__0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1(), "rule__XTryCatchFinallyExpression__Group_3_1__0");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getGroup(), "rule__XSynchronizedExpression__Group__0");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0(), "rule__XSynchronizedExpression__Group_0__0");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0(), "rule__XSynchronizedExpression__Group_0_0__0");
+					put(grammarAccess.getXCatchClauseAccess().getGroup(), "rule__XCatchClause__Group__0");
+					put(grammarAccess.getNumberAccess().getGroup_1(), "rule__Number__Group_1__0");
+					put(grammarAccess.getNumberAccess().getGroup_1_1(), "rule__Number__Group_1_1__0");
+					put(grammarAccess.getStaticQualifierAccess().getGroup(), "rule__StaticQualifier__Group__0");
+					put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0(), "rule__JvmTypeReference__Group_0__0");
+					put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1(), "rule__JvmTypeReference__Group_0_1__0");
+					put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0(), "rule__JvmTypeReference__Group_0_1_0__0");
+					put(grammarAccess.getArrayBracketsAccess().getGroup(), "rule__ArrayBrackets__Group__0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getGroup(), "rule__XFunctionTypeRef__Group__0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0(), "rule__XFunctionTypeRef__Group_0__0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1(), "rule__XFunctionTypeRef__Group_0_1__0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1(), "rule__XFunctionTypeRef__Group_0_1_1__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup(), "rule__JvmParameterizedTypeReference__Group__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1(), "rule__JvmParameterizedTypeReference__Group_1__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2(), "rule__JvmParameterizedTypeReference__Group_1_2__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4(), "rule__JvmParameterizedTypeReference__Group_1_4__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0(), "rule__JvmParameterizedTypeReference__Group_1_4_0__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0(), "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2(), "rule__JvmParameterizedTypeReference__Group_1_4_2__0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2(), "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup(), "rule__JvmWildcardTypeReference__Group__0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0(), "rule__JvmWildcardTypeReference__Group_2_0__0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1(), "rule__JvmWildcardTypeReference__Group_2_1__0");
+					put(grammarAccess.getJvmUpperBoundAccess().getGroup(), "rule__JvmUpperBound__Group__0");
+					put(grammarAccess.getJvmUpperBoundAndedAccess().getGroup(), "rule__JvmUpperBoundAnded__Group__0");
+					put(grammarAccess.getJvmLowerBoundAccess().getGroup(), "rule__JvmLowerBound__Group__0");
+					put(grammarAccess.getJvmLowerBoundAndedAccess().getGroup(), "rule__JvmLowerBoundAnded__Group__0");
+					put(grammarAccess.getJvmTypeParameterAccess().getGroup(), "rule__JvmTypeParameter__Group__0");
+					put(grammarAccess.getJvmTypeParameterAccess().getGroup_1(), "rule__JvmTypeParameter__Group_1__0");
+					put(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup(), "rule__QualifiedNameWithWildcard__Group__0");
+					put(grammarAccess.getXImportDeclarationAccess().getGroup(), "rule__XImportDeclaration__Group__0");
+					put(grammarAccess.getXImportDeclarationAccess().getGroup_1_0(), "rule__XImportDeclaration__Group_1_0__0");
+					put(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup(), "rule__QualifiedNameInStaticImport__Group__0");
+					put(grammarAccess.getDataInterchangeModelAccess().getPackagesAssignment(), "rule__DataInterchangeModel__PackagesAssignment");
+					put(grammarAccess.getDataInterchangePackageAccess().getNameAssignment_2(), "rule__DataInterchangePackage__NameAssignment_2");
+					put(grammarAccess.getDataInterchangePackageAccess().getTitleAssignment_4(), "rule__DataInterchangePackage__TitleAssignment_4");
+					put(grammarAccess.getDataInterchangePackageAccess().getImportsAssignment_5_1(), "rule__DataInterchangePackage__ImportsAssignment_5_1");
+					put(grammarAccess.getDataInterchangePackageAccess().getDatIntsAssignment_5_2(), "rule__DataInterchangePackage__DatIntsAssignment_5_2");
+					put(grammarAccess.getDataInterchangeAccess().getNameAssignment_2(), "rule__DataInterchange__NameAssignment_2");
+					put(grammarAccess.getDataInterchangeAccess().getDescriptionAssignment_3_0(), "rule__DataInterchange__DescriptionAssignment_3_0");
+					put(grammarAccess.getDataInterchangeAccess().getDescriptionValueAssignment_3_1(), "rule__DataInterchange__DescriptionValueAssignment_3_1");
+					put(grammarAccess.getDataInterchangeAccess().getCreateReportAssignment_4(), "rule__DataInterchange__CreateReportAssignment_4");
+					put(grammarAccess.getDataInterchangeAccess().getElementSizeAssignment_5_1(), "rule__DataInterchange__ElementSizeAssignment_5_1");
+					put(grammarAccess.getDataInterchangeAccess().getProgressBarStyleAssignment_6_1(), "rule__DataInterchange__ProgressBarStyleAssignment_6_1");
+					put(grammarAccess.getDataInterchangeAccess().getRefreshEnabledAssignment_7_0(), "rule__DataInterchange__RefreshEnabledAssignment_7_0");
+					put(grammarAccess.getDataInterchangeAccess().getRefreshAssignment_7_1(), "rule__DataInterchange__RefreshAssignment_7_1");
+					put(grammarAccess.getDataInterchangeAccess().getFileEndpointAssignment_9(), "rule__DataInterchange__FileEndpointAssignment_9");
+					put(grammarAccess.getDataInterchangeAccess().getPathAssignment_12(), "rule__DataInterchange__PathAssignment_12");
+					put(grammarAccess.getDataInterchangeFileXMLAccess().getFileURLAssignment_2(), "rule__DataInterchangeFileXML__FileURLAssignment_2");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getFileURLAssignment_2(), "rule__DataInterchangeFileCSV__FileURLAssignment_2");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getDelimiterAssignment_3_0_1(), "rule__DataInterchangeFileCSV__DelimiterAssignment_3_0_1");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getQuoteCharacterAssignment_3_1_1(), "rule__DataInterchangeFileCSV__QuoteCharacterAssignment_3_1_1");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getSkipLinesAssignment_3_2_1(), "rule__DataInterchangeFileCSV__SkipLinesAssignment_3_2_1");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getIndentAssignment_3_3(), "rule__DataInterchangeFileCSV__IndentAssignment_3_3");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getStrictAssignment_3_4(), "rule__DataInterchangeFileCSV__StrictAssignment_3_4");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getValidateHeaderAssignment_3_5(), "rule__DataInterchangeFileCSV__ValidateHeaderAssignment_3_5");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getEncodingAssignment_3_6_1(), "rule__DataInterchangeFileCSV__EncodingAssignment_3_6_1");
+					put(grammarAccess.getDataInterchangeFileEDIAccess().getFileURLAssignment_2(), "rule__DataInterchangeFileEDI__FileURLAssignment_2");
+					put(grammarAccess.getDataInterchangeFileEDIAccess().getMappingModelAssignment_4(), "rule__DataInterchangeFileEDI__MappingModelAssignment_4");
+					put(grammarAccess.getDataInterchangeFileEDIAccess().getValidateAssignment_5(), "rule__DataInterchangeFileEDI__ValidateAssignment_5");
+					put(grammarAccess.getDataInterchangeBeanAccess().getEntityAssignment_2(), "rule__DataInterchangeBean__EntityAssignment_2");
+					put(grammarAccess.getDataInterchangeBeanAccess().getElementMapAssignment_3_1(), "rule__DataInterchangeBean__ElementMapAssignment_3_1");
+					put(grammarAccess.getDataInterchangeBeanAccess().getMarkLatestAssignment_4_0(), "rule__DataInterchangeBean__MarkLatestAssignment_4_0");
+					put(grammarAccess.getDataInterchangeBeanAccess().getLatestPropertyAssignment_4_1(), "rule__DataInterchangeBean__LatestPropertyAssignment_4_1");
+					put(grammarAccess.getDataInterchangeBeanAccess().getRecordElementAssignment_5_0(), "rule__DataInterchangeBean__RecordElementAssignment_5_0");
+					put(grammarAccess.getDataInterchangeBeanAccess().getRecordListAssignment_5_1(), "rule__DataInterchangeBean__RecordListAssignment_5_1");
+					put(grammarAccess.getDataInterchangeBeanAccess().getExpressionAssignment_6_2(), "rule__DataInterchangeBean__ExpressionAssignment_6_2");
+					put(grammarAccess.getDataInterchangeBeanAccess().getLookupAssignment_7_2(), "rule__DataInterchangeBean__LookupAssignment_7_2");
+					put(grammarAccess.getDataInterchangeBeanAccess().getFormatAssignment_8_2(), "rule__DataInterchangeBean__FormatAssignment_8_2");
+					put(grammarAccess.getDataInterchangeBeanAccess().getMappingsAssignment_9_2(), "rule__DataInterchangeBean__MappingsAssignment_9_2");
+					put(grammarAccess.getDataInterchangeLookupAccess().getTargetPropertyAssignment_2(), "rule__DataInterchangeLookup__TargetPropertyAssignment_2");
+					put(grammarAccess.getDataInterchangeLookupAccess().getEntityAssignment_4(), "rule__DataInterchangeLookup__EntityAssignment_4");
+					put(grammarAccess.getDataInterchangeLookupAccess().getElementMapAssignment_5_1(), "rule__DataInterchangeLookup__ElementMapAssignment_5_1");
+					put(grammarAccess.getDataInterchangeLookupAccess().getQueryPropertyAssignment_7(), "rule__DataInterchangeLookup__QueryPropertyAssignment_7");
+					put(grammarAccess.getDataInterchangeLookupAccess().getCachedAssignment_8_0(), "rule__DataInterchangeLookup__CachedAssignment_8_0");
+					put(grammarAccess.getDataInterchangeLookupAccess().getCacheSizeAssignment_8_1(), "rule__DataInterchangeLookup__CacheSizeAssignment_8_1");
+					put(grammarAccess.getDataInterchangeLookupAccess().getDataMapAssignment_9_1(), "rule__DataInterchangeLookup__DataMapAssignment_9_1");
+					put(grammarAccess.getDataInterchangeLookupAccess().getAllowNoResultAssignment_10_0(), "rule__DataInterchangeLookup__AllowNoResultAssignment_10_0");
+					put(grammarAccess.getDataInterchangeLookupAccess().getAllowNonuniqueResultAssignment_10_1(), "rule__DataInterchangeLookup__AllowNonuniqueResultAssignment_10_1");
+					put(grammarAccess.getDataInterchangeLookupAccess().getMarkerPathAssignment_10_2(), "rule__DataInterchangeLookup__MarkerPathAssignment_10_2");
+					put(grammarAccess.getDataInterchangeMarkerPathAccess().getPathAssignment_3(), "rule__DataInterchangeMarkerPath__PathAssignment_3");
+					put(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerEntityAssignment_2(), "rule__DataInterchangeMarkerEntity__MarkerEntityAssignment_2");
+					put(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkLatestAssignment_3_0(), "rule__DataInterchangeMarkerEntity__MarkLatestAssignment_3_0");
+					put(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerPropertyAssignment_3_1(), "rule__DataInterchangeMarkerEntity__MarkerPropertyAssignment_3_1");
+					put(grammarAccess.getDataInterchangeFormatAccess().getTargetPropertyAssignment_2(), "rule__DataInterchangeFormat__TargetPropertyAssignment_2");
+					put(grammarAccess.getDataInterchangeFormatAccess().getFormatAssignment_4(), "rule__DataInterchangeFormat__FormatAssignment_4");
+					put(grammarAccess.getDataInterchangeFormatAccess().getLocaleAssignment_5_1(), "rule__DataInterchangeFormat__LocaleAssignment_5_1");
+					put(grammarAccess.getDataInterchangeEntityExpressionAccess().getTargetPropertyAssignment_2(), "rule__DataInterchangeEntityExpression__TargetPropertyAssignment_2");
+					put(grammarAccess.getDataInterchangeEntityExpressionAccess().getEntityAssignment_4(), "rule__DataInterchangeEntityExpression__EntityAssignment_4");
+					put(grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyAssignment_6(), "rule__DataInterchangeEntityExpression__PropertyAssignment_6");
+					put(grammarAccess.getDataInterchangePredefinedExpressionAccess().getTargetPropertyAssignment_2(), "rule__DataInterchangePredefinedExpression__TargetPropertyAssignment_2");
+					put(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanAssignment_4(), "rule__DataInterchangePredefinedExpression__BeanAssignment_4");
+					put(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanTypeAssignment_6(), "rule__DataInterchangePredefinedExpression__BeanTypeAssignment_6");
+					put(grammarAccess.getDataInterchangeMappingAccess().getPropertyAssignment_2(), "rule__DataInterchangeMapping__PropertyAssignment_2");
+					put(grammarAccess.getDataInterchangeMappingAccess().getDataAssignment_4(), "rule__DataInterchangeMapping__DataAssignment_4");
+					put(grammarAccess.getDataInterchangeImportAccess().getImportedNamespaceAssignment_1(), "rule__DataInterchangeImport__ImportedNamespaceAssignment_1");
+					put(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2(), "rule__XAnnotation__AnnotationTypeAssignment_2");
+					put(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0(), "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0");
+					put(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1(), "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1");
+					put(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1(), "rule__XAnnotation__ValueAssignment_3_1_1");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0(), "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0");
+					put(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1(), "rule__XAnnotationElementValuePair__ValueAssignment_1");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0(), "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1(), "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1");
+					put(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1(), "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1");
+					put(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0(), "rule__XAnnotationElementValue__ElementsAssignment_0_1_0");
+					put(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1(), "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1");
+					put(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1(), "rule__XAssignment__FeatureAssignment_0_1");
+					put(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3(), "rule__XAssignment__ValueAssignment_0_3");
+					put(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1(), "rule__XAssignment__FeatureAssignment_1_1_0_0_1");
+					put(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1(), "rule__XAssignment__RightOperandAssignment_1_1_1");
+					put(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XOrExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1(), "rule__XOrExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XAndExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1(), "rule__XAndExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XEqualityExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1(), "rule__XEqualityExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1(), "rule__XRelationalExpression__TypeAssignment_1_0_1");
+					put(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1(), "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1");
+					put(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1(), "rule__XRelationalExpression__RightOperandAssignment_1_1_1");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1(), "rule__XOtherOperatorExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1(), "rule__XAdditiveExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1");
+					put(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1(), "rule__XMultiplicativeExpression__RightOperandAssignment_1_1");
+					put(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1(), "rule__XUnaryOperation__FeatureAssignment_0_1");
+					put(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2(), "rule__XUnaryOperation__OperandAssignment_0_2");
+					put(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1(), "rule__XCastedExpression__TypeAssignment_1_1");
+					put(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1(), "rule__XPostfixOperation__FeatureAssignment_1_0_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1(), "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2(), "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2");
+					put(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1(), "rule__XMemberFeatureCall__ValueAssignment_1_0_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1(), "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2(), "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2");
+					put(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1(), "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1(), "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2(), "rule__XMemberFeatureCall__FeatureAssignment_1_1_2");
+					put(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0(), "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0");
+					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1");
+					put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4");
+					put(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0(), "rule__XSetLiteral__ElementsAssignment_3_0");
+					put(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1(), "rule__XSetLiteral__ElementsAssignment_3_1_1");
+					put(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0(), "rule__XListLiteral__ElementsAssignment_3_0");
+					put(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1(), "rule__XListLiteral__ElementsAssignment_3_1_1");
+					put(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0(), "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0");
+					put(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1(), "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1");
+					put(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1(), "rule__XClosure__ExplicitSyntaxAssignment_1_0_1");
+					put(grammarAccess.getXClosureAccess().getExpressionAssignment_2(), "rule__XClosure__ExpressionAssignment_2");
+					put(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0(), "rule__XExpressionInClosure__ExpressionsAssignment_1_0");
+					put(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0(), "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0");
+					put(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1(), "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1");
+					put(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2(), "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2");
+					put(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1(), "rule__XShortClosure__ExpressionAssignment_1");
+					put(grammarAccess.getXIfExpressionAccess().getIfAssignment_3(), "rule__XIfExpression__IfAssignment_3");
+					put(grammarAccess.getXIfExpressionAccess().getThenAssignment_5(), "rule__XIfExpression__ThenAssignment_5");
+					put(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1(), "rule__XIfExpression__ElseAssignment_6_1");
+					put(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1(), "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1");
+					put(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1(), "rule__XSwitchExpression__SwitchAssignment_2_0_1");
+					put(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0(), "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0");
+					put(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1(), "rule__XSwitchExpression__SwitchAssignment_2_1_1");
+					put(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4(), "rule__XSwitchExpression__CasesAssignment_4");
+					put(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2(), "rule__XSwitchExpression__DefaultAssignment_5_2");
+					put(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1(), "rule__XCasePart__TypeGuardAssignment_1");
+					put(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1(), "rule__XCasePart__CaseAssignment_2_1");
+					put(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1(), "rule__XCasePart__ThenAssignment_3_0_1");
+					put(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1(), "rule__XCasePart__FallThroughAssignment_3_1");
+					put(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3(), "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3");
+					put(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1(), "rule__XForLoopExpression__ForExpressionAssignment_1");
+					put(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3(), "rule__XForLoopExpression__EachExpressionAssignment_3");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0(), "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1(), "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5(), "rule__XBasicForLoopExpression__ExpressionAssignment_5");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0(), "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1(), "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1");
+					put(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9(), "rule__XBasicForLoopExpression__EachExpressionAssignment_9");
+					put(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3(), "rule__XWhileExpression__PredicateAssignment_3");
+					put(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5(), "rule__XWhileExpression__BodyAssignment_5");
+					put(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2(), "rule__XDoWhileExpression__BodyAssignment_2");
+					put(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5(), "rule__XDoWhileExpression__PredicateAssignment_5");
+					put(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0(), "rule__XBlockExpression__ExpressionsAssignment_2_0");
+					put(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0(), "rule__XVariableDeclaration__WriteableAssignment_1_0");
+					put(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0(), "rule__XVariableDeclaration__TypeAssignment_2_0_0_0");
+					put(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1(), "rule__XVariableDeclaration__NameAssignment_2_0_0_1");
+					put(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1(), "rule__XVariableDeclaration__NameAssignment_2_1");
+					put(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1(), "rule__XVariableDeclaration__RightAssignment_3_1");
+					put(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0(), "rule__JvmFormalParameter__ParameterTypeAssignment_0");
+					put(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1(), "rule__JvmFormalParameter__NameAssignment_1");
+					put(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0(), "rule__FullJvmFormalParameter__ParameterTypeAssignment_0");
+					put(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1(), "rule__FullJvmFormalParameter__NameAssignment_1");
+					put(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1(), "rule__XFeatureCall__TypeArgumentsAssignment_1_1");
+					put(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1(), "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2(), "rule__XFeatureCall__FeatureAssignment_2");
+					put(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0(), "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1");
+					put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_4");
+					put(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2(), "rule__XConstructorCall__ConstructorAssignment_2");
+					put(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1(), "rule__XConstructorCall__TypeArgumentsAssignment_3_1");
+					put(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1(), "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1");
+					put(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0(), "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0");
+					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0(), "rule__XConstructorCall__ArgumentsAssignment_4_1_0");
+					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0(), "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0");
+					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1(), "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1");
+					put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5(), "rule__XConstructorCall__ArgumentsAssignment_5");
+					put(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1(), "rule__XBooleanLiteral__IsTrueAssignment_1_1");
+					put(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1(), "rule__XNumberLiteral__ValueAssignment_1");
+					put(grammarAccess.getXStringLiteralAccess().getValueAssignment_1(), "rule__XStringLiteral__ValueAssignment_1");
+					put(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3(), "rule__XTypeLiteral__TypeAssignment_3");
+					put(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4(), "rule__XTypeLiteral__ArrayDimensionsAssignment_4");
+					put(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2(), "rule__XThrowExpression__ExpressionAssignment_2");
+					put(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2(), "rule__XReturnExpression__ExpressionAssignment_2");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2(), "rule__XTryCatchFinallyExpression__ExpressionAssignment_2");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0(), "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1(), "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1");
+					put(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1(), "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1(), "rule__XSynchronizedExpression__ParamAssignment_1");
+					put(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3(), "rule__XSynchronizedExpression__ExpressionAssignment_3");
+					put(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2(), "rule__XCatchClause__DeclaredParamAssignment_2");
+					put(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4(), "rule__XCatchClause__ExpressionAssignment_4");
+					put(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0(), "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0");
+					put(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1(), "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1");
+					put(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2(), "rule__XFunctionTypeRef__ReturnTypeAssignment_2");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0(), "rule__JvmParameterizedTypeReference__TypeAssignment_0");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1(), "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1");
+					put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0");
+					put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1");
+					put(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1(), "rule__JvmUpperBound__TypeReferenceAssignment_1");
+					put(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1(), "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1");
+					put(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1(), "rule__JvmLowerBound__TypeReferenceAssignment_1");
+					put(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1(), "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1");
+					put(grammarAccess.getJvmTypeParameterAccess().getNameAssignment_0(), "rule__JvmTypeParameter__NameAssignment_0");
+					put(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_0(), "rule__JvmTypeParameter__ConstraintsAssignment_1_0");
+					put(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_1(), "rule__JvmTypeParameter__ConstraintsAssignment_1_1");
+					put(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment(), "rule__XImportSection__ImportDeclarationsAssignment");
+					put(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0(), "rule__XImportDeclaration__StaticAssignment_1_0_0");
+					put(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1(), "rule__XImportDeclaration__ExtensionAssignment_1_0_1");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2(), "rule__XImportDeclaration__ImportedTypeAssignment_1_0_2");
+					put(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0(), "rule__XImportDeclaration__WildcardAssignment_1_0_3_0");
+					put(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1(), "rule__XImportDeclaration__MemberNameAssignment_1_0_3_1");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1(), "rule__XImportDeclaration__ImportedTypeAssignment_1_1");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2(), "rule__XImportDeclaration__ImportedNamespaceAssignment_1_2");
+					put(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), "rule__DataInterchangeFileCSV__UnorderedGroup_3");
+					put(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), "rule__DataInterchangeLookup__UnorderedGroup_10");
+				}
+			};
+		}
+		return nameMappings.get(element);
+	}
+	
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		try {
+			org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal.InternalDataDSLParser typedParser = (org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal.InternalDataDSLParser) parser;
+			typedParser.entryRuleDataInterchangeModel();
+			return typedParser.getFollowElements();
+		} catch(RecognitionException ex) {
+			throw new RuntimeException(ex);
+		}		
+	}
+	
+	@Override
+	protected String[] getInitialHiddenTokens() {
+		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+	}
+	
+	public DataDSLGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(DataDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/PartialDataDSLContentAssistParser.java b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/PartialDataDSLContentAssistParser.java
new file mode 100644
index 0000000..7d3d049
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/PartialDataDSLContentAssistParser.java
@@ -0,0 +1,48 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+/**
+ * @author Sebastian Zarnekow - Initial contribution and API
+ */
+@SuppressWarnings("restriction")
+public class PartialDataDSLContentAssistParser extends DataDSLParser implements IPartialContentAssistParser {
+
+	private AbstractRule rule;
+
+	public void initializeFor(AbstractRule rule) {
+		this.rule = rule;
+	}
+	
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		if (rule == null || rule.eIsProxy())
+			return Collections.emptyList();
+		String methodName = "entryRule" + rule.getName();
+		PolymorphicDispatcher<Collection<FollowElement>> dispatcher = 
+			new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+		dispatcher.invoke();
+		return parser.getFollowElements();
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g
new file mode 100644
index 0000000..76a23e8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g
@@ -0,0 +1,10014 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+grammar InternalDataDSL;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	backtrack=true;
+	
+}
+
+@lexer::header {
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal; 
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess;
+
+}
+
+@parser::members {
+ 
+ 	private DataDSLGrammarAccess grammarAccess;
+ 	
+    public void setGrammarAccess(DataDSLGrammarAccess grammarAccess) {
+    	this.grammarAccess = grammarAccess;
+    }
+    
+    @Override
+    protected Grammar getGrammar() {
+    	return grammarAccess.getGrammar();
+    }
+    
+    @Override
+    protected String getValueForTokenName(String tokenName) {
+    	return tokenName;
+    }
+
+}
+
+
+
+
+// Entry rule entryRuleDataInterchangeModel
+entryRuleDataInterchangeModel 
+:
+{ before(grammarAccess.getDataInterchangeModelRule()); }
+	 ruleDataInterchangeModel
+{ after(grammarAccess.getDataInterchangeModelRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeModel
+ruleDataInterchangeModel
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeModelAccess().getPackagesAssignment()); }
+(rule__DataInterchangeModel__PackagesAssignment)*
+{ after(grammarAccess.getDataInterchangeModelAccess().getPackagesAssignment()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangePackage
+entryRuleDataInterchangePackage 
+:
+{ before(grammarAccess.getDataInterchangePackageRule()); }
+	 ruleDataInterchangePackage
+{ after(grammarAccess.getDataInterchangePackageRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangePackage
+ruleDataInterchangePackage
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getGroup()); }
+(rule__DataInterchangePackage__Group__0)
+{ after(grammarAccess.getDataInterchangePackageAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchange
+entryRuleDataInterchange 
+:
+{ before(grammarAccess.getDataInterchangeRule()); }
+	 ruleDataInterchange
+{ after(grammarAccess.getDataInterchangeRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchange
+ruleDataInterchange
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getGroup()); }
+(rule__DataInterchange__Group__0)
+{ after(grammarAccess.getDataInterchangeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeFile
+entryRuleDataInterchangeFile 
+:
+{ before(grammarAccess.getDataInterchangeFileRule()); }
+	 ruleDataInterchangeFile
+{ after(grammarAccess.getDataInterchangeFileRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeFile
+ruleDataInterchangeFile
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeFileAccess().getAlternatives()); }
+(rule__DataInterchangeFile__Alternatives)
+{ after(grammarAccess.getDataInterchangeFileAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeFileXML
+entryRuleDataInterchangeFileXML 
+:
+{ before(grammarAccess.getDataInterchangeFileXMLRule()); }
+	 ruleDataInterchangeFileXML
+{ after(grammarAccess.getDataInterchangeFileXMLRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeFileXML
+ruleDataInterchangeFileXML
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeFileXMLAccess().getGroup()); }
+(rule__DataInterchangeFileXML__Group__0)
+{ after(grammarAccess.getDataInterchangeFileXMLAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeFileCSV
+entryRuleDataInterchangeFileCSV 
+:
+{ before(grammarAccess.getDataInterchangeFileCSVRule()); }
+	 ruleDataInterchangeFileCSV
+{ after(grammarAccess.getDataInterchangeFileCSVRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeFileCSV
+ruleDataInterchangeFileCSV
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getGroup()); }
+(rule__DataInterchangeFileCSV__Group__0)
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeFileEDI
+entryRuleDataInterchangeFileEDI 
+:
+{ before(grammarAccess.getDataInterchangeFileEDIRule()); }
+	 ruleDataInterchangeFileEDI
+{ after(grammarAccess.getDataInterchangeFileEDIRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeFileEDI
+ruleDataInterchangeFileEDI
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeFileEDIAccess().getGroup()); }
+(rule__DataInterchangeFileEDI__Group__0)
+{ after(grammarAccess.getDataInterchangeFileEDIAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeBean
+entryRuleDataInterchangeBean 
+:
+{ before(grammarAccess.getDataInterchangeBeanRule()); }
+	 ruleDataInterchangeBean
+{ after(grammarAccess.getDataInterchangeBeanRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeBean
+ruleDataInterchangeBean
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getGroup()); }
+(rule__DataInterchangeBean__Group__0)
+{ after(grammarAccess.getDataInterchangeBeanAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeLookup
+entryRuleDataInterchangeLookup 
+:
+{ before(grammarAccess.getDataInterchangeLookupRule()); }
+	 ruleDataInterchangeLookup
+{ after(grammarAccess.getDataInterchangeLookupRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeLookup
+ruleDataInterchangeLookup
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getGroup()); }
+(rule__DataInterchangeLookup__Group__0)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeMarkerPath
+entryRuleDataInterchangeMarkerPath 
+:
+{ before(grammarAccess.getDataInterchangeMarkerPathRule()); }
+	 ruleDataInterchangeMarkerPath
+{ after(grammarAccess.getDataInterchangeMarkerPathRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeMarkerPath
+ruleDataInterchangeMarkerPath
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeMarkerPathAccess().getGroup()); }
+(rule__DataInterchangeMarkerPath__Group__0)
+{ after(grammarAccess.getDataInterchangeMarkerPathAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeMarkerEntity
+entryRuleDataInterchangeMarkerEntity 
+:
+{ before(grammarAccess.getDataInterchangeMarkerEntityRule()); }
+	 ruleDataInterchangeMarkerEntity
+{ after(grammarAccess.getDataInterchangeMarkerEntityRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeMarkerEntity
+ruleDataInterchangeMarkerEntity
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeMarkerEntityAccess().getGroup()); }
+(rule__DataInterchangeMarkerEntity__Group__0)
+{ after(grammarAccess.getDataInterchangeMarkerEntityAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeFormat
+entryRuleDataInterchangeFormat 
+:
+{ before(grammarAccess.getDataInterchangeFormatRule()); }
+	 ruleDataInterchangeFormat
+{ after(grammarAccess.getDataInterchangeFormatRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeFormat
+ruleDataInterchangeFormat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeFormatAccess().getGroup()); }
+(rule__DataInterchangeFormat__Group__0)
+{ after(grammarAccess.getDataInterchangeFormatAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeExpression
+entryRuleDataInterchangeExpression 
+:
+{ before(grammarAccess.getDataInterchangeExpressionRule()); }
+	 ruleDataInterchangeExpression
+{ after(grammarAccess.getDataInterchangeExpressionRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeExpression
+ruleDataInterchangeExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeExpressionAccess().getAlternatives()); }
+(rule__DataInterchangeExpression__Alternatives)
+{ after(grammarAccess.getDataInterchangeExpressionAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeEntityExpression
+entryRuleDataInterchangeEntityExpression 
+:
+{ before(grammarAccess.getDataInterchangeEntityExpressionRule()); }
+	 ruleDataInterchangeEntityExpression
+{ after(grammarAccess.getDataInterchangeEntityExpressionRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeEntityExpression
+ruleDataInterchangeEntityExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeEntityExpressionAccess().getGroup()); }
+(rule__DataInterchangeEntityExpression__Group__0)
+{ after(grammarAccess.getDataInterchangeEntityExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangePredefinedExpression
+entryRuleDataInterchangePredefinedExpression 
+:
+{ before(grammarAccess.getDataInterchangePredefinedExpressionRule()); }
+	 ruleDataInterchangePredefinedExpression
+{ after(grammarAccess.getDataInterchangePredefinedExpressionRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangePredefinedExpression
+ruleDataInterchangePredefinedExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangePredefinedExpressionAccess().getGroup()); }
+(rule__DataInterchangePredefinedExpression__Group__0)
+{ after(grammarAccess.getDataInterchangePredefinedExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeMapping
+entryRuleDataInterchangeMapping 
+:
+{ before(grammarAccess.getDataInterchangeMappingRule()); }
+	 ruleDataInterchangeMapping
+{ after(grammarAccess.getDataInterchangeMappingRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeMapping
+ruleDataInterchangeMapping
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeMappingAccess().getGroup()); }
+(rule__DataInterchangeMapping__Group__0)
+{ after(grammarAccess.getDataInterchangeMappingAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeImport
+entryRuleDataInterchangeImport 
+:
+{ before(grammarAccess.getDataInterchangeImportRule()); }
+	 ruleDataInterchangeImport
+{ after(grammarAccess.getDataInterchangeImportRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeImport
+ruleDataInterchangeImport
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeImportAccess().getGroup()); }
+(rule__DataInterchangeImport__Group__0)
+{ after(grammarAccess.getDataInterchangeImportAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataInterchangeQualifiedNameWithWildCard
+entryRuleDataInterchangeQualifiedNameWithWildCard 
+:
+{ before(grammarAccess.getDataInterchangeQualifiedNameWithWildCardRule()); }
+	 ruleDataInterchangeQualifiedNameWithWildCard
+{ after(grammarAccess.getDataInterchangeQualifiedNameWithWildCardRule()); } 
+	 EOF 
+;
+
+// Rule DataInterchangeQualifiedNameWithWildCard
+ruleDataInterchangeQualifiedNameWithWildCard
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getGroup()); }
+(rule__DataInterchangeQualifiedNameWithWildCard__Group__0)
+{ after(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleQualifiedName
+entryRuleQualifiedName 
+:
+{ before(grammarAccess.getQualifiedNameRule()); }
+	 ruleQualifiedName
+{ after(grammarAccess.getQualifiedNameRule()); } 
+	 EOF 
+;
+
+// Rule QualifiedName
+ruleQualifiedName
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getGroup()); }
+(rule__QualifiedName__Group__0)
+{ after(grammarAccess.getQualifiedNameAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleValidID
+entryRuleValidID 
+:
+{ before(grammarAccess.getValidIDRule()); }
+	 ruleValidID
+{ after(grammarAccess.getValidIDRule()); } 
+	 EOF 
+;
+
+// Rule ValidID
+ruleValidID
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
+	RULE_ID
+{ after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLFQN
+entryRuleLFQN 
+:
+{ before(grammarAccess.getLFQNRule()); }
+	 ruleLFQN
+{ after(grammarAccess.getLFQNRule()); } 
+	 EOF 
+;
+
+// Rule LFQN
+ruleLFQN
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLFQNAccess().getGroup()); }
+(rule__LFQN__Group__0)
+{ after(grammarAccess.getLFQNAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTRANSLATABLESTRING
+entryRuleTRANSLATABLESTRING 
+:
+{ before(grammarAccess.getTRANSLATABLESTRINGRule()); }
+	 ruleTRANSLATABLESTRING
+{ after(grammarAccess.getTRANSLATABLESTRINGRule()); } 
+	 EOF 
+;
+
+// Rule TRANSLATABLESTRING
+ruleTRANSLATABLESTRING
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); }
+	RULE_STRING
+{ after(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTRANSLATABLEID
+entryRuleTRANSLATABLEID 
+:
+{ before(grammarAccess.getTRANSLATABLEIDRule()); }
+	 ruleTRANSLATABLEID
+{ after(grammarAccess.getTRANSLATABLEIDRule()); } 
+	 EOF 
+;
+
+// Rule TRANSLATABLEID
+ruleTRANSLATABLEID
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); }
+	RULE_ID
+{ after(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAnnotation
+entryRuleXAnnotation 
+:
+{ before(grammarAccess.getXAnnotationRule()); }
+	 ruleXAnnotation
+{ after(grammarAccess.getXAnnotationRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotation
+ruleXAnnotation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXAnnotationAccess().getGroup()); }
+(rule__XAnnotation__Group__0)
+{ after(grammarAccess.getXAnnotationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAnnotationElementValuePair
+entryRuleXAnnotationElementValuePair 
+:
+{ before(grammarAccess.getXAnnotationElementValuePairRule()); }
+	 ruleXAnnotationElementValuePair
+{ after(grammarAccess.getXAnnotationElementValuePairRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotationElementValuePair
+ruleXAnnotationElementValuePair
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); }
+(rule__XAnnotationElementValuePair__Group__0)
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAnnotationElementValueOrCommaList
+entryRuleXAnnotationElementValueOrCommaList 
+:
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); }
+	 ruleXAnnotationElementValueOrCommaList
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotationElementValueOrCommaList
+ruleXAnnotationElementValueOrCommaList
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); }
+(rule__XAnnotationElementValueOrCommaList__Alternatives)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAnnotationElementValue
+entryRuleXAnnotationElementValue 
+:
+{ before(grammarAccess.getXAnnotationElementValueRule()); }
+	 ruleXAnnotationElementValue
+{ after(grammarAccess.getXAnnotationElementValueRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotationElementValue
+ruleXAnnotationElementValue
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); }
+(rule__XAnnotationElementValue__Alternatives)
+{ after(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAnnotationOrExpression
+entryRuleXAnnotationOrExpression 
+:
+{ before(grammarAccess.getXAnnotationOrExpressionRule()); }
+	 ruleXAnnotationOrExpression
+{ after(grammarAccess.getXAnnotationOrExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XAnnotationOrExpression
+ruleXAnnotationOrExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); }
+(rule__XAnnotationOrExpression__Alternatives)
+{ after(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXExpression
+entryRuleXExpression 
+:
+{ before(grammarAccess.getXExpressionRule()); }
+	 ruleXExpression
+{ after(grammarAccess.getXExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XExpression
+ruleXExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
+	ruleXAssignment
+{ after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAssignment
+entryRuleXAssignment 
+:
+{ before(grammarAccess.getXAssignmentRule()); }
+	 ruleXAssignment
+{ after(grammarAccess.getXAssignmentRule()); } 
+	 EOF 
+;
+
+// Rule XAssignment
+ruleXAssignment
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXAssignmentAccess().getAlternatives()); }
+(rule__XAssignment__Alternatives)
+{ after(grammarAccess.getXAssignmentAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpSingleAssign
+entryRuleOpSingleAssign 
+:
+{ before(grammarAccess.getOpSingleAssignRule()); }
+	 ruleOpSingleAssign
+{ after(grammarAccess.getOpSingleAssignRule()); } 
+	 EOF 
+;
+
+// Rule OpSingleAssign
+ruleOpSingleAssign
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }
+
+	'=' 
+
+{ after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpMultiAssign
+entryRuleOpMultiAssign 
+:
+{ before(grammarAccess.getOpMultiAssignRule()); }
+	 ruleOpMultiAssign
+{ after(grammarAccess.getOpMultiAssignRule()); } 
+	 EOF 
+;
+
+// Rule OpMultiAssign
+ruleOpMultiAssign
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
+(rule__OpMultiAssign__Alternatives)
+{ after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXOrExpression
+entryRuleXOrExpression 
+:
+{ before(grammarAccess.getXOrExpressionRule()); }
+	 ruleXOrExpression
+{ after(grammarAccess.getXOrExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XOrExpression
+ruleXOrExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getGroup()); }
+(rule__XOrExpression__Group__0)
+{ after(grammarAccess.getXOrExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpOr
+entryRuleOpOr 
+:
+{ before(grammarAccess.getOpOrRule()); }
+	 ruleOpOr
+{ after(grammarAccess.getOpOrRule()); } 
+	 EOF 
+;
+
+// Rule OpOr
+ruleOpOr
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }
+
+	'||' 
+
+{ after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAndExpression
+entryRuleXAndExpression 
+:
+{ before(grammarAccess.getXAndExpressionRule()); }
+	 ruleXAndExpression
+{ after(grammarAccess.getXAndExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XAndExpression
+ruleXAndExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getGroup()); }
+(rule__XAndExpression__Group__0)
+{ after(grammarAccess.getXAndExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpAnd
+entryRuleOpAnd 
+:
+{ before(grammarAccess.getOpAndRule()); }
+	 ruleOpAnd
+{ after(grammarAccess.getOpAndRule()); } 
+	 EOF 
+;
+
+// Rule OpAnd
+ruleOpAnd
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }
+
+	'&&' 
+
+{ after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXEqualityExpression
+entryRuleXEqualityExpression 
+:
+{ before(grammarAccess.getXEqualityExpressionRule()); }
+	 ruleXEqualityExpression
+{ after(grammarAccess.getXEqualityExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XEqualityExpression
+ruleXEqualityExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
+(rule__XEqualityExpression__Group__0)
+{ after(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpEquality
+entryRuleOpEquality 
+:
+{ before(grammarAccess.getOpEqualityRule()); }
+	 ruleOpEquality
+{ after(grammarAccess.getOpEqualityRule()); } 
+	 EOF 
+;
+
+// Rule OpEquality
+ruleOpEquality
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpEqualityAccess().getAlternatives()); }
+(rule__OpEquality__Alternatives)
+{ after(grammarAccess.getOpEqualityAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXRelationalExpression
+entryRuleXRelationalExpression 
+:
+{ before(grammarAccess.getXRelationalExpressionRule()); }
+	 ruleXRelationalExpression
+{ after(grammarAccess.getXRelationalExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XRelationalExpression
+ruleXRelationalExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
+(rule__XRelationalExpression__Group__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpCompare
+entryRuleOpCompare 
+:
+{ before(grammarAccess.getOpCompareRule()); }
+	 ruleOpCompare
+{ after(grammarAccess.getOpCompareRule()); } 
+	 EOF 
+;
+
+// Rule OpCompare
+ruleOpCompare
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpCompareAccess().getAlternatives()); }
+(rule__OpCompare__Alternatives)
+{ after(grammarAccess.getOpCompareAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXOtherOperatorExpression
+entryRuleXOtherOperatorExpression 
+:
+{ before(grammarAccess.getXOtherOperatorExpressionRule()); }
+	 ruleXOtherOperatorExpression
+{ after(grammarAccess.getXOtherOperatorExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XOtherOperatorExpression
+ruleXOtherOperatorExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
+(rule__XOtherOperatorExpression__Group__0)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpOther
+entryRuleOpOther 
+:
+{ before(grammarAccess.getOpOtherRule()); }
+	 ruleOpOther
+{ after(grammarAccess.getOpOtherRule()); } 
+	 EOF 
+;
+
+// Rule OpOther
+ruleOpOther
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpOtherAccess().getAlternatives()); }
+(rule__OpOther__Alternatives)
+{ after(grammarAccess.getOpOtherAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAdditiveExpression
+entryRuleXAdditiveExpression 
+:
+{ before(grammarAccess.getXAdditiveExpressionRule()); }
+	 ruleXAdditiveExpression
+{ after(grammarAccess.getXAdditiveExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XAdditiveExpression
+ruleXAdditiveExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
+(rule__XAdditiveExpression__Group__0)
+{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpAdd
+entryRuleOpAdd 
+:
+{ before(grammarAccess.getOpAddRule()); }
+	 ruleOpAdd
+{ after(grammarAccess.getOpAddRule()); } 
+	 EOF 
+;
+
+// Rule OpAdd
+ruleOpAdd
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpAddAccess().getAlternatives()); }
+(rule__OpAdd__Alternatives)
+{ after(grammarAccess.getOpAddAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXMultiplicativeExpression
+entryRuleXMultiplicativeExpression 
+:
+{ before(grammarAccess.getXMultiplicativeExpressionRule()); }
+	 ruleXMultiplicativeExpression
+{ after(grammarAccess.getXMultiplicativeExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XMultiplicativeExpression
+ruleXMultiplicativeExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
+(rule__XMultiplicativeExpression__Group__0)
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpMulti
+entryRuleOpMulti 
+:
+{ before(grammarAccess.getOpMultiRule()); }
+	 ruleOpMulti
+{ after(grammarAccess.getOpMultiRule()); } 
+	 EOF 
+;
+
+// Rule OpMulti
+ruleOpMulti
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpMultiAccess().getAlternatives()); }
+(rule__OpMulti__Alternatives)
+{ after(grammarAccess.getOpMultiAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXUnaryOperation
+entryRuleXUnaryOperation 
+:
+{ before(grammarAccess.getXUnaryOperationRule()); }
+	 ruleXUnaryOperation
+{ after(grammarAccess.getXUnaryOperationRule()); } 
+	 EOF 
+;
+
+// Rule XUnaryOperation
+ruleXUnaryOperation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
+(rule__XUnaryOperation__Alternatives)
+{ after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpUnary
+entryRuleOpUnary 
+:
+{ before(grammarAccess.getOpUnaryRule()); }
+	 ruleOpUnary
+{ after(grammarAccess.getOpUnaryRule()); } 
+	 EOF 
+;
+
+// Rule OpUnary
+ruleOpUnary
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpUnaryAccess().getAlternatives()); }
+(rule__OpUnary__Alternatives)
+{ after(grammarAccess.getOpUnaryAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXCastedExpression
+entryRuleXCastedExpression 
+:
+{ before(grammarAccess.getXCastedExpressionRule()); }
+	 ruleXCastedExpression
+{ after(grammarAccess.getXCastedExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XCastedExpression
+ruleXCastedExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getGroup()); }
+(rule__XCastedExpression__Group__0)
+{ after(grammarAccess.getXCastedExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXPostfixOperation
+entryRuleXPostfixOperation 
+:
+{ before(grammarAccess.getXPostfixOperationRule()); }
+	 ruleXPostfixOperation
+{ after(grammarAccess.getXPostfixOperationRule()); } 
+	 EOF 
+;
+
+// Rule XPostfixOperation
+ruleXPostfixOperation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXPostfixOperationAccess().getGroup()); }
+(rule__XPostfixOperation__Group__0)
+{ after(grammarAccess.getXPostfixOperationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpPostfix
+entryRuleOpPostfix 
+:
+{ before(grammarAccess.getOpPostfixRule()); }
+	 ruleOpPostfix
+{ after(grammarAccess.getOpPostfixRule()); } 
+	 EOF 
+;
+
+// Rule OpPostfix
+ruleOpPostfix
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getOpPostfixAccess().getAlternatives()); }
+(rule__OpPostfix__Alternatives)
+{ after(grammarAccess.getOpPostfixAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXMemberFeatureCall
+entryRuleXMemberFeatureCall 
+:
+{ before(grammarAccess.getXMemberFeatureCallRule()); }
+	 ruleXMemberFeatureCall
+{ after(grammarAccess.getXMemberFeatureCallRule()); } 
+	 EOF 
+;
+
+// Rule XMemberFeatureCall
+ruleXMemberFeatureCall
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
+(rule__XMemberFeatureCall__Group__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXPrimaryExpression
+entryRuleXPrimaryExpression 
+:
+{ before(grammarAccess.getXPrimaryExpressionRule()); }
+	 ruleXPrimaryExpression
+{ after(grammarAccess.getXPrimaryExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XPrimaryExpression
+ruleXPrimaryExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
+(rule__XPrimaryExpression__Alternatives)
+{ after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXLiteral
+entryRuleXLiteral 
+:
+{ before(grammarAccess.getXLiteralRule()); }
+	 ruleXLiteral
+{ after(grammarAccess.getXLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XLiteral
+ruleXLiteral
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXLiteralAccess().getAlternatives()); }
+(rule__XLiteral__Alternatives)
+{ after(grammarAccess.getXLiteralAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXCollectionLiteral
+entryRuleXCollectionLiteral 
+:
+{ before(grammarAccess.getXCollectionLiteralRule()); }
+	 ruleXCollectionLiteral
+{ after(grammarAccess.getXCollectionLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XCollectionLiteral
+ruleXCollectionLiteral
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
+(rule__XCollectionLiteral__Alternatives)
+{ after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXSetLiteral
+entryRuleXSetLiteral 
+:
+{ before(grammarAccess.getXSetLiteralRule()); }
+	 ruleXSetLiteral
+{ after(grammarAccess.getXSetLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XSetLiteral
+ruleXSetLiteral
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getGroup()); }
+(rule__XSetLiteral__Group__0)
+{ after(grammarAccess.getXSetLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXListLiteral
+entryRuleXListLiteral 
+:
+{ before(grammarAccess.getXListLiteralRule()); }
+	 ruleXListLiteral
+{ after(grammarAccess.getXListLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XListLiteral
+ruleXListLiteral
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXListLiteralAccess().getGroup()); }
+(rule__XListLiteral__Group__0)
+{ after(grammarAccess.getXListLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXClosure
+entryRuleXClosure 
+:
+{ before(grammarAccess.getXClosureRule()); }
+	 ruleXClosure
+{ after(grammarAccess.getXClosureRule()); } 
+	 EOF 
+;
+
+// Rule XClosure
+ruleXClosure
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXClosureAccess().getGroup()); }
+(rule__XClosure__Group__0)
+{ after(grammarAccess.getXClosureAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXExpressionInClosure
+entryRuleXExpressionInClosure 
+:
+{ before(grammarAccess.getXExpressionInClosureRule()); }
+	 ruleXExpressionInClosure
+{ after(grammarAccess.getXExpressionInClosureRule()); } 
+	 EOF 
+;
+
+// Rule XExpressionInClosure
+ruleXExpressionInClosure
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
+(rule__XExpressionInClosure__Group__0)
+{ after(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXShortClosure
+entryRuleXShortClosure 
+:
+{ before(grammarAccess.getXShortClosureRule()); }
+	 ruleXShortClosure
+{ after(grammarAccess.getXShortClosureRule()); } 
+	 EOF 
+;
+
+// Rule XShortClosure
+ruleXShortClosure
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXShortClosureAccess().getGroup()); }
+(rule__XShortClosure__Group__0)
+{ after(grammarAccess.getXShortClosureAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXParenthesizedExpression
+entryRuleXParenthesizedExpression 
+:
+{ before(grammarAccess.getXParenthesizedExpressionRule()); }
+	 ruleXParenthesizedExpression
+{ after(grammarAccess.getXParenthesizedExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XParenthesizedExpression
+ruleXParenthesizedExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
+(rule__XParenthesizedExpression__Group__0)
+{ after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXIfExpression
+entryRuleXIfExpression 
+:
+{ before(grammarAccess.getXIfExpressionRule()); }
+	 ruleXIfExpression
+{ after(grammarAccess.getXIfExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XIfExpression
+ruleXIfExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getGroup()); }
+(rule__XIfExpression__Group__0)
+{ after(grammarAccess.getXIfExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXSwitchExpression
+entryRuleXSwitchExpression 
+:
+{ before(grammarAccess.getXSwitchExpressionRule()); }
+	 ruleXSwitchExpression
+{ after(grammarAccess.getXSwitchExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XSwitchExpression
+ruleXSwitchExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
+(rule__XSwitchExpression__Group__0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXCasePart
+entryRuleXCasePart 
+:
+{ before(grammarAccess.getXCasePartRule()); }
+	 ruleXCasePart
+{ after(grammarAccess.getXCasePartRule()); } 
+	 EOF 
+;
+
+// Rule XCasePart
+ruleXCasePart
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXCasePartAccess().getGroup()); }
+(rule__XCasePart__Group__0)
+{ after(grammarAccess.getXCasePartAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXForLoopExpression
+entryRuleXForLoopExpression 
+:
+{ before(grammarAccess.getXForLoopExpressionRule()); }
+	 ruleXForLoopExpression
+{ after(grammarAccess.getXForLoopExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XForLoopExpression
+ruleXForLoopExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
+(rule__XForLoopExpression__Group__0)
+{ after(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXBasicForLoopExpression
+entryRuleXBasicForLoopExpression 
+:
+{ before(grammarAccess.getXBasicForLoopExpressionRule()); }
+	 ruleXBasicForLoopExpression
+{ after(grammarAccess.getXBasicForLoopExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XBasicForLoopExpression
+ruleXBasicForLoopExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); }
+(rule__XBasicForLoopExpression__Group__0)
+{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXWhileExpression
+entryRuleXWhileExpression 
+:
+{ before(grammarAccess.getXWhileExpressionRule()); }
+	 ruleXWhileExpression
+{ after(grammarAccess.getXWhileExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XWhileExpression
+ruleXWhileExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getGroup()); }
+(rule__XWhileExpression__Group__0)
+{ after(grammarAccess.getXWhileExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXDoWhileExpression
+entryRuleXDoWhileExpression 
+:
+{ before(grammarAccess.getXDoWhileExpressionRule()); }
+	 ruleXDoWhileExpression
+{ after(grammarAccess.getXDoWhileExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XDoWhileExpression
+ruleXDoWhileExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
+(rule__XDoWhileExpression__Group__0)
+{ after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXBlockExpression
+entryRuleXBlockExpression 
+:
+{ before(grammarAccess.getXBlockExpressionRule()); }
+	 ruleXBlockExpression
+{ after(grammarAccess.getXBlockExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XBlockExpression
+ruleXBlockExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXBlockExpressionAccess().getGroup()); }
+(rule__XBlockExpression__Group__0)
+{ after(grammarAccess.getXBlockExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXExpressionOrVarDeclaration
+entryRuleXExpressionOrVarDeclaration 
+:
+{ before(grammarAccess.getXExpressionOrVarDeclarationRule()); }
+	 ruleXExpressionOrVarDeclaration
+{ after(grammarAccess.getXExpressionOrVarDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule XExpressionOrVarDeclaration
+ruleXExpressionOrVarDeclaration
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); }
+(rule__XExpressionOrVarDeclaration__Alternatives)
+{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXVariableDeclaration
+entryRuleXVariableDeclaration 
+:
+{ before(grammarAccess.getXVariableDeclarationRule()); }
+	 ruleXVariableDeclaration
+{ after(grammarAccess.getXVariableDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule XVariableDeclaration
+ruleXVariableDeclaration
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
+(rule__XVariableDeclaration__Group__0)
+{ after(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmFormalParameter
+entryRuleJvmFormalParameter 
+:
+{ before(grammarAccess.getJvmFormalParameterRule()); }
+	 ruleJvmFormalParameter
+{ after(grammarAccess.getJvmFormalParameterRule()); } 
+	 EOF 
+;
+
+// Rule JvmFormalParameter
+ruleJvmFormalParameter
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
+(rule__JvmFormalParameter__Group__0)
+{ after(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFullJvmFormalParameter
+entryRuleFullJvmFormalParameter 
+:
+{ before(grammarAccess.getFullJvmFormalParameterRule()); }
+	 ruleFullJvmFormalParameter
+{ after(grammarAccess.getFullJvmFormalParameterRule()); } 
+	 EOF 
+;
+
+// Rule FullJvmFormalParameter
+ruleFullJvmFormalParameter
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
+(rule__FullJvmFormalParameter__Group__0)
+{ after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXFeatureCall
+entryRuleXFeatureCall 
+:
+{ before(grammarAccess.getXFeatureCallRule()); }
+	 ruleXFeatureCall
+{ after(grammarAccess.getXFeatureCallRule()); } 
+	 EOF 
+;
+
+// Rule XFeatureCall
+ruleXFeatureCall
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getGroup()); }
+(rule__XFeatureCall__Group__0)
+{ after(grammarAccess.getXFeatureCallAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFeatureCallID
+entryRuleFeatureCallID 
+:
+{ before(grammarAccess.getFeatureCallIDRule()); }
+	 ruleFeatureCallID
+{ after(grammarAccess.getFeatureCallIDRule()); } 
+	 EOF 
+;
+
+// Rule FeatureCallID
+ruleFeatureCallID
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
+(rule__FeatureCallID__Alternatives)
+{ after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleIdOrSuper
+entryRuleIdOrSuper 
+:
+{ before(grammarAccess.getIdOrSuperRule()); }
+	 ruleIdOrSuper
+{ after(grammarAccess.getIdOrSuperRule()); } 
+	 EOF 
+;
+
+// Rule IdOrSuper
+ruleIdOrSuper
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
+(rule__IdOrSuper__Alternatives)
+{ after(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXConstructorCall
+entryRuleXConstructorCall 
+:
+{ before(grammarAccess.getXConstructorCallRule()); }
+	 ruleXConstructorCall
+{ after(grammarAccess.getXConstructorCallRule()); } 
+	 EOF 
+;
+
+// Rule XConstructorCall
+ruleXConstructorCall
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getGroup()); }
+(rule__XConstructorCall__Group__0)
+{ after(grammarAccess.getXConstructorCallAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXBooleanLiteral
+entryRuleXBooleanLiteral 
+:
+{ before(grammarAccess.getXBooleanLiteralRule()); }
+	 ruleXBooleanLiteral
+{ after(grammarAccess.getXBooleanLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XBooleanLiteral
+ruleXBooleanLiteral
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
+(rule__XBooleanLiteral__Group__0)
+{ after(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXNullLiteral
+entryRuleXNullLiteral 
+:
+{ before(grammarAccess.getXNullLiteralRule()); }
+	 ruleXNullLiteral
+{ after(grammarAccess.getXNullLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XNullLiteral
+ruleXNullLiteral
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXNullLiteralAccess().getGroup()); }
+(rule__XNullLiteral__Group__0)
+{ after(grammarAccess.getXNullLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXNumberLiteral
+entryRuleXNumberLiteral 
+:
+{ before(grammarAccess.getXNumberLiteralRule()); }
+	 ruleXNumberLiteral
+{ after(grammarAccess.getXNumberLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XNumberLiteral
+ruleXNumberLiteral
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXNumberLiteralAccess().getGroup()); }
+(rule__XNumberLiteral__Group__0)
+{ after(grammarAccess.getXNumberLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXStringLiteral
+entryRuleXStringLiteral 
+:
+{ before(grammarAccess.getXStringLiteralRule()); }
+	 ruleXStringLiteral
+{ after(grammarAccess.getXStringLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XStringLiteral
+ruleXStringLiteral
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXStringLiteralAccess().getGroup()); }
+(rule__XStringLiteral__Group__0)
+{ after(grammarAccess.getXStringLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXTypeLiteral
+entryRuleXTypeLiteral 
+:
+{ before(grammarAccess.getXTypeLiteralRule()); }
+	 ruleXTypeLiteral
+{ after(grammarAccess.getXTypeLiteralRule()); } 
+	 EOF 
+;
+
+// Rule XTypeLiteral
+ruleXTypeLiteral
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getGroup()); }
+(rule__XTypeLiteral__Group__0)
+{ after(grammarAccess.getXTypeLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXThrowExpression
+entryRuleXThrowExpression 
+:
+{ before(grammarAccess.getXThrowExpressionRule()); }
+	 ruleXThrowExpression
+{ after(grammarAccess.getXThrowExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XThrowExpression
+ruleXThrowExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXThrowExpressionAccess().getGroup()); }
+(rule__XThrowExpression__Group__0)
+{ after(grammarAccess.getXThrowExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXReturnExpression
+entryRuleXReturnExpression 
+:
+{ before(grammarAccess.getXReturnExpressionRule()); }
+	 ruleXReturnExpression
+{ after(grammarAccess.getXReturnExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XReturnExpression
+ruleXReturnExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXReturnExpressionAccess().getGroup()); }
+(rule__XReturnExpression__Group__0)
+{ after(grammarAccess.getXReturnExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXTryCatchFinallyExpression
+entryRuleXTryCatchFinallyExpression 
+:
+{ before(grammarAccess.getXTryCatchFinallyExpressionRule()); }
+	 ruleXTryCatchFinallyExpression
+{ after(grammarAccess.getXTryCatchFinallyExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XTryCatchFinallyExpression
+ruleXTryCatchFinallyExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
+(rule__XTryCatchFinallyExpression__Group__0)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXSynchronizedExpression
+entryRuleXSynchronizedExpression 
+:
+{ before(grammarAccess.getXSynchronizedExpressionRule()); }
+	 ruleXSynchronizedExpression
+{ after(grammarAccess.getXSynchronizedExpressionRule()); } 
+	 EOF 
+;
+
+// Rule XSynchronizedExpression
+ruleXSynchronizedExpression
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); }
+(rule__XSynchronizedExpression__Group__0)
+{ after(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXCatchClause
+entryRuleXCatchClause 
+:
+{ before(grammarAccess.getXCatchClauseRule()); }
+	 ruleXCatchClause
+{ after(grammarAccess.getXCatchClauseRule()); } 
+	 EOF 
+;
+
+// Rule XCatchClause
+ruleXCatchClause
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXCatchClauseAccess().getGroup()); }
+(rule__XCatchClause__Group__0)
+{ after(grammarAccess.getXCatchClauseAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNumber
+entryRuleNumber 
+@init {
+	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+}
+:
+{ before(grammarAccess.getNumberRule()); }
+	 ruleNumber
+{ after(grammarAccess.getNumberRule()); } 
+	 EOF 
+;
+finally {
+	myHiddenTokenState.restore();
+}
+
+// Rule Number
+ruleNumber
+    @init {
+		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNumberAccess().getAlternatives()); }
+(rule__Number__Alternatives)
+{ after(grammarAccess.getNumberAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+	myHiddenTokenState.restore();
+}
+
+
+
+
+
+// Entry rule entryRuleJvmTypeReference
+entryRuleJvmTypeReference 
+:
+{ before(grammarAccess.getJvmTypeReferenceRule()); }
+	 ruleJvmTypeReference
+{ after(grammarAccess.getJvmTypeReferenceRule()); } 
+	 EOF 
+;
+
+// Rule JvmTypeReference
+ruleJvmTypeReference
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
+(rule__JvmTypeReference__Alternatives)
+{ after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleArrayBrackets
+entryRuleArrayBrackets 
+:
+{ before(grammarAccess.getArrayBracketsRule()); }
+	 ruleArrayBrackets
+{ after(grammarAccess.getArrayBracketsRule()); } 
+	 EOF 
+;
+
+// Rule ArrayBrackets
+ruleArrayBrackets
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getArrayBracketsAccess().getGroup()); }
+(rule__ArrayBrackets__Group__0)
+{ after(grammarAccess.getArrayBracketsAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXFunctionTypeRef
+entryRuleXFunctionTypeRef 
+:
+{ before(grammarAccess.getXFunctionTypeRefRule()); }
+	 ruleXFunctionTypeRef
+{ after(grammarAccess.getXFunctionTypeRefRule()); } 
+	 EOF 
+;
+
+// Rule XFunctionTypeRef
+ruleXFunctionTypeRef
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
+(rule__XFunctionTypeRef__Group__0)
+{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmParameterizedTypeReference
+entryRuleJvmParameterizedTypeReference 
+:
+{ before(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
+	 ruleJvmParameterizedTypeReference
+{ after(grammarAccess.getJvmParameterizedTypeReferenceRule()); } 
+	 EOF 
+;
+
+// Rule JvmParameterizedTypeReference
+ruleJvmParameterizedTypeReference
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
+(rule__JvmParameterizedTypeReference__Group__0)
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmArgumentTypeReference
+entryRuleJvmArgumentTypeReference 
+:
+{ before(grammarAccess.getJvmArgumentTypeReferenceRule()); }
+	 ruleJvmArgumentTypeReference
+{ after(grammarAccess.getJvmArgumentTypeReferenceRule()); } 
+	 EOF 
+;
+
+// Rule JvmArgumentTypeReference
+ruleJvmArgumentTypeReference
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
+(rule__JvmArgumentTypeReference__Alternatives)
+{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmWildcardTypeReference
+entryRuleJvmWildcardTypeReference 
+:
+{ before(grammarAccess.getJvmWildcardTypeReferenceRule()); }
+	 ruleJvmWildcardTypeReference
+{ after(grammarAccess.getJvmWildcardTypeReferenceRule()); } 
+	 EOF 
+;
+
+// Rule JvmWildcardTypeReference
+ruleJvmWildcardTypeReference
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
+(rule__JvmWildcardTypeReference__Group__0)
+{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmUpperBound
+entryRuleJvmUpperBound 
+:
+{ before(grammarAccess.getJvmUpperBoundRule()); }
+	 ruleJvmUpperBound
+{ after(grammarAccess.getJvmUpperBoundRule()); } 
+	 EOF 
+;
+
+// Rule JvmUpperBound
+ruleJvmUpperBound
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
+(rule__JvmUpperBound__Group__0)
+{ after(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmUpperBoundAnded
+entryRuleJvmUpperBoundAnded 
+:
+{ before(grammarAccess.getJvmUpperBoundAndedRule()); }
+	 ruleJvmUpperBoundAnded
+{ after(grammarAccess.getJvmUpperBoundAndedRule()); } 
+	 EOF 
+;
+
+// Rule JvmUpperBoundAnded
+ruleJvmUpperBoundAnded
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
+(rule__JvmUpperBoundAnded__Group__0)
+{ after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmLowerBound
+entryRuleJvmLowerBound 
+:
+{ before(grammarAccess.getJvmLowerBoundRule()); }
+	 ruleJvmLowerBound
+{ after(grammarAccess.getJvmLowerBoundRule()); } 
+	 EOF 
+;
+
+// Rule JvmLowerBound
+ruleJvmLowerBound
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
+(rule__JvmLowerBound__Group__0)
+{ after(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmLowerBoundAnded
+entryRuleJvmLowerBoundAnded 
+:
+{ before(grammarAccess.getJvmLowerBoundAndedRule()); }
+	 ruleJvmLowerBoundAnded
+{ after(grammarAccess.getJvmLowerBoundAndedRule()); } 
+	 EOF 
+;
+
+// Rule JvmLowerBoundAnded
+ruleJvmLowerBoundAnded
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); }
+(rule__JvmLowerBoundAnded__Group__0)
+{ after(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleQualifiedNameWithWildcard
+entryRuleQualifiedNameWithWildcard 
+:
+{ before(grammarAccess.getQualifiedNameWithWildcardRule()); }
+	 ruleQualifiedNameWithWildcard
+{ after(grammarAccess.getQualifiedNameWithWildcardRule()); } 
+	 EOF 
+;
+
+// Rule QualifiedNameWithWildcard
+ruleQualifiedNameWithWildcard
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
+(rule__QualifiedNameWithWildcard__Group__0)
+{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleXImportDeclaration
+entryRuleXImportDeclaration 
+:
+{ before(grammarAccess.getXImportDeclarationRule()); }
+	 ruleXImportDeclaration
+{ after(grammarAccess.getXImportDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule XImportDeclaration
+ruleXImportDeclaration
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getGroup()); }
+(rule__XImportDeclaration__Group__0)
+{ after(grammarAccess.getXImportDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleQualifiedNameInStaticImport
+entryRuleQualifiedNameInStaticImport 
+:
+{ before(grammarAccess.getQualifiedNameInStaticImportRule()); }
+	 ruleQualifiedNameInStaticImport
+{ after(grammarAccess.getQualifiedNameInStaticImportRule()); } 
+	 EOF 
+;
+
+// Rule QualifiedNameInStaticImport
+ruleQualifiedNameInStaticImport
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+(
+{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
+(rule__QualifiedNameInStaticImport__Group__0)
+{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
+)
+(
+{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
+(rule__QualifiedNameInStaticImport__Group__0)*
+{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); }
+)
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+// Rule PredefinedBeanEnum
+rulePredefinedBeanEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPredefinedBeanEnumAccess().getAlternatives()); }
+(rule__PredefinedBeanEnum__Alternatives)
+{ after(grammarAccess.getPredefinedBeanEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule PredefinedBeanTypeEnum
+rulePredefinedBeanTypeEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPredefinedBeanTypeEnumAccess().getAlternatives()); }
+(rule__PredefinedBeanTypeEnum__Alternatives)
+{ after(grammarAccess.getPredefinedBeanTypeEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule ProgressBarStylesEnum
+ruleProgressBarStylesEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProgressBarStylesEnumAccess().getAlternatives()); }
+(rule__ProgressBarStylesEnum__Alternatives)
+{ after(grammarAccess.getProgressBarStylesEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__DataInterchangeFile__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileXMLParserRuleCall_0()); }
+	ruleDataInterchangeFileXML
+{ after(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileXMLParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileCSVParserRuleCall_1()); }
+	ruleDataInterchangeFileCSV
+{ after(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileCSVParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileEDIParserRuleCall_2()); }
+	ruleDataInterchangeFileEDI
+{ after(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileEDIParserRuleCall_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Alternatives_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getRecordElementAssignment_5_0()); }
+(rule__DataInterchangeBean__RecordElementAssignment_5_0)
+{ after(grammarAccess.getDataInterchangeBeanAccess().getRecordElementAssignment_5_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getRecordListAssignment_5_1()); }
+(rule__DataInterchangeBean__RecordListAssignment_5_1)
+{ after(grammarAccess.getDataInterchangeBeanAccess().getRecordListAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeExpression__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangeEntityExpressionParserRuleCall_0()); }
+	ruleDataInterchangeEntityExpression
+{ after(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangeEntityExpressionParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangePredefinedExpressionParserRuleCall_1()); }
+	ruleDataInterchangePredefinedExpression
+{ after(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangePredefinedExpressionParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Alternatives_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); }
+(rule__XAnnotation__Group_3_1_0__0)
+{ after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); }
+(rule__XAnnotation__ValueAssignment_3_1_1)
+{ after(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); }
+(rule__XAnnotationElementValueOrCommaList__Group_0__0)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); }
+(rule__XAnnotationElementValueOrCommaList__Group_1__0)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); }
+(rule__XAnnotationElementValue__Group_0__0)
+{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); }
+	ruleXAnnotationOrExpression
+{ after(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationOrExpression__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); }
+	ruleXAnnotation
+{ after(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); }
+	ruleXExpression
+{ after(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_0()); }
+(rule__XAssignment__Group_0__0)
+{ after(grammarAccess.getXAssignmentAccess().getGroup_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_1()); }
+(rule__XAssignment__Group_1__0)
+{ after(grammarAccess.getXAssignmentAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }
+
+	'+=' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }
+
+	'-=' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }
+)
+
+    |(
+{ before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); }
+
+	'*=' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); }
+)
+
+    |(
+{ before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); }
+
+	'/=' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); }
+)
+
+    |(
+{ before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); }
+
+	'%=' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); }
+)
+
+    |(
+{ before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); }
+(rule__OpMultiAssign__Group_5__0)
+{ after(grammarAccess.getOpMultiAssignAccess().getGroup_5()); }
+)
+
+    |(
+{ before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); }
+(rule__OpMultiAssign__Group_6__0)
+{ after(grammarAccess.getOpMultiAssignAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpEquality__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }
+
+	'==' 
+
+{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }
+
+	'!=' 
+
+{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }
+)
+
+    |(
+{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }
+
+	'===' 
+
+{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }
+)
+
+    |(
+{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }
+
+	'!==' 
+
+{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Alternatives_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
+(rule__XRelationalExpression__Group_1_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
+(rule__XRelationalExpression__Group_1_1__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpCompare__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }
+
+	'>=' 
+
+{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpCompareAccess().getGroup_1()); }
+(rule__OpCompare__Group_1__0)
+{ after(grammarAccess.getOpCompareAccess().getGroup_1()); }
+)
+
+    |(
+{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }
+
+	'>' 
+
+{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }
+)
+
+    |(
+{ before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }
+
+	'<' 
+
+{ after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }
+
+	'->' 
+
+{ after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }
+
+	'..<' 
+
+{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getGroup_2()); }
+(rule__OpOther__Group_2__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_2()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }
+
+	'..' 
+
+{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }
+
+	'=>' 
+
+{ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getGroup_5()); }
+(rule__OpOther__Group_5__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_5()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getGroup_6()); }
+(rule__OpOther__Group_6__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_6()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }
+
+	'<>' 
+
+{ after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }
+
+	'?:' 
+
+{ after(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Alternatives_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
+(rule__OpOther__Group_5_1_0__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }
+
+	'>' 
+
+{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Alternatives_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
+(rule__OpOther__Group_6_1_0__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }
+
+	'<' 
+
+{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }
+)
+
+    |(
+{ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); }
+
+	'=>' 
+
+{ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpAdd__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }
+
+	'+' 
+
+{ after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }
+
+	'-' 
+
+{ after(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMulti__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }
+
+	'*' 
+
+{ after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }
+
+	'**' 
+
+{ after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }
+)
+
+    |(
+{ before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }
+
+	'/' 
+
+{ after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }
+)
+
+    |(
+{ before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }
+
+	'%' 
+
+{ after(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
+(rule__XUnaryOperation__Group_0__0)
+{ after(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
+	ruleXCastedExpression
+{ after(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpUnary__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }
+
+	'!' 
+
+{ after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }
+
+	'-' 
+
+{ after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }
+)
+
+    |(
+{ before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }
+
+	'+' 
+
+{ after(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpPostfix__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); }
+
+	'++' 
+
+{ after(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); }
+
+	'--' 
+
+{ after(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
+(rule__XMemberFeatureCall__Group_1_0__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
+(rule__XMemberFeatureCall__Group_1_1__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }
+
+	'.' 
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
+(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }
+
+	'.' 
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
+(rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
+)
+
+    |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
+(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1_1_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
+(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
+(rule__XMemberFeatureCall__Group_1_1_3_1_1__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPrimaryExpression__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
+	ruleXConstructorCall
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
+	ruleXBlockExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
+	ruleXSwitchExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); }
+(	ruleXSynchronizedExpression)
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); }
+	ruleXFeatureCall
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); }
+	ruleXLiteral
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); }
+	ruleXIfExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); }
+(	ruleXForLoopExpression)
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); }
+	ruleXBasicForLoopExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); }
+	ruleXWhileExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); }
+	ruleXDoWhileExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); }
+	ruleXThrowExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); }
+	ruleXReturnExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); }
+	ruleXTryCatchFinallyExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); }
+)
+
+    |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); }
+	ruleXParenthesizedExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XLiteral__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
+	ruleXCollectionLiteral
+{ after(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
+(	ruleXClosure)
+{ after(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
+	ruleXBooleanLiteral
+{ after(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
+	ruleXNumberLiteral
+{ after(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
+	ruleXNullLiteral
+{ after(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
+)
+
+    |(
+{ before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
+	ruleXStringLiteral
+{ after(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
+)
+
+    |(
+{ before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
+	ruleXTypeLiteral
+{ after(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCollectionLiteral__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
+	ruleXSetLiteral
+{ after(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
+	ruleXListLiteral
+{ after(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Alternatives_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
+(rule__XSwitchExpression__Group_2_0__0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
+(rule__XSwitchExpression__Group_2_1__0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Alternatives_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getGroup_3_0()); }
+(rule__XCasePart__Group_3_0__0)
+{ after(grammarAccess.getXCasePartAccess().getGroup_3_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); }
+(rule__XCasePart__FallThroughAssignment_3_1)
+{ after(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XExpressionOrVarDeclaration__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); }
+	ruleXVariableDeclaration
+{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); }
+	ruleXExpression
+{ after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Alternatives_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
+(rule__XVariableDeclaration__WriteableAssignment_1_0)
+{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }
+
+	'val' 
+
+{ after(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Alternatives_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
+(rule__XVariableDeclaration__Group_2_0__0)
+{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
+(rule__XVariableDeclaration__NameAssignment_2_1)
+{ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Alternatives_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
+(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0)
+{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
+(rule__XFeatureCall__Group_3_1_1__0)
+{ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FeatureCallID__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
+	ruleValidID
+{ after(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }
+
+	'extends' 
+
+{ after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }
+)
+
+    |(
+{ before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }
+
+	'static' 
+
+{ after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }
+)
+
+    |(
+{ before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }
+
+	'import' 
+
+{ after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }
+)
+
+    |(
+{ before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }
+
+	'extension' 
+
+{ after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IdOrSuper__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
+	ruleFeatureCallID
+{ after(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }
+
+	'super' 
+
+{ after(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Alternatives_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
+(rule__XConstructorCall__ArgumentsAssignment_4_1_0)
+{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
+(rule__XConstructorCall__Group_4_1_1__0)
+{ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__Alternatives_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }
+
+	'false' 
+
+{ after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
+(rule__XBooleanLiteral__IsTrueAssignment_1_1)
+{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Alternatives_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
+(rule__XTryCatchFinallyExpression__Group_3_0__0)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
+(rule__XTryCatchFinallyExpression__Group_3_1__0)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
+	RULE_HEX
+{ after(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNumberAccess().getGroup_1()); }
+(rule__Number__Group_1__0)
+{ after(grammarAccess.getNumberAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Alternatives_1_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
+	RULE_INT
+{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
+	RULE_DECIMAL
+{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Alternatives_1_1_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
+	RULE_INT
+{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
+	RULE_DECIMAL
+{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
+(rule__JvmTypeReference__Group_0__0)
+{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
+)
+
+    |(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
+	ruleXFunctionTypeRef
+{ after(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmArgumentTypeReference__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
+	ruleJvmTypeReference
+{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
+	ruleJvmWildcardTypeReference
+{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Alternatives_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); }
+(rule__JvmWildcardTypeReference__Group_2_0__0)
+{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); }
+)
+
+    |(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); }
+(rule__JvmWildcardTypeReference__Group_2_1__0)
+{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Alternatives_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
+(rule__XImportDeclaration__Group_1_0__0)
+{ after(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
+(rule__XImportDeclaration__ImportedTypeAssignment_1_1)
+{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
+)
+
+    |(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
+(rule__XImportDeclaration__ImportedNamespaceAssignment_1_2)
+{ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Alternatives_1_0_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); }
+(rule__XImportDeclaration__WildcardAssignment_1_0_3_0)
+{ after(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); }
+(rule__XImportDeclaration__MemberNameAssignment_1_0_3_1)
+{ after(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PredefinedBeanEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPredefinedBeanEnumAccess().getNowEnumLiteralDeclaration_0()); }
+(	'NowDate' 
+)
+{ after(grammarAccess.getPredefinedBeanEnumAccess().getNowEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getPredefinedBeanEnumAccess().getStartEnumLiteralDeclaration_1()); }
+(	'StartDate' 
+)
+{ after(grammarAccess.getPredefinedBeanEnumAccess().getStartEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getPredefinedBeanEnumAccess().getUUIDEnumLiteralDeclaration_2()); }
+(	'UniversallyUniqueIdentifier' 
+)
+{ after(grammarAccess.getPredefinedBeanEnumAccess().getUUIDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PredefinedBeanTypeEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPredefinedBeanTypeEnumAccess().getDateEnumLiteralDeclaration_0()); }
+(	'Date' 
+)
+{ after(grammarAccess.getPredefinedBeanTypeEnumAccess().getDateEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getPredefinedBeanTypeEnumAccess().getMillisEnumLiteralDeclaration_1()); }
+(	'Milliseconds' 
+)
+{ after(grammarAccess.getPredefinedBeanTypeEnumAccess().getMillisEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getPredefinedBeanTypeEnumAccess().getNanosEnumLiteralDeclaration_2()); }
+(	'Nanoseconds' 
+)
+{ after(grammarAccess.getPredefinedBeanTypeEnumAccess().getNanosEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getPredefinedBeanTypeEnumAccess().getRandomEnumLiteralDeclaration_3()); }
+(	'Random' 
+)
+{ after(grammarAccess.getPredefinedBeanTypeEnumAccess().getRandomEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getPredefinedBeanTypeEnumAccess().getExecContextEnumLiteralDeclaration_4()); }
+(	'ExecuteContext' 
+)
+{ after(grammarAccess.getPredefinedBeanTypeEnumAccess().getExecContextEnumLiteralDeclaration_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProgressBarStylesEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProgressBarStylesEnumAccess().getNoneEnumLiteralDeclaration_0()); }
+(	'none' 
+)
+{ after(grammarAccess.getProgressBarStylesEnumAccess().getNoneEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getProgressBarStylesEnumAccess().getNormalEnumLiteralDeclaration_1()); }
+(	'normal' 
+)
+{ after(grammarAccess.getProgressBarStylesEnumAccess().getNormalEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getProgressBarStylesEnumAccess().getImportantEnumLiteralDeclaration_2()); }
+(	'important' 
+)
+{ after(grammarAccess.getProgressBarStylesEnumAccess().getImportantEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__DataInterchangePackage__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group__0__Impl
+	rule__DataInterchangePackage__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getDataInterchangePackageAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangePackageAccess().getDataInterchangePackageAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePackage__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group__1__Impl
+	rule__DataInterchangePackage__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getPackageKeyword_1()); }
+
+	'package' 
+
+{ after(grammarAccess.getDataInterchangePackageAccess().getPackageKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePackage__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group__2__Impl
+	rule__DataInterchangePackage__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getNameAssignment_2()); }
+(rule__DataInterchangePackage__NameAssignment_2)
+{ after(grammarAccess.getDataInterchangePackageAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePackage__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group__3__Impl
+	rule__DataInterchangePackage__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getTitleKeyword_3()); }
+
+	'title' 
+
+{ after(grammarAccess.getDataInterchangePackageAccess().getTitleKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePackage__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group__4__Impl
+	rule__DataInterchangePackage__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getTitleAssignment_4()); }
+(rule__DataInterchangePackage__TitleAssignment_4)
+{ after(grammarAccess.getDataInterchangePackageAccess().getTitleAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePackage__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getGroup_5()); }
+(rule__DataInterchangePackage__Group_5__0)?
+{ after(grammarAccess.getDataInterchangePackageAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangePackage__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group_5__0__Impl
+	rule__DataInterchangePackage__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getLeftCurlyBracketKeyword_5_0()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataInterchangePackageAccess().getLeftCurlyBracketKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePackage__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group_5__1__Impl
+	rule__DataInterchangePackage__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getImportsAssignment_5_1()); }
+(rule__DataInterchangePackage__ImportsAssignment_5_1)*
+{ after(grammarAccess.getDataInterchangePackageAccess().getImportsAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePackage__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group_5__2__Impl
+	rule__DataInterchangePackage__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getDatIntsAssignment_5_2()); }
+(rule__DataInterchangePackage__DatIntsAssignment_5_2)*
+{ after(grammarAccess.getDataInterchangePackageAccess().getDatIntsAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePackage__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePackage__Group_5__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePackage__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePackageAccess().getRightCurlyBracketKeyword_5_3()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataInterchangePackageAccess().getRightCurlyBracketKeyword_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchange__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__0__Impl
+	rule__DataInterchange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getDataInterchangeAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeAccess().getDataInterchangeAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__1__Impl
+	rule__DataInterchange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getInterchangeKeyword_1()); }
+
+	'interchange' 
+
+{ after(grammarAccess.getDataInterchangeAccess().getInterchangeKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__2__Impl
+	rule__DataInterchange__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getNameAssignment_2()); }
+(rule__DataInterchange__NameAssignment_2)
+{ after(grammarAccess.getDataInterchangeAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__3__Impl
+	rule__DataInterchange__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getGroup_3()); }
+(rule__DataInterchange__Group_3__0)?
+{ after(grammarAccess.getDataInterchangeAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__4__Impl
+	rule__DataInterchange__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getCreateReportAssignment_4()); }
+(rule__DataInterchange__CreateReportAssignment_4)?
+{ after(grammarAccess.getDataInterchangeAccess().getCreateReportAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__5__Impl
+	rule__DataInterchange__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getGroup_5()); }
+(rule__DataInterchange__Group_5__0)?
+{ after(grammarAccess.getDataInterchangeAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__6__Impl
+	rule__DataInterchange__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getGroup_6()); }
+(rule__DataInterchange__Group_6__0)?
+{ after(grammarAccess.getDataInterchangeAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__7__Impl
+	rule__DataInterchange__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getGroup_7()); }
+(rule__DataInterchange__Group_7__0)?
+{ after(grammarAccess.getDataInterchangeAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__8__Impl
+	rule__DataInterchange__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getFileKeyword_8()); }
+
+	'file' 
+
+{ after(grammarAccess.getDataInterchangeAccess().getFileKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__9__Impl
+	rule__DataInterchange__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getFileEndpointAssignment_9()); }
+(rule__DataInterchange__FileEndpointAssignment_9)
+{ after(grammarAccess.getDataInterchangeAccess().getFileEndpointAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__10__Impl
+	rule__DataInterchange__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getBeansKeyword_10()); }
+
+	'beans' 
+
+{ after(grammarAccess.getDataInterchangeAccess().getBeansKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__11__Impl
+	rule__DataInterchange__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getLeftCurlyBracketKeyword_11()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataInterchangeAccess().getLeftCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__12__Impl
+	rule__DataInterchange__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getPathAssignment_12()); }
+(rule__DataInterchange__PathAssignment_12)*
+{ after(grammarAccess.getDataInterchangeAccess().getPathAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getRightCurlyBracketKeyword_13()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataInterchangeAccess().getRightCurlyBracketKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchange__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group_3__0__Impl
+	rule__DataInterchange__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getDescriptionAssignment_3_0()); }
+(rule__DataInterchange__DescriptionAssignment_3_0)
+{ after(grammarAccess.getDataInterchangeAccess().getDescriptionAssignment_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getDescriptionValueAssignment_3_1()); }
+(rule__DataInterchange__DescriptionValueAssignment_3_1)
+{ after(grammarAccess.getDataInterchangeAccess().getDescriptionValueAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchange__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group_5__0__Impl
+	rule__DataInterchange__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getAverageElementSizeKeyword_5_0()); }
+
+	'averageElementSize' 
+
+{ after(grammarAccess.getDataInterchangeAccess().getAverageElementSizeKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getElementSizeAssignment_5_1()); }
+(rule__DataInterchange__ElementSizeAssignment_5_1)
+{ after(grammarAccess.getDataInterchangeAccess().getElementSizeAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchange__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group_6__0__Impl
+	rule__DataInterchange__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getProgressBarStyleKeyword_6_0()); }
+
+	'progressBarStyle' 
+
+{ after(grammarAccess.getDataInterchangeAccess().getProgressBarStyleKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getProgressBarStyleAssignment_6_1()); }
+(rule__DataInterchange__ProgressBarStyleAssignment_6_1)
+{ after(grammarAccess.getDataInterchangeAccess().getProgressBarStyleAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchange__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group_7__0__Impl
+	rule__DataInterchange__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getRefreshEnabledAssignment_7_0()); }
+(rule__DataInterchange__RefreshEnabledAssignment_7_0)
+{ after(grammarAccess.getDataInterchangeAccess().getRefreshEnabledAssignment_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchange__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchange__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchange__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeAccess().getRefreshAssignment_7_1()); }
+(rule__DataInterchange__RefreshAssignment_7_1)
+{ after(grammarAccess.getDataInterchangeAccess().getRefreshAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeFileXML__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileXML__Group__0__Impl
+	rule__DataInterchangeFileXML__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileXML__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileXMLAccess().getDataInterchangeFileXMLAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeFileXMLAccess().getDataInterchangeFileXMLAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileXML__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileXML__Group__1__Impl
+	rule__DataInterchangeFileXML__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileXML__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileXMLAccess().getXMLKeyword_1()); }
+
+	'XML' 
+
+{ after(grammarAccess.getDataInterchangeFileXMLAccess().getXMLKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileXML__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileXML__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileXML__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileXMLAccess().getFileURLAssignment_2()); }
+(rule__DataInterchangeFileXML__FileURLAssignment_2)
+{ after(grammarAccess.getDataInterchangeFileXMLAccess().getFileURLAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__DataInterchangeFileCSV__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group__0__Impl
+	rule__DataInterchangeFileCSV__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getDataInterchangeFileCSVAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getDataInterchangeFileCSVAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileCSV__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group__1__Impl
+	rule__DataInterchangeFileCSV__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getCSVKeyword_1()); }
+
+	'CSV' 
+
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getCSVKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileCSV__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group__2__Impl
+	rule__DataInterchangeFileCSV__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getFileURLAssignment_2()); }
+(rule__DataInterchangeFileCSV__FileURLAssignment_2)
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getFileURLAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileCSV__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3()); }
+(rule__DataInterchangeFileCSV__UnorderedGroup_3)
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeFileCSV__Group_3_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group_3_0__0__Impl
+	rule__DataInterchangeFileCSV__Group_3_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group_3_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getDelimiterKeyword_3_0_0()); }
+
+	'delimiter' 
+
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getDelimiterKeyword_3_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileCSV__Group_3_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group_3_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group_3_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getDelimiterAssignment_3_0_1()); }
+(rule__DataInterchangeFileCSV__DelimiterAssignment_3_0_1)
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getDelimiterAssignment_3_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeFileCSV__Group_3_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group_3_1__0__Impl
+	rule__DataInterchangeFileCSV__Group_3_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group_3_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getQuoteCharacterKeyword_3_1_0()); }
+
+	'quoteCharacter' 
+
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getQuoteCharacterKeyword_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileCSV__Group_3_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group_3_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group_3_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getQuoteCharacterAssignment_3_1_1()); }
+(rule__DataInterchangeFileCSV__QuoteCharacterAssignment_3_1_1)
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getQuoteCharacterAssignment_3_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeFileCSV__Group_3_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group_3_2__0__Impl
+	rule__DataInterchangeFileCSV__Group_3_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group_3_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getSkipLinesKeyword_3_2_0()); }
+
+	'skipLines' 
+
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getSkipLinesKeyword_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileCSV__Group_3_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group_3_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group_3_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getSkipLinesAssignment_3_2_1()); }
+(rule__DataInterchangeFileCSV__SkipLinesAssignment_3_2_1)
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getSkipLinesAssignment_3_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeFileCSV__Group_3_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group_3_6__0__Impl
+	rule__DataInterchangeFileCSV__Group_3_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group_3_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getEncodingKeyword_3_6_0()); }
+
+	'encoding' 
+
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getEncodingKeyword_3_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileCSV__Group_3_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileCSV__Group_3_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileCSV__Group_3_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileCSVAccess().getEncodingAssignment_3_6_1()); }
+(rule__DataInterchangeFileCSV__EncodingAssignment_3_6_1)
+{ after(grammarAccess.getDataInterchangeFileCSVAccess().getEncodingAssignment_3_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeFileEDI__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileEDI__Group__0__Impl
+	rule__DataInterchangeFileEDI__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileEDI__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileEDIAccess().getDataInterchangeFileEDIAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeFileEDIAccess().getDataInterchangeFileEDIAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileEDI__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileEDI__Group__1__Impl
+	rule__DataInterchangeFileEDI__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileEDI__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileEDIAccess().getEDIKeyword_1()); }
+
+	'EDI' 
+
+{ after(grammarAccess.getDataInterchangeFileEDIAccess().getEDIKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileEDI__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileEDI__Group__2__Impl
+	rule__DataInterchangeFileEDI__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileEDI__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileEDIAccess().getFileURLAssignment_2()); }
+(rule__DataInterchangeFileEDI__FileURLAssignment_2)
+{ after(grammarAccess.getDataInterchangeFileEDIAccess().getFileURLAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileEDI__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileEDI__Group__3__Impl
+	rule__DataInterchangeFileEDI__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileEDI__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileEDIAccess().getMappingModelKeyword_3()); }
+
+	'mappingModel' 
+
+{ after(grammarAccess.getDataInterchangeFileEDIAccess().getMappingModelKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileEDI__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileEDI__Group__4__Impl
+	rule__DataInterchangeFileEDI__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileEDI__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileEDIAccess().getMappingModelAssignment_4()); }
+(rule__DataInterchangeFileEDI__MappingModelAssignment_4)
+{ after(grammarAccess.getDataInterchangeFileEDIAccess().getMappingModelAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFileEDI__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFileEDI__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFileEDI__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFileEDIAccess().getValidateAssignment_5()); }
+(rule__DataInterchangeFileEDI__ValidateAssignment_5)?
+{ after(grammarAccess.getDataInterchangeFileEDIAccess().getValidateAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeBean__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__0__Impl
+	rule__DataInterchangeBean__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getDataInterchangeBeanAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeBeanAccess().getDataInterchangeBeanAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__1__Impl
+	rule__DataInterchangeBean__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getEntityKeyword_1()); }
+
+	'entity' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getEntityKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__2__Impl
+	rule__DataInterchangeBean__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getEntityAssignment_2()); }
+(rule__DataInterchangeBean__EntityAssignment_2)
+{ after(grammarAccess.getDataInterchangeBeanAccess().getEntityAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__3__Impl
+	rule__DataInterchangeBean__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getGroup_3()); }
+(rule__DataInterchangeBean__Group_3__0)?
+{ after(grammarAccess.getDataInterchangeBeanAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__4__Impl
+	rule__DataInterchangeBean__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getGroup_4()); }
+(rule__DataInterchangeBean__Group_4__0)?
+{ after(grammarAccess.getDataInterchangeBeanAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__5__Impl
+	rule__DataInterchangeBean__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getAlternatives_5()); }
+(rule__DataInterchangeBean__Alternatives_5)?
+{ after(grammarAccess.getDataInterchangeBeanAccess().getAlternatives_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__6__Impl
+	rule__DataInterchangeBean__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getGroup_6()); }
+(rule__DataInterchangeBean__Group_6__0)?
+{ after(grammarAccess.getDataInterchangeBeanAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__7__Impl
+	rule__DataInterchangeBean__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getGroup_7()); }
+(rule__DataInterchangeBean__Group_7__0)?
+{ after(grammarAccess.getDataInterchangeBeanAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__8__Impl
+	rule__DataInterchangeBean__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getGroup_8()); }
+(rule__DataInterchangeBean__Group_8__0)?
+{ after(grammarAccess.getDataInterchangeBeanAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getGroup_9()); }
+(rule__DataInterchangeBean__Group_9__0)?
+{ after(grammarAccess.getDataInterchangeBeanAccess().getGroup_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeBean__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_3__0__Impl
+	rule__DataInterchangeBean__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getCreateOnKeyword_3_0()); }
+
+	'createOn' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getCreateOnKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getElementMapAssignment_3_1()); }
+(rule__DataInterchangeBean__ElementMapAssignment_3_1)
+{ after(grammarAccess.getDataInterchangeBeanAccess().getElementMapAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeBean__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_4__0__Impl
+	rule__DataInterchangeBean__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getMarkLatestAssignment_4_0()); }
+(rule__DataInterchangeBean__MarkLatestAssignment_4_0)
+{ after(grammarAccess.getDataInterchangeBeanAccess().getMarkLatestAssignment_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getLatestPropertyAssignment_4_1()); }
+(rule__DataInterchangeBean__LatestPropertyAssignment_4_1)
+{ after(grammarAccess.getDataInterchangeBeanAccess().getLatestPropertyAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeBean__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_6__0__Impl
+	rule__DataInterchangeBean__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getExpressionKeyword_6_0()); }
+
+	'expression' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getExpressionKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_6__1__Impl
+	rule__DataInterchangeBean__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_6_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_6__2__Impl
+	rule__DataInterchangeBean__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getExpressionAssignment_6_2()); }
+(rule__DataInterchangeBean__ExpressionAssignment_6_2)*
+{ after(grammarAccess.getDataInterchangeBeanAccess().getExpressionAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_6__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_6_3()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeBean__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_7__0__Impl
+	rule__DataInterchangeBean__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getLookupKeyword_7_0()); }
+
+	'lookup' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getLookupKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_7__1__Impl
+	rule__DataInterchangeBean__Group_7__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_7_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_7__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_7__2__Impl
+	rule__DataInterchangeBean__Group_7__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_7__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getLookupAssignment_7_2()); }
+(rule__DataInterchangeBean__LookupAssignment_7_2)*
+{ after(grammarAccess.getDataInterchangeBeanAccess().getLookupAssignment_7_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_7__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_7__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_7__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_7_3()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_7_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeBean__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_8__0__Impl
+	rule__DataInterchangeBean__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getFormatKeyword_8_0()); }
+
+	'format' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getFormatKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_8__1__Impl
+	rule__DataInterchangeBean__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_8_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_8__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_8__2__Impl
+	rule__DataInterchangeBean__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_8__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getFormatAssignment_8_2()); }
+(rule__DataInterchangeBean__FormatAssignment_8_2)*
+{ after(grammarAccess.getDataInterchangeBeanAccess().getFormatAssignment_8_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_8__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_8__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_8__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_8_3()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_8_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeBean__Group_9__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_9__0__Impl
+	rule__DataInterchangeBean__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_9__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getMappingKeyword_9_0()); }
+
+	'mapping' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getMappingKeyword_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_9__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_9__1__Impl
+	rule__DataInterchangeBean__Group_9__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_9__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_9_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_9_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_9__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_9__2__Impl
+	rule__DataInterchangeBean__Group_9__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_9__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getMappingsAssignment_9_2()); }
+(rule__DataInterchangeBean__MappingsAssignment_9_2)*
+{ after(grammarAccess.getDataInterchangeBeanAccess().getMappingsAssignment_9_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeBean__Group_9__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeBean__Group_9__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeBean__Group_9__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_9_3()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_9_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeLookup__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__0__Impl
+	rule__DataInterchangeLookup__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getDataInterchangeLookupAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getDataInterchangeLookupAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__1__Impl
+	rule__DataInterchangeLookup__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getForKeyword_1()); }
+
+	'for' 
+
+{ after(grammarAccess.getDataInterchangeLookupAccess().getForKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__2__Impl
+	rule__DataInterchangeLookup__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getTargetPropertyAssignment_2()); }
+(rule__DataInterchangeLookup__TargetPropertyAssignment_2)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getTargetPropertyAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__3__Impl
+	rule__DataInterchangeLookup__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getOnKeyword_3()); }
+
+	'on' 
+
+{ after(grammarAccess.getDataInterchangeLookupAccess().getOnKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__4__Impl
+	rule__DataInterchangeLookup__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getEntityAssignment_4()); }
+(rule__DataInterchangeLookup__EntityAssignment_4)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getEntityAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__5__Impl
+	rule__DataInterchangeLookup__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getGroup_5()); }
+(rule__DataInterchangeLookup__Group_5__0)?
+{ after(grammarAccess.getDataInterchangeLookupAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__6__Impl
+	rule__DataInterchangeLookup__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getWithKeyword_6()); }
+
+	'with' 
+
+{ after(grammarAccess.getDataInterchangeLookupAccess().getWithKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__7__Impl
+	rule__DataInterchangeLookup__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getQueryPropertyAssignment_7()); }
+(rule__DataInterchangeLookup__QueryPropertyAssignment_7)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getQueryPropertyAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__8__Impl
+	rule__DataInterchangeLookup__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getGroup_8()); }
+(rule__DataInterchangeLookup__Group_8__0)?
+{ after(grammarAccess.getDataInterchangeLookupAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__9__Impl
+	rule__DataInterchangeLookup__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getGroup_9()); }
+(rule__DataInterchangeLookup__Group_9__0)?
+{ after(grammarAccess.getDataInterchangeLookupAccess().getGroup_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10()); }
+(rule__DataInterchangeLookup__UnorderedGroup_10)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeLookup__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group_5__0__Impl
+	rule__DataInterchangeLookup__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getCreateOnKeyword_5_0()); }
+
+	'createOn' 
+
+{ after(grammarAccess.getDataInterchangeLookupAccess().getCreateOnKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getElementMapAssignment_5_1()); }
+(rule__DataInterchangeLookup__ElementMapAssignment_5_1)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getElementMapAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeLookup__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group_8__0__Impl
+	rule__DataInterchangeLookup__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getCachedAssignment_8_0()); }
+(rule__DataInterchangeLookup__CachedAssignment_8_0)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getCachedAssignment_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getCacheSizeAssignment_8_1()); }
+(rule__DataInterchangeLookup__CacheSizeAssignment_8_1)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getCacheSizeAssignment_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeLookup__Group_9__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group_9__0__Impl
+	rule__DataInterchangeLookup__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group_9__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getMapToKeyword_9_0()); }
+
+	'mapTo' 
+
+{ after(grammarAccess.getDataInterchangeLookupAccess().getMapToKeyword_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeLookup__Group_9__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeLookup__Group_9__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeLookup__Group_9__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeLookupAccess().getDataMapAssignment_9_1()); }
+(rule__DataInterchangeLookup__DataMapAssignment_9_1)
+{ after(grammarAccess.getDataInterchangeLookupAccess().getDataMapAssignment_9_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeMarkerPath__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerPath__Group__0__Impl
+	rule__DataInterchangeMarkerPath__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerPath__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerPathAccess().getDataInterchangeMarkerPathAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeMarkerPathAccess().getDataInterchangeMarkerPathAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMarkerPath__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerPath__Group__1__Impl
+	rule__DataInterchangeMarkerPath__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerPath__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerPathAccess().getMarkerPathKeyword_1()); }
+
+	'markerPath' 
+
+{ after(grammarAccess.getDataInterchangeMarkerPathAccess().getMarkerPathKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMarkerPath__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerPath__Group__2__Impl
+	rule__DataInterchangeMarkerPath__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerPath__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerPathAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataInterchangeMarkerPathAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMarkerPath__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerPath__Group__3__Impl
+	rule__DataInterchangeMarkerPath__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerPath__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerPathAccess().getPathAssignment_3()); }
+(rule__DataInterchangeMarkerPath__PathAssignment_3)*
+{ after(grammarAccess.getDataInterchangeMarkerPathAccess().getPathAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMarkerPath__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerPath__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerPath__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerPathAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataInterchangeMarkerPathAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeMarkerEntity__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerEntity__Group__0__Impl
+	rule__DataInterchangeMarkerEntity__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerEntity__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerEntityAccess().getDataInterchangeMarkerEntityAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeMarkerEntityAccess().getDataInterchangeMarkerEntityAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMarkerEntity__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerEntity__Group__1__Impl
+	rule__DataInterchangeMarkerEntity__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerEntity__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerEntityKeyword_1()); }
+
+	'markerEntity' 
+
+{ after(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerEntityKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMarkerEntity__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerEntity__Group__2__Impl
+	rule__DataInterchangeMarkerEntity__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerEntity__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerEntityAssignment_2()); }
+(rule__DataInterchangeMarkerEntity__MarkerEntityAssignment_2)
+{ after(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerEntityAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMarkerEntity__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerEntity__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerEntity__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerEntityAccess().getGroup_3()); }
+(rule__DataInterchangeMarkerEntity__Group_3__0)?
+{ after(grammarAccess.getDataInterchangeMarkerEntityAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeMarkerEntity__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerEntity__Group_3__0__Impl
+	rule__DataInterchangeMarkerEntity__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerEntity__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkLatestAssignment_3_0()); }
+(rule__DataInterchangeMarkerEntity__MarkLatestAssignment_3_0)
+{ after(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkLatestAssignment_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMarkerEntity__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMarkerEntity__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMarkerEntity__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerPropertyAssignment_3_1()); }
+(rule__DataInterchangeMarkerEntity__MarkerPropertyAssignment_3_1)
+{ after(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerPropertyAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeFormat__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFormat__Group__0__Impl
+	rule__DataInterchangeFormat__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFormat__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFormatAccess().getDataInterchangeFormatAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeFormatAccess().getDataInterchangeFormatAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFormat__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFormat__Group__1__Impl
+	rule__DataInterchangeFormat__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFormat__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFormatAccess().getForKeyword_1()); }
+
+	'for' 
+
+{ after(grammarAccess.getDataInterchangeFormatAccess().getForKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFormat__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFormat__Group__2__Impl
+	rule__DataInterchangeFormat__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFormat__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFormatAccess().getTargetPropertyAssignment_2()); }
+(rule__DataInterchangeFormat__TargetPropertyAssignment_2)
+{ after(grammarAccess.getDataInterchangeFormatAccess().getTargetPropertyAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFormat__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFormat__Group__3__Impl
+	rule__DataInterchangeFormat__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFormat__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFormatAccess().getCodingKeyword_3()); }
+
+	'coding' 
+
+{ after(grammarAccess.getDataInterchangeFormatAccess().getCodingKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFormat__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFormat__Group__4__Impl
+	rule__DataInterchangeFormat__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFormat__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFormatAccess().getFormatAssignment_4()); }
+(rule__DataInterchangeFormat__FormatAssignment_4)
+{ after(grammarAccess.getDataInterchangeFormatAccess().getFormatAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFormat__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFormat__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFormat__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFormatAccess().getGroup_5()); }
+(rule__DataInterchangeFormat__Group_5__0)?
+{ after(grammarAccess.getDataInterchangeFormatAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeFormat__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFormat__Group_5__0__Impl
+	rule__DataInterchangeFormat__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFormat__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFormatAccess().getLocaleKeyword_5_0()); }
+
+	'locale' 
+
+{ after(grammarAccess.getDataInterchangeFormatAccess().getLocaleKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeFormat__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeFormat__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeFormat__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeFormatAccess().getLocaleAssignment_5_1()); }
+(rule__DataInterchangeFormat__LocaleAssignment_5_1)
+{ after(grammarAccess.getDataInterchangeFormatAccess().getLocaleAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeEntityExpression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeEntityExpression__Group__0__Impl
+	rule__DataInterchangeEntityExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeEntityExpression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeEntityExpressionAccess().getDataInterchangeEntityExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeEntityExpressionAccess().getDataInterchangeEntityExpressionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeEntityExpression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeEntityExpression__Group__1__Impl
+	rule__DataInterchangeEntityExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeEntityExpression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeEntityExpressionAccess().getCopyKeyword_1()); }
+
+	'copy' 
+
+{ after(grammarAccess.getDataInterchangeEntityExpressionAccess().getCopyKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeEntityExpression__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeEntityExpression__Group__2__Impl
+	rule__DataInterchangeEntityExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeEntityExpression__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeEntityExpressionAccess().getTargetPropertyAssignment_2()); }
+(rule__DataInterchangeEntityExpression__TargetPropertyAssignment_2)
+{ after(grammarAccess.getDataInterchangeEntityExpressionAccess().getTargetPropertyAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeEntityExpression__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeEntityExpression__Group__3__Impl
+	rule__DataInterchangeEntityExpression__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeEntityExpression__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeEntityExpressionAccess().getFromKeyword_3()); }
+
+	'from' 
+
+{ after(grammarAccess.getDataInterchangeEntityExpressionAccess().getFromKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeEntityExpression__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeEntityExpression__Group__4__Impl
+	rule__DataInterchangeEntityExpression__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeEntityExpression__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeEntityExpressionAccess().getEntityAssignment_4()); }
+(rule__DataInterchangeEntityExpression__EntityAssignment_4)
+{ after(grammarAccess.getDataInterchangeEntityExpressionAccess().getEntityAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeEntityExpression__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeEntityExpression__Group__5__Impl
+	rule__DataInterchangeEntityExpression__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeEntityExpression__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyKeyword_5()); }
+
+	'property' 
+
+{ after(grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeEntityExpression__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeEntityExpression__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeEntityExpression__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyAssignment_6()); }
+(rule__DataInterchangeEntityExpression__PropertyAssignment_6)
+{ after(grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangePredefinedExpression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePredefinedExpression__Group__0__Impl
+	rule__DataInterchangePredefinedExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePredefinedExpression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePredefinedExpressionAccess().getDataInterchangePredefinedExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangePredefinedExpressionAccess().getDataInterchangePredefinedExpressionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePredefinedExpression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePredefinedExpression__Group__1__Impl
+	rule__DataInterchangePredefinedExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePredefinedExpression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePredefinedExpressionAccess().getAssignKeyword_1()); }
+
+	'assign' 
+
+{ after(grammarAccess.getDataInterchangePredefinedExpressionAccess().getAssignKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePredefinedExpression__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePredefinedExpression__Group__2__Impl
+	rule__DataInterchangePredefinedExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePredefinedExpression__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePredefinedExpressionAccess().getTargetPropertyAssignment_2()); }
+(rule__DataInterchangePredefinedExpression__TargetPropertyAssignment_2)
+{ after(grammarAccess.getDataInterchangePredefinedExpressionAccess().getTargetPropertyAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePredefinedExpression__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePredefinedExpression__Group__3__Impl
+	rule__DataInterchangePredefinedExpression__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePredefinedExpression__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePredefinedExpressionAccess().getWithKeyword_3()); }
+
+	'with' 
+
+{ after(grammarAccess.getDataInterchangePredefinedExpressionAccess().getWithKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePredefinedExpression__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePredefinedExpression__Group__4__Impl
+	rule__DataInterchangePredefinedExpression__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePredefinedExpression__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanAssignment_4()); }
+(rule__DataInterchangePredefinedExpression__BeanAssignment_4)
+{ after(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePredefinedExpression__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePredefinedExpression__Group__5__Impl
+	rule__DataInterchangePredefinedExpression__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePredefinedExpression__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePredefinedExpressionAccess().getAsKeyword_5()); }
+
+	'as' 
+
+{ after(grammarAccess.getDataInterchangePredefinedExpressionAccess().getAsKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangePredefinedExpression__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangePredefinedExpression__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangePredefinedExpression__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanTypeAssignment_6()); }
+(rule__DataInterchangePredefinedExpression__BeanTypeAssignment_6)
+{ after(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanTypeAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeMapping__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMapping__Group__0__Impl
+	rule__DataInterchangeMapping__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMapping__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMappingAccess().getDataInterchangeMappingAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataInterchangeMappingAccess().getDataInterchangeMappingAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMapping__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMapping__Group__1__Impl
+	rule__DataInterchangeMapping__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMapping__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMappingAccess().getMapKeyword_1()); }
+
+	'map' 
+
+{ after(grammarAccess.getDataInterchangeMappingAccess().getMapKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMapping__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMapping__Group__2__Impl
+	rule__DataInterchangeMapping__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMapping__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMappingAccess().getPropertyAssignment_2()); }
+(rule__DataInterchangeMapping__PropertyAssignment_2)
+{ after(grammarAccess.getDataInterchangeMappingAccess().getPropertyAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMapping__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMapping__Group__3__Impl
+	rule__DataInterchangeMapping__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMapping__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMappingAccess().getToKeyword_3()); }
+
+	'to' 
+
+{ after(grammarAccess.getDataInterchangeMappingAccess().getToKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeMapping__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeMapping__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeMapping__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeMappingAccess().getDataAssignment_4()); }
+(rule__DataInterchangeMapping__DataAssignment_4)
+{ after(grammarAccess.getDataInterchangeMappingAccess().getDataAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataInterchangeImport__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeImport__Group__0__Impl
+	rule__DataInterchangeImport__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeImport__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeImportAccess().getImportKeyword_0()); }
+
+	'import' 
+
+{ after(grammarAccess.getDataInterchangeImportAccess().getImportKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeImport__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeImport__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeImport__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeImportAccess().getImportedNamespaceAssignment_1()); }
+(rule__DataInterchangeImport__ImportedNamespaceAssignment_1)
+{ after(grammarAccess.getDataInterchangeImportAccess().getImportedNamespaceAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeQualifiedNameWithWildCard__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeQualifiedNameWithWildCard__Group__0__Impl
+	rule__DataInterchangeQualifiedNameWithWildCard__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeQualifiedNameWithWildCard__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); }
+	ruleQualifiedName
+{ after(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeQualifiedNameWithWildCard__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeQualifiedNameWithWildCard__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeQualifiedNameWithWildCard__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getGroup_1()); }
+(rule__DataInterchangeQualifiedNameWithWildCard__Group_1__0)?
+{ after(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataInterchangeQualifiedNameWithWildCard__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeQualifiedNameWithWildCard__Group_1__0__Impl
+	rule__DataInterchangeQualifiedNameWithWildCard__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeQualifiedNameWithWildCard__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); }
+
+	'.' 
+
+{ after(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataInterchangeQualifiedNameWithWildCard__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataInterchangeQualifiedNameWithWildCard__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataInterchangeQualifiedNameWithWildCard__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); }
+
+	'*' 
+
+{ after(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__QualifiedName__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__QualifiedName__Group__0__Impl
+	rule__QualifiedName__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
+	ruleValidID
+{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__QualifiedName__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+(rule__QualifiedName__Group_1__0)*
+{ after(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__QualifiedName__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__QualifiedName__Group_1__0__Impl
+	rule__QualifiedName__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+(
+	'.' 
+)
+{ after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__QualifiedName__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
+	ruleValidID
+{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__LFQN__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LFQN__Group__0__Impl
+	rule__LFQN__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LFQN__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLFQNAccess().getIDTerminalRuleCall_0()); }
+	RULE_ID
+{ after(grammarAccess.getLFQNAccess().getIDTerminalRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LFQN__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LFQN__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LFQN__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLFQNAccess().getGroup_1()); }
+(rule__LFQN__Group_1__0)*
+{ after(grammarAccess.getLFQNAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__LFQN__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LFQN__Group_1__0__Impl
+	rule__LFQN__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LFQN__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLFQNAccess().getFullStopKeyword_1_0()); }
+
+	'.' 
+
+{ after(grammarAccess.getLFQNAccess().getFullStopKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LFQN__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LFQN__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LFQN__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLFQNAccess().getIDTerminalRuleCall_1_1()); }
+	RULE_ID
+{ after(grammarAccess.getLFQNAccess().getIDTerminalRuleCall_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotation__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group__0__Impl
+	rule__XAnnotation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group__1__Impl
+	rule__XAnnotation__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); }
+
+	'@' 
+
+{ after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group__2__Impl
+	rule__XAnnotation__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); }
+(rule__XAnnotation__AnnotationTypeAssignment_2)
+{ after(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getGroup_3()); }
+(rule__XAnnotation__Group_3__0)?
+{ after(grammarAccess.getXAnnotationAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XAnnotation__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3__0__Impl
+	rule__XAnnotation__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); }
+(
+	'(' 
+)
+{ after(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3__1__Impl
+	rule__XAnnotation__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); }
+(rule__XAnnotation__Alternatives_3_1)?
+{ after(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); }
+
+	')' 
+
+{ after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XAnnotation__Group_3_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3_1_0__0__Impl
+	rule__XAnnotation__Group_3_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); }
+(rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0)
+{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3_1_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); }
+(rule__XAnnotation__Group_3_1_0_1__0)*
+{ after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotation__Group_3_1_0_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3_1_0_1__0__Impl
+	rule__XAnnotation__Group_3_1_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); }
+
+	',' 
+
+{ after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3_1_0_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3_1_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); }
+(rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1)
+{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValuePair__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group__0__Impl
+	rule__XAnnotationElementValuePair__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); }
+(rule__XAnnotationElementValuePair__Group_0__0)
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValuePair__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); }
+(rule__XAnnotationElementValuePair__ValueAssignment_1)
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValuePair__Group_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); }
+(rule__XAnnotationElementValuePair__Group_0_0__0)
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAnnotationElementValuePair__Group_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group_0_0__0__Impl
+	rule__XAnnotationElementValuePair__Group_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); }
+(rule__XAnnotationElementValuePair__ElementAssignment_0_0_0)
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValuePair__Group_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); }
+(rule__XAnnotationElementValueOrCommaList__Group_0_0__0)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); }
+(rule__XAnnotationElementValueOrCommaList__Group_0_1__0)?
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); }
+
+	']' 
+
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); }
+(rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); }
+
+	'#' 
+
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+
+	'[' 
+
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); }
+(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.tokens b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.tokens
new file mode 100644
index 0000000..f7674d0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.tokens
@@ -0,0 +1,277 @@
+'!'=40
+'!='=22
+'!=='=24
+'#'=105
+'%'=39
+'%='=20
+'&&'=15
+'&'=127
+'('=101
+')'=102
+'*'=36
+'**'=37
+'*='=18
+'+'=34
+'++'=41
+'+='=16
+','=103
+'-'=35
+'--'=42
+'-='=17
+'->'=28
+'.'=43
+'..'=30
+'..<'=29
+'/'=38
+'/='=19
+':'=112
+'::'=142
+';'=108
+'<'=27
+'<>'=32
+'='=13
+'=='=21
+'==='=23
+'=>'=31
+'>'=26
+'>='=25
+'?'=126
+'?.'=143
+'?:'=33
+'@'=100
+'CSV'=72
+'Date'=54
+'EDI'=77
+'ExecuteContext'=58
+'Milliseconds'=55
+'Nanoseconds'=56
+'NowDate'=51
+'Random'=57
+'StartDate'=52
+'UniversallyUniqueIdentifier'=53
+'XML'=71
+'['=106
+']'=104
+'allowNoResult'=139
+'allowNonuniqueResult'=140
+'as'=97
+'assign'=96
+'averageElementSize'=69
+'beans'=68
+'cacheSize'=138
+'case'=114
+'catch'=125
+'coding'=91
+'copy'=93
+'create report'=129
+'createOn'=80
+'default'=113
+'delimiter'=73
+'described by'=128
+'do'=116
+'else'=110
+'encoding'=76
+'entity'=79
+'expression'=81
+'extends'=45
+'extension'=48
+'false'=50
+'file'=67
+'finally'=123
+'for'=85
+'format'=83
+'from'=94
+'if'=109
+'import'=47
+'important'=61
+'indent'=131
+'instanceof'=107
+'interchange'=66
+'locale'=92
+'lookup'=82
+'map'=98
+'mapTo'=88
+'mapping'=84
+'mappingModel'=78
+'markedBy'=141
+'marker'=135
+'markerEntity'=90
+'markerPath'=89
+'new'=117
+'none'=59
+'normal'=60
+'null'=118
+'on'=86
+'package'=62
+'progressBarStyle'=70
+'property'=95
+'quoteCharacter'=74
+'recordElement'=136
+'recordList'=137
+'refreshViewWhenFinished'=130
+'return'=121
+'skipLines'=75
+'static'=46
+'strict'=132
+'super'=49
+'switch'=111
+'synchronized'=124
+'throw'=120
+'title'=63
+'to'=99
+'true'=146
+'try'=122
+'typeof'=119
+'val'=44
+'validate'=134
+'validateHeader'=133
+'var'=145
+'while'=115
+'with'=87
+'{'=64
+'|'=144
+'||'=14
+'}'=65
+RULE_ANY_OTHER=12
+RULE_DECIMAL=8
+RULE_HEX=6
+RULE_ID=4
+RULE_INT=7
+RULE_ML_COMMENT=9
+RULE_SL_COMMENT=10
+RULE_STRING=5
+RULE_WS=11
+T__100=100
+T__101=101
+T__102=102
+T__103=103
+T__104=104
+T__105=105
+T__106=106
+T__107=107
+T__108=108
+T__109=109
+T__110=110
+T__111=111
+T__112=112
+T__113=113
+T__114=114
+T__115=115
+T__116=116
+T__117=117
+T__118=118
+T__119=119
+T__120=120
+T__121=121
+T__122=122
+T__123=123
+T__124=124
+T__125=125
+T__126=126
+T__127=127
+T__128=128
+T__129=129
+T__130=130
+T__131=131
+T__132=132
+T__133=133
+T__134=134
+T__135=135
+T__136=136
+T__137=137
+T__138=138
+T__139=139
+T__13=13
+T__140=140
+T__141=141
+T__142=142
+T__143=143
+T__144=144
+T__145=145
+T__146=146
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
+T__41=41
+T__42=42
+T__43=43
+T__44=44
+T__45=45
+T__46=46
+T__47=47
+T__48=48
+T__49=49
+T__50=50
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__59=59
+T__60=60
+T__61=61
+T__62=62
+T__63=63
+T__64=64
+T__65=65
+T__66=66
+T__67=67
+T__68=68
+T__69=69
+T__70=70
+T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
+T__76=76
+T__77=77
+T__78=78
+T__79=79
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
+T__89=89
+T__90=90
+T__91=91
+T__92=92
+T__93=93
+T__94=94
+T__95=95
+T__96=96
+T__97=97
+T__98=98
+T__99=99
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSLLexer.java b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSLLexer.java
new file mode 100644
index 0000000..d99594e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSLLexer.java
@@ -0,0 +1,5699 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalDataDSLLexer extends Lexer {
+    public static final int T__144=144;
+    public static final int T__143=143;
+    public static final int T__146=146;
+    public static final int RULE_HEX=6;
+    public static final int T__50=50;
+    public static final int T__145=145;
+    public static final int T__140=140;
+    public static final int T__142=142;
+    public static final int T__141=141;
+    public static final int T__59=59;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__137=137;
+    public static final int T__52=52;
+    public static final int T__136=136;
+    public static final int T__53=53;
+    public static final int T__139=139;
+    public static final int T__54=54;
+    public static final int T__138=138;
+    public static final int T__133=133;
+    public static final int T__132=132;
+    public static final int T__60=60;
+    public static final int T__135=135;
+    public static final int T__61=61;
+    public static final int T__134=134;
+    public static final int RULE_ID=4;
+    public static final int T__131=131;
+    public static final int T__130=130;
+    public static final int RULE_INT=7;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__91=91;
+    public static final int T__100=100;
+    public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__102=102;
+    public static final int T__94=94;
+    public static final int T__101=101;
+    public static final int T__90=90;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int T__99=99;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    public static final int T__95=95;
+    public static final int T__96=96;
+    public static final int T__97=97;
+    public static final int T__98=98;
+    public static final int RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__70=70;
+    public static final int T__121=121;
+    public static final int T__71=71;
+    public static final int T__124=124;
+    public static final int T__72=72;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__77=77;
+    public static final int T__119=119;
+    public static final int T__78=78;
+    public static final int T__118=118;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__74=74;
+    public static final int T__114=114;
+    public static final int T__75=75;
+    public static final int T__117=117;
+    public static final int T__76=76;
+    public static final int T__116=116;
+    public static final int T__80=80;
+    public static final int T__111=111;
+    public static final int T__81=81;
+    public static final int T__110=110;
+    public static final int T__82=82;
+    public static final int T__113=113;
+    public static final int T__83=83;
+    public static final int T__112=112;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__88=88;
+    public static final int T__108=108;
+    public static final int T__89=89;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__84=84;
+    public static final int T__104=104;
+    public static final int T__85=85;
+    public static final int T__103=103;
+    public static final int T__86=86;
+    public static final int T__106=106;
+    public static final int T__87=87;
+    public static final int T__105=105;
+
+    // delegates
+    // delegators
+
+    public InternalDataDSLLexer() {;} 
+    public InternalDataDSLLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalDataDSLLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g"; }
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:11:7: ( '=' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:11:9: '='
+            {
+            match('='); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__13"
+
+    // $ANTLR start "T__14"
+    public final void mT__14() throws RecognitionException {
+        try {
+            int _type = T__14;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:12:7: ( '||' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:12:9: '||'
+            {
+            match("||"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:13:7: ( '&&' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:13:9: '&&'
+            {
+            match("&&"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:14:7: ( '+=' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:14:9: '+='
+            {
+            match("+="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__16"
+
+    // $ANTLR start "T__17"
+    public final void mT__17() throws RecognitionException {
+        try {
+            int _type = T__17;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:15:7: ( '-=' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:15:9: '-='
+            {
+            match("-="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__17"
+
+    // $ANTLR start "T__18"
+    public final void mT__18() throws RecognitionException {
+        try {
+            int _type = T__18;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:16:7: ( '*=' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:16:9: '*='
+            {
+            match("*="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__18"
+
+    // $ANTLR start "T__19"
+    public final void mT__19() throws RecognitionException {
+        try {
+            int _type = T__19;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:17:7: ( '/=' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:17:9: '/='
+            {
+            match("/="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:18:7: ( '%=' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:18:9: '%='
+            {
+            match("%="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:19:7: ( '==' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:19:9: '=='
+            {
+            match("=="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:20:7: ( '!=' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:20:9: '!='
+            {
+            match("!="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__22"
+
+    // $ANTLR start "T__23"
+    public final void mT__23() throws RecognitionException {
+        try {
+            int _type = T__23;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:21:7: ( '===' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:21:9: '==='
+            {
+            match("==="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:22:7: ( '!==' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:22:9: '!=='
+            {
+            match("!=="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__24"
+
+    // $ANTLR start "T__25"
+    public final void mT__25() throws RecognitionException {
+        try {
+            int _type = T__25;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:23:7: ( '>=' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:23:9: '>='
+            {
+            match(">="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__25"
+
+    // $ANTLR start "T__26"
+    public final void mT__26() throws RecognitionException {
+        try {
+            int _type = T__26;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:24:7: ( '>' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:24:9: '>'
+            {
+            match('>'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__26"
+
+    // $ANTLR start "T__27"
+    public final void mT__27() throws RecognitionException {
+        try {
+            int _type = T__27;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:25:7: ( '<' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:25:9: '<'
+            {
+            match('<'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__27"
+
+    // $ANTLR start "T__28"
+    public final void mT__28() throws RecognitionException {
+        try {
+            int _type = T__28;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:26:7: ( '->' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:26:9: '->'
+            {
+            match("->"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__28"
+
+    // $ANTLR start "T__29"
+    public final void mT__29() throws RecognitionException {
+        try {
+            int _type = T__29;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:27:7: ( '..<' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:27:9: '..<'
+            {
+            match("..<"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__29"
+
+    // $ANTLR start "T__30"
+    public final void mT__30() throws RecognitionException {
+        try {
+            int _type = T__30;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28:7: ( '..' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28:9: '..'
+            {
+            match(".."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__30"
+
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:29:7: ( '=>' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:29:9: '=>'
+            {
+            match("=>"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
+    // $ANTLR start "T__32"
+    public final void mT__32() throws RecognitionException {
+        try {
+            int _type = T__32;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:30:7: ( '<>' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:30:9: '<>'
+            {
+            match("<>"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__32"
+
+    // $ANTLR start "T__33"
+    public final void mT__33() throws RecognitionException {
+        try {
+            int _type = T__33;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:31:7: ( '?:' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:31:9: '?:'
+            {
+            match("?:"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:32:7: ( '+' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:32:9: '+'
+            {
+            match('+'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__34"
+
+    // $ANTLR start "T__35"
+    public final void mT__35() throws RecognitionException {
+        try {
+            int _type = T__35;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:33:7: ( '-' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:33:9: '-'
+            {
+            match('-'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__35"
+
+    // $ANTLR start "T__36"
+    public final void mT__36() throws RecognitionException {
+        try {
+            int _type = T__36;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:34:7: ( '*' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:34:9: '*'
+            {
+            match('*'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__36"
+
+    // $ANTLR start "T__37"
+    public final void mT__37() throws RecognitionException {
+        try {
+            int _type = T__37;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:35:7: ( '**' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:35:9: '**'
+            {
+            match("**"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__37"
+
+    // $ANTLR start "T__38"
+    public final void mT__38() throws RecognitionException {
+        try {
+            int _type = T__38;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:36:7: ( '/' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:36:9: '/'
+            {
+            match('/'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__38"
+
+    // $ANTLR start "T__39"
+    public final void mT__39() throws RecognitionException {
+        try {
+            int _type = T__39;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:37:7: ( '%' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:37:9: '%'
+            {
+            match('%'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__39"
+
+    // $ANTLR start "T__40"
+    public final void mT__40() throws RecognitionException {
+        try {
+            int _type = T__40;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:38:7: ( '!' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:38:9: '!'
+            {
+            match('!'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__40"
+
+    // $ANTLR start "T__41"
+    public final void mT__41() throws RecognitionException {
+        try {
+            int _type = T__41;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:39:7: ( '++' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:39:9: '++'
+            {
+            match("++"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__41"
+
+    // $ANTLR start "T__42"
+    public final void mT__42() throws RecognitionException {
+        try {
+            int _type = T__42;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:40:7: ( '--' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:40:9: '--'
+            {
+            match("--"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__42"
+
+    // $ANTLR start "T__43"
+    public final void mT__43() throws RecognitionException {
+        try {
+            int _type = T__43;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:41:7: ( '.' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:41:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__43"
+
+    // $ANTLR start "T__44"
+    public final void mT__44() throws RecognitionException {
+        try {
+            int _type = T__44;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:42:7: ( 'val' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:42:9: 'val'
+            {
+            match("val"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__44"
+
+    // $ANTLR start "T__45"
+    public final void mT__45() throws RecognitionException {
+        try {
+            int _type = T__45;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:43:7: ( 'extends' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:43:9: 'extends'
+            {
+            match("extends"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__45"
+
+    // $ANTLR start "T__46"
+    public final void mT__46() throws RecognitionException {
+        try {
+            int _type = T__46;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:44:7: ( 'static' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:44:9: 'static'
+            {
+            match("static"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__46"
+
+    // $ANTLR start "T__47"
+    public final void mT__47() throws RecognitionException {
+        try {
+            int _type = T__47;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:45:7: ( 'import' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:45:9: 'import'
+            {
+            match("import"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__47"
+
+    // $ANTLR start "T__48"
+    public final void mT__48() throws RecognitionException {
+        try {
+            int _type = T__48;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:46:7: ( 'extension' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:46:9: 'extension'
+            {
+            match("extension"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__48"
+
+    // $ANTLR start "T__49"
+    public final void mT__49() throws RecognitionException {
+        try {
+            int _type = T__49;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:47:7: ( 'super' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:47:9: 'super'
+            {
+            match("super"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__49"
+
+    // $ANTLR start "T__50"
+    public final void mT__50() throws RecognitionException {
+        try {
+            int _type = T__50;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:48:7: ( 'false' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:48:9: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__50"
+
+    // $ANTLR start "T__51"
+    public final void mT__51() throws RecognitionException {
+        try {
+            int _type = T__51;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:49:7: ( 'NowDate' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:49:9: 'NowDate'
+            {
+            match("NowDate"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__51"
+
+    // $ANTLR start "T__52"
+    public final void mT__52() throws RecognitionException {
+        try {
+            int _type = T__52;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:50:7: ( 'StartDate' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:50:9: 'StartDate'
+            {
+            match("StartDate"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__52"
+
+    // $ANTLR start "T__53"
+    public final void mT__53() throws RecognitionException {
+        try {
+            int _type = T__53;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:51:7: ( 'UniversallyUniqueIdentifier' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:51:9: 'UniversallyUniqueIdentifier'
+            {
+            match("UniversallyUniqueIdentifier"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__53"
+
+    // $ANTLR start "T__54"
+    public final void mT__54() throws RecognitionException {
+        try {
+            int _type = T__54;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:52:7: ( 'Date' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:52:9: 'Date'
+            {
+            match("Date"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__54"
+
+    // $ANTLR start "T__55"
+    public final void mT__55() throws RecognitionException {
+        try {
+            int _type = T__55;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:53:7: ( 'Milliseconds' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:53:9: 'Milliseconds'
+            {
+            match("Milliseconds"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__55"
+
+    // $ANTLR start "T__56"
+    public final void mT__56() throws RecognitionException {
+        try {
+            int _type = T__56;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:54:7: ( 'Nanoseconds' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:54:9: 'Nanoseconds'
+            {
+            match("Nanoseconds"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__56"
+
+    // $ANTLR start "T__57"
+    public final void mT__57() throws RecognitionException {
+        try {
+            int _type = T__57;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:55:7: ( 'Random' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:55:9: 'Random'
+            {
+            match("Random"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__57"
+
+    // $ANTLR start "T__58"
+    public final void mT__58() throws RecognitionException {
+        try {
+            int _type = T__58;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:56:7: ( 'ExecuteContext' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:56:9: 'ExecuteContext'
+            {
+            match("ExecuteContext"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__58"
+
+    // $ANTLR start "T__59"
+    public final void mT__59() throws RecognitionException {
+        try {
+            int _type = T__59;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:57:7: ( 'none' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:57:9: 'none'
+            {
+            match("none"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__59"
+
+    // $ANTLR start "T__60"
+    public final void mT__60() throws RecognitionException {
+        try {
+            int _type = T__60;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:58:7: ( 'normal' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:58:9: 'normal'
+            {
+            match("normal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__60"
+
+    // $ANTLR start "T__61"
+    public final void mT__61() throws RecognitionException {
+        try {
+            int _type = T__61;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:59:7: ( 'important' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:59:9: 'important'
+            {
+            match("important"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__61"
+
+    // $ANTLR start "T__62"
+    public final void mT__62() throws RecognitionException {
+        try {
+            int _type = T__62;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:60:7: ( 'package' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:60:9: 'package'
+            {
+            match("package"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__62"
+
+    // $ANTLR start "T__63"
+    public final void mT__63() throws RecognitionException {
+        try {
+            int _type = T__63;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:61:7: ( 'title' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:61:9: 'title'
+            {
+            match("title"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__63"
+
+    // $ANTLR start "T__64"
+    public final void mT__64() throws RecognitionException {
+        try {
+            int _type = T__64;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:62:7: ( '{' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:62:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__64"
+
+    // $ANTLR start "T__65"
+    public final void mT__65() throws RecognitionException {
+        try {
+            int _type = T__65;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:63:7: ( '}' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:63:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__65"
+
+    // $ANTLR start "T__66"
+    public final void mT__66() throws RecognitionException {
+        try {
+            int _type = T__66;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:64:7: ( 'interchange' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:64:9: 'interchange'
+            {
+            match("interchange"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__66"
+
+    // $ANTLR start "T__67"
+    public final void mT__67() throws RecognitionException {
+        try {
+            int _type = T__67;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:65:7: ( 'file' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:65:9: 'file'
+            {
+            match("file"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__67"
+
+    // $ANTLR start "T__68"
+    public final void mT__68() throws RecognitionException {
+        try {
+            int _type = T__68;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:66:7: ( 'beans' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:66:9: 'beans'
+            {
+            match("beans"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__68"
+
+    // $ANTLR start "T__69"
+    public final void mT__69() throws RecognitionException {
+        try {
+            int _type = T__69;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:67:7: ( 'averageElementSize' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:67:9: 'averageElementSize'
+            {
+            match("averageElementSize"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__69"
+
+    // $ANTLR start "T__70"
+    public final void mT__70() throws RecognitionException {
+        try {
+            int _type = T__70;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:68:7: ( 'progressBarStyle' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:68:9: 'progressBarStyle'
+            {
+            match("progressBarStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__70"
+
+    // $ANTLR start "T__71"
+    public final void mT__71() throws RecognitionException {
+        try {
+            int _type = T__71;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:69:7: ( 'XML' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:69:9: 'XML'
+            {
+            match("XML"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__71"
+
+    // $ANTLR start "T__72"
+    public final void mT__72() throws RecognitionException {
+        try {
+            int _type = T__72;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:70:7: ( 'CSV' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:70:9: 'CSV'
+            {
+            match("CSV"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:71:7: ( 'delimiter' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:71:9: 'delimiter'
+            {
+            match("delimiter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:72:7: ( 'quoteCharacter' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:72:9: 'quoteCharacter'
+            {
+            match("quoteCharacter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__74"
+
+    // $ANTLR start "T__75"
+    public final void mT__75() throws RecognitionException {
+        try {
+            int _type = T__75;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:73:7: ( 'skipLines' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:73:9: 'skipLines'
+            {
+            match("skipLines"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:74:7: ( 'encoding' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:74:9: 'encoding'
+            {
+            match("encoding"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:75:7: ( 'EDI' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:75:9: 'EDI'
+            {
+            match("EDI"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
+
+    // $ANTLR start "T__78"
+    public final void mT__78() throws RecognitionException {
+        try {
+            int _type = T__78;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:76:7: ( 'mappingModel' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:76:9: 'mappingModel'
+            {
+            match("mappingModel"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__78"
+
+    // $ANTLR start "T__79"
+    public final void mT__79() throws RecognitionException {
+        try {
+            int _type = T__79;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:77:7: ( 'entity' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:77:9: 'entity'
+            {
+            match("entity"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__79"
+
+    // $ANTLR start "T__80"
+    public final void mT__80() throws RecognitionException {
+        try {
+            int _type = T__80;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:78:7: ( 'createOn' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:78:9: 'createOn'
+            {
+            match("createOn"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__80"
+
+    // $ANTLR start "T__81"
+    public final void mT__81() throws RecognitionException {
+        try {
+            int _type = T__81;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:79:7: ( 'expression' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:79:9: 'expression'
+            {
+            match("expression"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__81"
+
+    // $ANTLR start "T__82"
+    public final void mT__82() throws RecognitionException {
+        try {
+            int _type = T__82;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:80:7: ( 'lookup' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:80:9: 'lookup'
+            {
+            match("lookup"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__82"
+
+    // $ANTLR start "T__83"
+    public final void mT__83() throws RecognitionException {
+        try {
+            int _type = T__83;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:81:7: ( 'format' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:81:9: 'format'
+            {
+            match("format"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__83"
+
+    // $ANTLR start "T__84"
+    public final void mT__84() throws RecognitionException {
+        try {
+            int _type = T__84;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:82:7: ( 'mapping' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:82:9: 'mapping'
+            {
+            match("mapping"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__84"
+
+    // $ANTLR start "T__85"
+    public final void mT__85() throws RecognitionException {
+        try {
+            int _type = T__85;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:83:7: ( 'for' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:83:9: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__85"
+
+    // $ANTLR start "T__86"
+    public final void mT__86() throws RecognitionException {
+        try {
+            int _type = T__86;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:84:7: ( 'on' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:84:9: 'on'
+            {
+            match("on"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__86"
+
+    // $ANTLR start "T__87"
+    public final void mT__87() throws RecognitionException {
+        try {
+            int _type = T__87;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:85:7: ( 'with' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:85:9: 'with'
+            {
+            match("with"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__87"
+
+    // $ANTLR start "T__88"
+    public final void mT__88() throws RecognitionException {
+        try {
+            int _type = T__88;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:86:7: ( 'mapTo' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:86:9: 'mapTo'
+            {
+            match("mapTo"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__88"
+
+    // $ANTLR start "T__89"
+    public final void mT__89() throws RecognitionException {
+        try {
+            int _type = T__89;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:87:7: ( 'markerPath' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:87:9: 'markerPath'
+            {
+            match("markerPath"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__89"
+
+    // $ANTLR start "T__90"
+    public final void mT__90() throws RecognitionException {
+        try {
+            int _type = T__90;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:88:7: ( 'markerEntity' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:88:9: 'markerEntity'
+            {
+            match("markerEntity"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__90"
+
+    // $ANTLR start "T__91"
+    public final void mT__91() throws RecognitionException {
+        try {
+            int _type = T__91;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:89:7: ( 'coding' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:89:9: 'coding'
+            {
+            match("coding"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__91"
+
+    // $ANTLR start "T__92"
+    public final void mT__92() throws RecognitionException {
+        try {
+            int _type = T__92;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:90:7: ( 'locale' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:90:9: 'locale'
+            {
+            match("locale"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__92"
+
+    // $ANTLR start "T__93"
+    public final void mT__93() throws RecognitionException {
+        try {
+            int _type = T__93;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:91:7: ( 'copy' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:91:9: 'copy'
+            {
+            match("copy"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__93"
+
+    // $ANTLR start "T__94"
+    public final void mT__94() throws RecognitionException {
+        try {
+            int _type = T__94;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:92:7: ( 'from' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:92:9: 'from'
+            {
+            match("from"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__94"
+
+    // $ANTLR start "T__95"
+    public final void mT__95() throws RecognitionException {
+        try {
+            int _type = T__95;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:93:7: ( 'property' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:93:9: 'property'
+            {
+            match("property"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__95"
+
+    // $ANTLR start "T__96"
+    public final void mT__96() throws RecognitionException {
+        try {
+            int _type = T__96;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:94:7: ( 'assign' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:94:9: 'assign'
+            {
+            match("assign"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__96"
+
+    // $ANTLR start "T__97"
+    public final void mT__97() throws RecognitionException {
+        try {
+            int _type = T__97;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:95:7: ( 'as' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:95:9: 'as'
+            {
+            match("as"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__97"
+
+    // $ANTLR start "T__98"
+    public final void mT__98() throws RecognitionException {
+        try {
+            int _type = T__98;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:96:7: ( 'map' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:96:9: 'map'
+            {
+            match("map"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__98"
+
+    // $ANTLR start "T__99"
+    public final void mT__99() throws RecognitionException {
+        try {
+            int _type = T__99;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:97:7: ( 'to' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:97:9: 'to'
+            {
+            match("to"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__99"
+
+    // $ANTLR start "T__100"
+    public final void mT__100() throws RecognitionException {
+        try {
+            int _type = T__100;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:98:8: ( '@' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:98:10: '@'
+            {
+            match('@'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__100"
+
+    // $ANTLR start "T__101"
+    public final void mT__101() throws RecognitionException {
+        try {
+            int _type = T__101;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:99:8: ( '(' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:99:10: '('
+            {
+            match('('); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__101"
+
+    // $ANTLR start "T__102"
+    public final void mT__102() throws RecognitionException {
+        try {
+            int _type = T__102;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:100:8: ( ')' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:100:10: ')'
+            {
+            match(')'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__102"
+
+    // $ANTLR start "T__103"
+    public final void mT__103() throws RecognitionException {
+        try {
+            int _type = T__103;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:101:8: ( ',' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:101:10: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__103"
+
+    // $ANTLR start "T__104"
+    public final void mT__104() throws RecognitionException {
+        try {
+            int _type = T__104;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:102:8: ( ']' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:102:10: ']'
+            {
+            match(']'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__104"
+
+    // $ANTLR start "T__105"
+    public final void mT__105() throws RecognitionException {
+        try {
+            int _type = T__105;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:103:8: ( '#' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:103:10: '#'
+            {
+            match('#'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__105"
+
+    // $ANTLR start "T__106"
+    public final void mT__106() throws RecognitionException {
+        try {
+            int _type = T__106;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:104:8: ( '[' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:104:10: '['
+            {
+            match('['); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__106"
+
+    // $ANTLR start "T__107"
+    public final void mT__107() throws RecognitionException {
+        try {
+            int _type = T__107;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:105:8: ( 'instanceof' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:105:10: 'instanceof'
+            {
+            match("instanceof"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__107"
+
+    // $ANTLR start "T__108"
+    public final void mT__108() throws RecognitionException {
+        try {
+            int _type = T__108;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:106:8: ( ';' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:106:10: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__108"
+
+    // $ANTLR start "T__109"
+    public final void mT__109() throws RecognitionException {
+        try {
+            int _type = T__109;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:107:8: ( 'if' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:107:10: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__109"
+
+    // $ANTLR start "T__110"
+    public final void mT__110() throws RecognitionException {
+        try {
+            int _type = T__110;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:108:8: ( 'else' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:108:10: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__110"
+
+    // $ANTLR start "T__111"
+    public final void mT__111() throws RecognitionException {
+        try {
+            int _type = T__111;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:109:8: ( 'switch' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:109:10: 'switch'
+            {
+            match("switch"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__111"
+
+    // $ANTLR start "T__112"
+    public final void mT__112() throws RecognitionException {
+        try {
+            int _type = T__112;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:110:8: ( ':' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:110:10: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__112"
+
+    // $ANTLR start "T__113"
+    public final void mT__113() throws RecognitionException {
+        try {
+            int _type = T__113;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:111:8: ( 'default' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:111:10: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__113"
+
+    // $ANTLR start "T__114"
+    public final void mT__114() throws RecognitionException {
+        try {
+            int _type = T__114;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:112:8: ( 'case' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:112:10: 'case'
+            {
+            match("case"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__114"
+
+    // $ANTLR start "T__115"
+    public final void mT__115() throws RecognitionException {
+        try {
+            int _type = T__115;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:113:8: ( 'while' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:113:10: 'while'
+            {
+            match("while"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__115"
+
+    // $ANTLR start "T__116"
+    public final void mT__116() throws RecognitionException {
+        try {
+            int _type = T__116;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:114:8: ( 'do' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:114:10: 'do'
+            {
+            match("do"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__116"
+
+    // $ANTLR start "T__117"
+    public final void mT__117() throws RecognitionException {
+        try {
+            int _type = T__117;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:115:8: ( 'new' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:115:10: 'new'
+            {
+            match("new"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__117"
+
+    // $ANTLR start "T__118"
+    public final void mT__118() throws RecognitionException {
+        try {
+            int _type = T__118;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:116:8: ( 'null' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:116:10: 'null'
+            {
+            match("null"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__118"
+
+    // $ANTLR start "T__119"
+    public final void mT__119() throws RecognitionException {
+        try {
+            int _type = T__119;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:117:8: ( 'typeof' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:117:10: 'typeof'
+            {
+            match("typeof"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__119"
+
+    // $ANTLR start "T__120"
+    public final void mT__120() throws RecognitionException {
+        try {
+            int _type = T__120;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:118:8: ( 'throw' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:118:10: 'throw'
+            {
+            match("throw"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__120"
+
+    // $ANTLR start "T__121"
+    public final void mT__121() throws RecognitionException {
+        try {
+            int _type = T__121;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:119:8: ( 'return' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:119:10: 'return'
+            {
+            match("return"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__121"
+
+    // $ANTLR start "T__122"
+    public final void mT__122() throws RecognitionException {
+        try {
+            int _type = T__122;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:120:8: ( 'try' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:120:10: 'try'
+            {
+            match("try"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__122"
+
+    // $ANTLR start "T__123"
+    public final void mT__123() throws RecognitionException {
+        try {
+            int _type = T__123;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:121:8: ( 'finally' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:121:10: 'finally'
+            {
+            match("finally"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__123"
+
+    // $ANTLR start "T__124"
+    public final void mT__124() throws RecognitionException {
+        try {
+            int _type = T__124;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:122:8: ( 'synchronized' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:122:10: 'synchronized'
+            {
+            match("synchronized"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__124"
+
+    // $ANTLR start "T__125"
+    public final void mT__125() throws RecognitionException {
+        try {
+            int _type = T__125;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:123:8: ( 'catch' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:123:10: 'catch'
+            {
+            match("catch"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__125"
+
+    // $ANTLR start "T__126"
+    public final void mT__126() throws RecognitionException {
+        try {
+            int _type = T__126;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:124:8: ( '?' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:124:10: '?'
+            {
+            match('?'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__126"
+
+    // $ANTLR start "T__127"
+    public final void mT__127() throws RecognitionException {
+        try {
+            int _type = T__127;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:125:8: ( '&' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:125:10: '&'
+            {
+            match('&'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__127"
+
+    // $ANTLR start "T__128"
+    public final void mT__128() throws RecognitionException {
+        try {
+            int _type = T__128;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:126:8: ( 'described by' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:126:10: 'described by'
+            {
+            match("described by"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__128"
+
+    // $ANTLR start "T__129"
+    public final void mT__129() throws RecognitionException {
+        try {
+            int _type = T__129;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:127:8: ( 'create report' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:127:10: 'create report'
+            {
+            match("create report"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__129"
+
+    // $ANTLR start "T__130"
+    public final void mT__130() throws RecognitionException {
+        try {
+            int _type = T__130;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:128:8: ( 'refreshViewWhenFinished' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:128:10: 'refreshViewWhenFinished'
+            {
+            match("refreshViewWhenFinished"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__130"
+
+    // $ANTLR start "T__131"
+    public final void mT__131() throws RecognitionException {
+        try {
+            int _type = T__131;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:129:8: ( 'indent' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:129:10: 'indent'
+            {
+            match("indent"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__131"
+
+    // $ANTLR start "T__132"
+    public final void mT__132() throws RecognitionException {
+        try {
+            int _type = T__132;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:130:8: ( 'strict' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:130:10: 'strict'
+            {
+            match("strict"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__132"
+
+    // $ANTLR start "T__133"
+    public final void mT__133() throws RecognitionException {
+        try {
+            int _type = T__133;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:131:8: ( 'validateHeader' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:131:10: 'validateHeader'
+            {
+            match("validateHeader"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__133"
+
+    // $ANTLR start "T__134"
+    public final void mT__134() throws RecognitionException {
+        try {
+            int _type = T__134;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:132:8: ( 'validate' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:132:10: 'validate'
+            {
+            match("validate"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__134"
+
+    // $ANTLR start "T__135"
+    public final void mT__135() throws RecognitionException {
+        try {
+            int _type = T__135;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:133:8: ( 'marker' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:133:10: 'marker'
+            {
+            match("marker"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__135"
+
+    // $ANTLR start "T__136"
+    public final void mT__136() throws RecognitionException {
+        try {
+            int _type = T__136;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:134:8: ( 'recordElement' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:134:10: 'recordElement'
+            {
+            match("recordElement"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__136"
+
+    // $ANTLR start "T__137"
+    public final void mT__137() throws RecognitionException {
+        try {
+            int _type = T__137;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:135:8: ( 'recordList' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:135:10: 'recordList'
+            {
+            match("recordList"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__137"
+
+    // $ANTLR start "T__138"
+    public final void mT__138() throws RecognitionException {
+        try {
+            int _type = T__138;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:136:8: ( 'cacheSize' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:136:10: 'cacheSize'
+            {
+            match("cacheSize"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__138"
+
+    // $ANTLR start "T__139"
+    public final void mT__139() throws RecognitionException {
+        try {
+            int _type = T__139;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:137:8: ( 'allowNoResult' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:137:10: 'allowNoResult'
+            {
+            match("allowNoResult"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__139"
+
+    // $ANTLR start "T__140"
+    public final void mT__140() throws RecognitionException {
+        try {
+            int _type = T__140;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:138:8: ( 'allowNonuniqueResult' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:138:10: 'allowNonuniqueResult'
+            {
+            match("allowNonuniqueResult"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__140"
+
+    // $ANTLR start "T__141"
+    public final void mT__141() throws RecognitionException {
+        try {
+            int _type = T__141;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:139:8: ( 'markedBy' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:139:10: 'markedBy'
+            {
+            match("markedBy"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__141"
+
+    // $ANTLR start "T__142"
+    public final void mT__142() throws RecognitionException {
+        try {
+            int _type = T__142;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:140:8: ( '::' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:140:10: '::'
+            {
+            match("::"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__142"
+
+    // $ANTLR start "T__143"
+    public final void mT__143() throws RecognitionException {
+        try {
+            int _type = T__143;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:141:8: ( '?.' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:141:10: '?.'
+            {
+            match("?."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__143"
+
+    // $ANTLR start "T__144"
+    public final void mT__144() throws RecognitionException {
+        try {
+            int _type = T__144;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:142:8: ( '|' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:142:10: '|'
+            {
+            match('|'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__144"
+
+    // $ANTLR start "T__145"
+    public final void mT__145() throws RecognitionException {
+        try {
+            int _type = T__145;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:143:8: ( 'var' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:143:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__145"
+
+    // $ANTLR start "T__146"
+    public final void mT__146() throws RecognitionException {
+        try {
+            int _type = T__146;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:144:8: ( 'true' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:144:10: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__146"
+
+    // $ANTLR start "RULE_HEX"
+    public final void mRULE_HEX() throws RecognitionException {
+        try {
+            int _type = RULE_HEX;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:12: ( '0x' | '0X' )
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='0') ) {
+                int LA1_1 = input.LA(2);
+
+                if ( (LA1_1=='x') ) {
+                    alt1=1;
+                }
+                else if ( (LA1_1=='X') ) {
+                    alt1=2;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 1, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 1, 0, input);
+
+                throw nvae;
+            }
+            switch (alt1) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:13: '0x'
+                    {
+                    match("0x"); 
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:18: '0X'
+                    {
+                    match("0X"); 
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            int cnt2=0;
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='F')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='f')) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt2 >= 1 ) break loop2;
+                        EarlyExitException eee =
+                            new EarlyExitException(2, input);
+                        throw eee;
+                }
+                cnt2++;
+            } while (true);
+
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0=='#') ) {
+                alt4=1;
+            }
+            switch (alt4) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    {
+                    match('#'); 
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    int alt3=2;
+                    int LA3_0 = input.LA(1);
+
+                    if ( (LA3_0=='B'||LA3_0=='b') ) {
+                        alt3=1;
+                    }
+                    else if ( (LA3_0=='L'||LA3_0=='l') ) {
+                        alt3=2;
+                    }
+                    else {
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 3, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt3) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            {
+                            if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+                            if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+
+                            }
+                            break;
+                        case 2 :
+                            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28014:84: ( 'l' | 'L' )
+                            {
+                            if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_HEX"
+
+    // $ANTLR start "RULE_INT"
+    public final void mRULE_INT() throws RecognitionException {
+        try {
+            int _type = RULE_INT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28016:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28016:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            {
+            matchRange('0','9'); 
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28016:21: ( '0' .. '9' | '_' )*
+            loop5:
+            do {
+                int alt5=2;
+                int LA5_0 = input.LA(1);
+
+                if ( ((LA5_0>='0' && LA5_0<='9')||LA5_0=='_') ) {
+                    alt5=1;
+                }
+
+
+                switch (alt5) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||input.LA(1)=='_' ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop5;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_INT"
+
+    // $ANTLR start "RULE_DECIMAL"
+    public final void mRULE_DECIMAL() throws RecognitionException {
+        try {
+            int _type = RULE_DECIMAL;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28018:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28018:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            {
+            mRULE_INT(); 
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28018:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0=='E'||LA7_0=='e') ) {
+                alt7=1;
+            }
+            switch (alt7) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28018:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    {
+                    if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28018:36: ( '+' | '-' )?
+                    int alt6=2;
+                    int LA6_0 = input.LA(1);
+
+                    if ( (LA6_0=='+'||LA6_0=='-') ) {
+                        alt6=1;
+                    }
+                    switch (alt6) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:
+                            {
+                            if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+
+                            }
+                            break;
+
+                    }
+
+                    mRULE_INT(); 
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28018:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            int alt8=3;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0=='B'||LA8_0=='b') ) {
+                alt8=1;
+            }
+            else if ( (LA8_0=='D'||LA8_0=='F'||LA8_0=='L'||LA8_0=='d'||LA8_0=='f'||LA8_0=='l') ) {
+                alt8=2;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28018:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    {
+                    if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+                    if ( input.LA(1)=='D'||input.LA(1)=='I'||input.LA(1)=='d'||input.LA(1)=='i' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28018:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    {
+                    if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_DECIMAL"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28020:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28020:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28020:11: ( '^' )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0=='^') ) {
+                alt9=1;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28020:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28020:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            loop10:
+            do {
+                int alt10=2;
+                int LA10_0 = input.LA(1);
+
+                if ( (LA10_0=='$'||(LA10_0>='0' && LA10_0<='9')||(LA10_0>='A' && LA10_0<='Z')||LA10_0=='_'||(LA10_0>='a' && LA10_0<='z')) ) {
+                    alt10=1;
+                }
+
+
+                switch (alt10) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:
+            	    {
+            	    if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop10;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ID"
+
+    // $ANTLR start "RULE_STRING"
+    public final void mRULE_STRING() throws RecognitionException {
+        try {
+            int _type = RULE_STRING;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0=='\"') ) {
+                alt15=1;
+            }
+            else if ( (LA15_0=='\'') ) {
+                alt15=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 15, 0, input);
+
+                throw nvae;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    {
+                    match('\"'); 
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    loop11:
+                    do {
+                        int alt11=3;
+                        int LA11_0 = input.LA(1);
+
+                        if ( (LA11_0=='\\') ) {
+                            alt11=1;
+                        }
+                        else if ( ((LA11_0>='\u0000' && LA11_0<='!')||(LA11_0>='#' && LA11_0<='[')||(LA11_0>=']' && LA11_0<='\uFFFF')) ) {
+                            alt11=2;
+                        }
+
+
+                        switch (alt11) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop11;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:44: ( '\"' )?
+                    int alt12=2;
+                    int LA12_0 = input.LA(1);
+
+                    if ( (LA12_0=='\"') ) {
+                        alt12=1;
+                    }
+                    switch (alt12) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:44: '\"'
+                            {
+                            match('\"'); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    {
+                    match('\''); 
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    loop13:
+                    do {
+                        int alt13=3;
+                        int LA13_0 = input.LA(1);
+
+                        if ( (LA13_0=='\\') ) {
+                            alt13=1;
+                        }
+                        else if ( ((LA13_0>='\u0000' && LA13_0<='&')||(LA13_0>='(' && LA13_0<='[')||(LA13_0>=']' && LA13_0<='\uFFFF')) ) {
+                            alt13=2;
+                        }
+
+
+                        switch (alt13) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:55: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop13;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:79: ( '\\'' )?
+                    int alt14=2;
+                    int LA14_0 = input.LA(1);
+
+                    if ( (LA14_0=='\'') ) {
+                        alt14=1;
+                    }
+                    switch (alt14) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28022:79: '\\''
+                            {
+                            match('\''); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_STRING"
+
+    // $ANTLR start "RULE_ML_COMMENT"
+    public final void mRULE_ML_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_ML_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28024:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28024:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28024:24: ( options {greedy=false; } : . )*
+            loop16:
+            do {
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+
+                if ( (LA16_0=='*') ) {
+                    int LA16_1 = input.LA(2);
+
+                    if ( (LA16_1=='/') ) {
+                        alt16=2;
+                    }
+                    else if ( ((LA16_1>='\u0000' && LA16_1<='.')||(LA16_1>='0' && LA16_1<='\uFFFF')) ) {
+                        alt16=1;
+                    }
+
+
+                }
+                else if ( ((LA16_0>='\u0000' && LA16_0<=')')||(LA16_0>='+' && LA16_0<='\uFFFF')) ) {
+                    alt16=1;
+                }
+
+
+                switch (alt16) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28024:52: .
+            	    {
+            	    matchAny(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop16;
+                }
+            } while (true);
+
+            match("*/"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ML_COMMENT"
+
+    // $ANTLR start "RULE_SL_COMMENT"
+    public final void mRULE_SL_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_SL_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28026:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28026:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28026:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( ((LA17_0>='\u0000' && LA17_0<='\t')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\uFFFF')) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28026:24: ~ ( ( '\\n' | '\\r' ) )
+            	    {
+            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop17;
+                }
+            } while (true);
+
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28026:40: ( ( '\\r' )? '\\n' )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0=='\n'||LA19_0=='\r') ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28026:41: ( '\\r' )? '\\n'
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28026:41: ( '\\r' )?
+                    int alt18=2;
+                    int LA18_0 = input.LA(1);
+
+                    if ( (LA18_0=='\r') ) {
+                        alt18=1;
+                    }
+                    switch (alt18) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28026:41: '\\r'
+                            {
+                            match('\r'); 
+
+                            }
+                            break;
+
+                    }
+
+                    match('\n'); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_SL_COMMENT"
+
+    // $ANTLR start "RULE_WS"
+    public final void mRULE_WS() throws RecognitionException {
+        try {
+            int _type = RULE_WS;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28028:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28028:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28028:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            int cnt20=0;
+            loop20:
+            do {
+                int alt20=2;
+                int LA20_0 = input.LA(1);
+
+                if ( ((LA20_0>='\t' && LA20_0<='\n')||LA20_0=='\r'||LA20_0==' ') ) {
+                    alt20=1;
+                }
+
+
+                switch (alt20) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt20 >= 1 ) break loop20;
+                        EarlyExitException eee =
+                            new EarlyExitException(20, input);
+                        throw eee;
+                }
+                cnt20++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_WS"
+
+    // $ANTLR start "RULE_ANY_OTHER"
+    public final void mRULE_ANY_OTHER() throws RecognitionException {
+        try {
+            int _type = RULE_ANY_OTHER;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28030:16: ( . )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:28030:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=143;
+        alt21 = dfa21.predict(input);
+        switch (alt21) {
+            case 1 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:10: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 2 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:16: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 3 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:22: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 4 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:28: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 5 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:34: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 6 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:40: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 7 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:46: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 8 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:52: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 9 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:58: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 10 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:64: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 11 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:70: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 12 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:76: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 13 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:82: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 14 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:88: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 15 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:94: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 16 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:100: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 17 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:106: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 18 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:112: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 19 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:118: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 20 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:124: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 21 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:130: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 22 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:136: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 23 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:142: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 24 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:148: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 25 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:154: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 26 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:160: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 27 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:166: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 28 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:172: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 29 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:178: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 30 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:184: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 31 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:190: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 32 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:196: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 33 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:202: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 34 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:208: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 35 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:214: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 36 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:220: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 37 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:226: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 38 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:232: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 39 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:238: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 40 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:244: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 41 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:250: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 42 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:256: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 43 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:262: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 44 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:268: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 45 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:274: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 46 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:280: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 47 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:286: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 48 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:292: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 49 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:298: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 50 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:304: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 51 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:310: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 52 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:316: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 53 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:322: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 54 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:328: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 55 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:334: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 56 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:340: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 57 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:346: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 58 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:352: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 59 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:358: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 60 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:364: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 61 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:370: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 62 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:376: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 63 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:382: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 64 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:388: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 65 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:394: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 66 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:400: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 67 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:406: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 68 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:412: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 69 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:418: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 70 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:424: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 71 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:430: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 72 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:436: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 73 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:442: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 74 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:448: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 75 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:454: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 76 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:460: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 77 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:466: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 78 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:472: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 79 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:478: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 80 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:484: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 81 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:490: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 82 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:496: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 83 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:502: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 84 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:508: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 85 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:514: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 86 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:520: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 87 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:526: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 88 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:532: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 89 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:539: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 90 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:546: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 91 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:553: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 92 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:560: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 93 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:567: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 94 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:574: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 95 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:581: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 96 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:588: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 97 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:595: T__109
+                {
+                mT__109(); 
+
+                }
+                break;
+            case 98 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:602: T__110
+                {
+                mT__110(); 
+
+                }
+                break;
+            case 99 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:609: T__111
+                {
+                mT__111(); 
+
+                }
+                break;
+            case 100 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:616: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 101 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:623: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 102 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:630: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 103 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:637: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 104 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:644: T__116
+                {
+                mT__116(); 
+
+                }
+                break;
+            case 105 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:651: T__117
+                {
+                mT__117(); 
+
+                }
+                break;
+            case 106 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:658: T__118
+                {
+                mT__118(); 
+
+                }
+                break;
+            case 107 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:665: T__119
+                {
+                mT__119(); 
+
+                }
+                break;
+            case 108 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:672: T__120
+                {
+                mT__120(); 
+
+                }
+                break;
+            case 109 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:679: T__121
+                {
+                mT__121(); 
+
+                }
+                break;
+            case 110 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:686: T__122
+                {
+                mT__122(); 
+
+                }
+                break;
+            case 111 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:693: T__123
+                {
+                mT__123(); 
+
+                }
+                break;
+            case 112 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:700: T__124
+                {
+                mT__124(); 
+
+                }
+                break;
+            case 113 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:707: T__125
+                {
+                mT__125(); 
+
+                }
+                break;
+            case 114 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:714: T__126
+                {
+                mT__126(); 
+
+                }
+                break;
+            case 115 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:721: T__127
+                {
+                mT__127(); 
+
+                }
+                break;
+            case 116 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:728: T__128
+                {
+                mT__128(); 
+
+                }
+                break;
+            case 117 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:735: T__129
+                {
+                mT__129(); 
+
+                }
+                break;
+            case 118 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:742: T__130
+                {
+                mT__130(); 
+
+                }
+                break;
+            case 119 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:749: T__131
+                {
+                mT__131(); 
+
+                }
+                break;
+            case 120 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:756: T__132
+                {
+                mT__132(); 
+
+                }
+                break;
+            case 121 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:763: T__133
+                {
+                mT__133(); 
+
+                }
+                break;
+            case 122 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:770: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 123 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:777: T__135
+                {
+                mT__135(); 
+
+                }
+                break;
+            case 124 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:784: T__136
+                {
+                mT__136(); 
+
+                }
+                break;
+            case 125 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:791: T__137
+                {
+                mT__137(); 
+
+                }
+                break;
+            case 126 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:798: T__138
+                {
+                mT__138(); 
+
+                }
+                break;
+            case 127 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:805: T__139
+                {
+                mT__139(); 
+
+                }
+                break;
+            case 128 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:812: T__140
+                {
+                mT__140(); 
+
+                }
+                break;
+            case 129 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:819: T__141
+                {
+                mT__141(); 
+
+                }
+                break;
+            case 130 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:826: T__142
+                {
+                mT__142(); 
+
+                }
+                break;
+            case 131 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:833: T__143
+                {
+                mT__143(); 
+
+                }
+                break;
+            case 132 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:840: T__144
+                {
+                mT__144(); 
+
+                }
+                break;
+            case 133 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:847: T__145
+                {
+                mT__145(); 
+
+                }
+                break;
+            case 134 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:854: T__146
+                {
+                mT__146(); 
+
+                }
+                break;
+            case 135 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:861: RULE_HEX
+                {
+                mRULE_HEX(); 
+
+                }
+                break;
+            case 136 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:870: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 137 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:879: RULE_DECIMAL
+                {
+                mRULE_DECIMAL(); 
+
+                }
+                break;
+            case 138 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:892: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 139 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:900: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 140 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:912: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 141 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:928: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 142 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:944: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 143 :
+                // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1:952: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA21 dfa21 = new DFA21(this);
+    static final String DFA21_eotS =
+        "\1\uffff\1\76\1\100\1\102\1\105\1\111\1\114\1\120\1\122\1\124\1\126\1\130\1\132\1\135\17\137\2\uffff\13\137\10\uffff\1\u009e\1\137\2\u00a2\1\73\5\uffff\1\u00a7\26\uffff\1\u00a9\5\uffff\1\u00ab\4\uffff\1\137\1\uffff\12\137\1\u00bd\23\137\1\u00d3\3\137\2\uffff\2\137\1\u00db\4\137\1\u00e2\6\137\1\u00ee\2\137\12\uffff\1\137\1\uffff\1\u00a2\12\uffff\1\u00f5\1\u00f6\17\137\1\uffff\3\137\1\u010a\11\137\1\u0114\2\137\1\u0117\4\137\1\uffff\2\137\1\u011f\4\137\1\uffff\1\137\1\u0125\1\u0126\3\137\1\uffff\1\137\1\u012d\11\137\1\uffff\6\137\2\uffff\4\137\1\u0141\13\137\1\u014d\2\137\1\uffff\1\u0150\4\137\1\u0155\3\137\1\uffff\1\u0159\1\137\1\uffff\1\u015b\6\137\1\uffff\1\u0162\4\137\2\uffff\6\137\1\uffff\3\137\1\u0170\1\u0171\4\137\1\u0176\11\137\1\uffff\2\137\1\u0183\7\137\1\u018b\1\uffff\2\137\1\uffff\4\137\1\uffff\3\137\1\uffff\1\137\1\uffff\3\137\1\u0199\1\137\1\u019b\1\uffff\1\u019c\10\137\1\u01a5\3\137\2\uffff\1\u01aa\3\137\1\uffff\1\u01ae\10\137\1\u01b7\1\u01b8\1\u01b9\1\uffff\1\137\1\u01bb\1\137\1\u01be\2\137\1\u01c1\1\uffff\1\137\1\u01c3\5\137\1\u01c9\1\137\1\u01cb\3\137\1\uffff\1\u01cf\2\uffff\1\137\1\u01d1\6\137\1\uffff\1\u01da\2\137\1\u01de\1\uffff\1\137\1\u01e0\1\u01e1\1\uffff\1\u01e2\3\137\1\u01e7\3\137\3\uffff\1\137\1\uffff\2\137\1\uffff\2\137\1\uffff\1\u01f0\1\uffff\1\u01f1\4\137\1\uffff\1\137\1\uffff\1\u01f7\2\137\1\uffff\1\137\1\uffff\2\137\1\u01fe\2\137\1\u0202\2\137\1\uffff\2\137\2\uffff\1\137\3\uffff\3\137\1\u020c\1\uffff\2\137\1\u020f\5\137\2\uffff\5\137\1\uffff\1\137\1\u021b\4\137\1\uffff\3\137\1\uffff\2\137\1\u0225\1\u0226\5\137\1\uffff\1\u022c\1\137\1\uffff\1\u022e\1\137\1\u0230\3\137\1\u0234\4\137\1\uffff\3\137\1\u023c\5\137\2\uffff\1\u0242\4\137\1\uffff\1\u0247\1\uffff\1\137\1\uffff\1\137\1\u024a\1\137\1\uffff\7\137\2\uffff\2\137\1\u0255\1\137\1\uffff\2\137\1\u0259\1\137\1\uffff\1\137\1\u025c\1\uffff\1\u025d\11\137\1\uffff\3\137\1\uffff\1\137\1\u026b\2\uffff\1\137\1\u026d\6\137\1\u0274\1\u0275\3\137\1\uffff\1\137\1\uffff\3\137\1\u027d\2\137\2\uffff\1\137\1\u0281\1\u0282\1\137\1\u0284\2\137\1\uffff\1\137\1\u0288\1\137\2\uffff\1\137\1\uffff\3\137\1\uffff\2\137\1\u0290\4\137\1\uffff\4\137\1\u0299\3\137\1\uffff\3\137\1\u02a0\2\137\1\uffff\4\137\1\u02a7\1\137\1\uffff\2\137\1\u02ab\1\uffff";
+    static final String DFA21_eofS =
+        "\u02ac\uffff";
+    static final String DFA21_minS =
+        "\1\0\1\75\1\174\1\46\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\154\1\153\1\146\2\141\1\164\1\156\1\141\1\151\1\141\1\104\1\145\1\141\1\150\2\uffff\1\145\1\154\1\115\1\123\1\145\1\165\2\141\1\157\1\156\1\150\10\uffff\1\72\1\145\2\60\1\44\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\uffff\1\160\1\143\1\163\1\141\1\160\2\151\1\156\1\160\1\144\1\44\2\154\1\162\1\157\1\167\1\156\1\141\1\151\1\164\1\154\1\156\1\145\1\111\1\156\1\167\1\154\1\143\1\157\1\164\1\44\1\160\1\162\1\165\2\uffff\1\141\1\145\1\44\1\154\1\114\1\126\1\146\1\44\1\157\1\160\1\145\1\144\2\143\1\44\1\164\1\151\12\uffff\1\143\1\uffff\1\60\12\uffff\2\44\1\145\1\162\1\157\1\151\1\145\1\164\1\151\1\145\1\160\1\164\1\143\1\157\1\145\1\164\1\145\1\uffff\1\163\1\145\1\141\1\44\1\155\1\104\1\157\1\162\1\166\1\145\1\154\1\144\1\143\1\44\1\145\1\155\1\44\1\154\1\153\1\147\1\154\1\uffff\1\145\1\157\1\44\1\145\1\156\1\162\1\151\1\uffff\1\157\2\44\1\151\1\141\1\143\1\uffff\1\164\1\44\1\153\1\141\1\151\1\171\1\145\1\143\1\150\1\153\1\141\1\uffff\1\150\1\154\1\165\1\162\1\157\1\144\2\uffff\1\156\1\145\1\144\1\164\1\44\1\151\1\143\1\162\1\114\1\143\1\150\2\162\1\141\1\156\1\145\1\44\1\154\1\141\1\uffff\1\44\1\141\1\163\1\164\1\145\1\44\1\151\1\157\1\165\1\uffff\1\44\1\141\1\uffff\1\44\1\141\1\162\2\145\1\157\1\167\1\uffff\1\44\1\163\1\141\1\147\1\167\2\uffff\1\155\1\165\1\162\1\145\1\151\1\157\1\uffff\1\145\1\164\1\156\2\44\1\150\1\145\1\165\1\154\1\44\1\145\1\162\1\145\1\162\1\141\1\144\1\163\1\151\1\171\1\uffff\1\143\1\164\1\44\1\151\1\150\1\162\1\164\1\143\1\156\1\164\1\44\1\uffff\1\154\1\164\1\uffff\1\164\1\145\1\104\1\162\1\uffff\1\163\1\155\1\164\1\uffff\1\154\1\uffff\1\147\1\145\1\162\1\44\1\146\1\44\1\uffff\1\44\1\147\1\156\1\116\1\151\1\154\1\151\1\103\1\156\1\44\1\144\1\145\1\147\2\uffff\1\44\1\123\1\160\1\145\1\uffff\1\44\1\156\1\163\1\144\1\164\1\163\1\151\1\163\1\156\3\44\1\uffff\1\156\1\44\1\157\1\44\1\150\1\143\1\44\1\uffff\1\171\1\44\1\145\1\143\1\141\1\163\1\145\1\44\1\145\1\44\1\145\1\163\1\164\1\uffff\1\44\2\uffff\1\145\1\44\1\157\2\164\1\142\1\150\1\147\1\uffff\1\44\1\102\1\40\1\44\1\uffff\1\151\2\44\1\uffff\1\44\1\150\1\105\1\145\1\44\1\157\1\151\1\147\3\uffff\1\145\1\uffff\2\156\1\uffff\1\141\1\145\1\uffff\1\44\1\uffff\1\44\1\157\1\164\1\141\1\143\1\uffff\1\103\1\uffff\1\44\1\163\1\171\1\uffff\1\105\1\uffff\1\122\1\145\1\44\1\145\1\141\1\44\1\141\1\156\1\uffff\1\171\1\156\2\uffff\1\172\3\uffff\1\126\1\154\1\151\1\44\1\uffff\1\156\1\157\1\44\1\163\1\151\1\164\1\156\1\157\2\uffff\1\156\1\145\1\154\2\157\1\uffff\1\102\1\44\1\154\1\145\1\165\1\162\1\uffff\1\144\1\162\1\157\1\uffff\2\164\2\44\1\145\1\151\1\145\1\163\1\145\1\uffff\1\44\1\156\1\uffff\1\44\1\172\1\44\1\147\1\146\1\144\1\44\1\154\2\156\1\141\1\uffff\1\145\1\163\1\156\1\44\1\40\1\141\1\144\1\150\1\151\2\uffff\1\44\1\145\1\155\1\164\1\141\1\uffff\1\44\1\uffff\1\145\1\uffff\1\145\1\44\1\163\1\uffff\1\171\1\144\1\164\1\162\1\155\1\165\1\151\2\uffff\1\143\1\145\1\44\1\164\1\uffff\1\167\1\145\1\44\1\144\1\uffff\1\144\1\44\1\uffff\1\44\1\125\1\163\1\145\1\123\1\145\1\154\1\161\1\164\1\154\1\uffff\1\171\1\127\1\156\1\uffff\1\145\1\44\2\uffff\1\156\1\44\1\170\1\164\1\156\1\164\1\165\1\145\2\44\1\150\1\164\1\162\1\uffff\1\151\1\uffff\1\164\1\171\1\164\1\44\1\145\1\162\2\uffff\1\145\2\44\1\161\1\44\1\154\1\123\1\uffff\1\122\1\44\1\156\2\uffff\1\165\1\uffff\1\145\1\151\1\145\1\uffff\1\106\1\145\1\44\1\172\1\163\1\151\1\111\1\uffff\1\145\1\165\1\156\1\144\1\44\1\154\1\151\1\145\1\uffff\1\164\1\163\1\156\1\44\1\150\1\164\1\uffff\1\145\1\151\1\144\1\146\1\44\1\151\1\uffff\1\145\1\162\1\44\1\uffff";
+    static final String DFA21_maxS =
+        "\1\uffff\1\76\1\174\1\46\1\75\1\76\5\75\1\76\1\56\1\72\1\141\1\170\1\171\1\156\1\162\1\157\1\164\1\156\1\141\1\151\1\141\1\170\1\165\1\162\1\171\2\uffff\1\145\1\166\1\115\1\123\1\157\1\165\1\141\1\162\1\157\1\156\1\151\10\uffff\1\72\1\145\1\170\1\154\1\172\5\uffff\1\75\26\uffff\1\75\5\uffff\1\74\4\uffff\1\162\1\uffff\2\164\1\163\1\162\1\160\2\151\1\156\1\160\1\164\1\172\1\154\1\156\1\162\1\157\1\167\1\156\1\141\1\151\1\164\1\154\1\156\1\145\1\111\1\162\1\167\1\154\1\143\1\157\1\164\1\172\1\160\1\162\1\171\2\uffff\1\141\1\145\1\172\1\154\1\114\1\126\1\163\1\172\1\157\1\162\1\145\1\160\1\164\1\157\1\172\1\164\1\151\12\uffff\1\164\1\uffff\1\154\12\uffff\2\172\1\145\1\162\1\157\1\151\1\145\1\164\1\151\1\145\1\160\1\164\1\143\1\157\1\145\1\164\1\145\1\uffff\1\163\1\145\1\141\1\172\1\155\1\104\1\157\1\162\1\166\1\145\1\154\1\144\1\143\1\172\1\145\1\155\1\172\1\154\1\153\1\160\1\154\1\uffff\1\145\1\157\1\172\1\145\1\156\1\162\1\151\1\uffff\1\157\2\172\1\151\1\141\1\143\1\uffff\1\164\1\172\1\153\1\141\1\151\1\171\1\145\1\143\1\150\1\153\1\141\1\uffff\1\150\1\154\1\165\1\162\1\157\1\144\2\uffff\1\156\1\145\1\144\1\164\1\172\1\151\1\143\1\162\1\114\1\143\1\150\2\162\1\141\1\156\1\145\1\172\1\154\1\141\1\uffff\1\172\1\141\1\163\1\164\1\145\1\172\1\151\1\157\1\165\1\uffff\1\172\1\141\1\uffff\1\172\1\141\1\162\2\145\1\157\1\167\1\uffff\1\172\1\163\1\141\1\147\1\167\2\uffff\1\155\1\165\1\162\1\145\1\151\1\157\1\uffff\1\145\1\164\1\156\2\172\1\150\1\145\1\165\1\154\1\172\1\145\1\162\1\145\1\162\1\141\2\163\1\151\1\171\1\uffff\1\143\1\164\1\172\1\151\1\150\1\162\1\164\1\143\1\156\1\164\1\172\1\uffff\1\154\1\164\1\uffff\1\164\1\145\1\104\1\162\1\uffff\1\163\1\155\1\164\1\uffff\1\154\1\uffff\1\147\1\145\1\162\1\172\1\146\1\172\1\uffff\1\172\1\147\1\156\1\116\1\151\1\154\1\151\1\103\1\156\1\172\1\162\1\145\1\147\2\uffff\1\172\1\123\1\160\1\145\1\uffff\1\172\1\156\1\163\1\144\1\164\1\163\1\151\1\163\1\156\3\172\1\uffff\1\156\1\172\1\157\1\172\1\150\1\143\1\172\1\uffff\1\171\1\172\1\145\1\143\1\141\1\163\1\145\1\172\1\145\1\172\1\145\1\163\1\164\1\uffff\1\172\2\uffff\1\145\1\172\1\157\2\164\1\142\1\150\1\147\1\uffff\1\172\1\102\1\117\1\172\1\uffff\1\151\2\172\1\uffff\1\172\1\150\1\114\1\145\1\172\1\157\1\151\1\147\3\uffff\1\145\1\uffff\2\156\1\uffff\1\141\1\145\1\uffff\1\172\1\uffff\1\172\1\157\1\164\1\141\1\143\1\uffff\1\103\1\uffff\1\172\1\163\1\171\1\uffff\1\105\1\uffff\1\156\1\145\1\172\1\145\1\141\1\172\1\141\1\156\1\uffff\1\171\1\156\2\uffff\1\172\3\uffff\1\126\1\154\1\151\1\172\1\uffff\1\156\1\157\1\172\1\163\1\151\1\164\1\156\1\157\2\uffff\1\156\1\145\1\154\2\157\1\uffff\1\102\1\172\1\154\1\145\1\165\1\162\1\uffff\1\144\1\162\1\157\1\uffff\2\164\2\172\1\145\1\151\1\145\1\163\1\145\1\uffff\1\172\1\156\1\uffff\3\172\1\147\1\146\1\144\1\172\1\154\2\156\1\141\1\uffff\1\145\1\163\1\156\1\172\1\40\1\141\1\144\1\150\1\151\2\uffff\1\172\1\145\1\155\1\164\1\141\1\uffff\1\172\1\uffff\1\145\1\uffff\1\145\1\172\1\163\1\uffff\1\171\1\144\1\164\1\162\1\155\1\165\1\151\2\uffff\1\143\1\145\1\172\1\164\1\uffff\1\167\1\145\1\172\1\144\1\uffff\1\144\1\172\1\uffff\1\172\1\125\1\163\1\145\1\123\1\145\1\154\1\161\1\164\1\154\1\uffff\1\171\1\127\1\156\1\uffff\1\145\1\172\2\uffff\1\156\1\172\1\170\1\164\1\156\1\164\1\165\1\145\2\172\1\150\1\164\1\162\1\uffff\1\151\1\uffff\1\164\1\171\1\164\1\172\1\145\1\162\2\uffff\1\145\2\172\1\161\1\172\1\154\1\123\1\uffff\1\122\1\172\1\156\2\uffff\1\165\1\uffff\1\145\1\151\1\145\1\uffff\1\106\1\145\2\172\1\163\1\151\1\111\1\uffff\1\145\1\165\1\156\1\144\1\172\1\154\1\151\1\145\1\uffff\1\164\1\163\1\156\1\172\1\150\1\164\1\uffff\1\145\1\151\1\144\1\146\1\172\1\151\1\uffff\1\145\1\162\1\172\1\uffff";
+    static final String DFA21_acceptS =
+        "\35\uffff\1\64\1\65\13\uffff\1\130\1\131\1\132\1\133\1\134\1\135\1\136\1\140\5\uffff\1\u008a\2\u008b\1\u008e\1\u008f\1\uffff\1\23\1\1\1\2\1\u0084\1\3\1\163\1\4\1\35\1\26\1\5\1\20\1\36\1\27\1\6\1\31\1\30\1\7\1\u008c\1\u008d\1\32\1\10\1\33\1\uffff\1\34\1\15\1\16\1\24\1\17\1\uffff\1\37\1\25\1\u0083\1\162\1\uffff\1\u008a\42\uffff\1\64\1\65\21\uffff\1\130\1\131\1\132\1\133\1\134\1\135\1\136\1\140\1\u0082\1\144\1\uffff\1\u0087\1\uffff\1\u0088\1\u0089\1\u008b\1\u008e\1\13\1\11\1\14\1\12\1\21\1\22\21\uffff\1\141\25\uffff\1\127\7\uffff\1\125\6\uffff\1\150\13\uffff\1\112\6\uffff\1\40\1\u0085\23\uffff\1\111\11\uffff\1\101\2\uffff\1\151\7\uffff\1\156\5\uffff\1\73\1\74\6\uffff\1\126\23\uffff\1\142\13\uffff\1\67\2\uffff\1\122\4\uffff\1\52\3\uffff\1\57\1\uffff\1\152\6\uffff\1\u0086\15\uffff\1\121\1\146\4\uffff\1\113\14\uffff\1\45\7\uffff\1\46\15\uffff\1\63\1\uffff\1\154\1\70\10\uffff\1\114\4\uffff\1\161\3\uffff\1\147\10\uffff\1\103\1\42\1\170\1\uffff\1\143\2\uffff\1\43\2\uffff\1\167\1\uffff\1\107\5\uffff\1\55\1\uffff\1\60\3\uffff\1\153\1\uffff\1\124\10\uffff\1\173\2\uffff\1\165\1\117\1\uffff\1\106\1\120\1\155\4\uffff\1\41\10\uffff\1\157\1\47\5\uffff\1\62\6\uffff\1\145\3\uffff\1\110\11\uffff\1\172\2\uffff\1\100\13\uffff\1\123\11\uffff\1\u0081\1\104\5\uffff\1\44\1\uffff\1\77\1\uffff\1\61\3\uffff\1\50\7\uffff\1\75\1\164\4\uffff\1\176\4\uffff\1\105\2\uffff\1\137\12\uffff\1\115\3\uffff\1\175\2\uffff\1\66\1\54\15\uffff\1\160\1\uffff\1\53\6\uffff\1\102\1\116\7\uffff\1\177\3\uffff\1\174\1\171\1\uffff\1\56\3\uffff\1\76\7\uffff\1\72\10\uffff\1\71\6\uffff\1\u0080\6\uffff\1\166\3\uffff\1\51";
+    static final String DFA21_specialS =
+        "\1\0\u02ab\uffff}>";
+    static final String[] DFA21_transitionS = {
+            "\11\73\2\72\2\73\1\72\22\73\1\72\1\11\1\70\1\57\1\67\1\10\1\3\1\71\1\53\1\54\1\6\1\4\1\55\1\5\1\14\1\7\1\64\11\65\1\62\1\61\1\13\1\1\1\12\1\15\1\52\2\67\1\42\1\26\1\31\7\67\1\27\1\23\3\67\1\30\1\24\1\67\1\25\2\67\1\41\2\67\1\60\1\73\1\56\1\66\1\67\1\73\1\40\1\37\1\46\1\43\1\17\1\22\2\67\1\21\2\67\1\47\1\45\1\32\1\50\1\33\1\44\1\63\1\20\1\34\1\67\1\16\1\51\3\67\1\35\1\2\1\36\uff82\73",
+            "\1\74\1\75",
+            "\1\77",
+            "\1\101",
+            "\1\104\21\uffff\1\103",
+            "\1\110\17\uffff\1\106\1\107",
+            "\1\113\22\uffff\1\112",
+            "\1\116\4\uffff\1\117\15\uffff\1\115",
+            "\1\121",
+            "\1\123",
+            "\1\125",
+            "\1\127",
+            "\1\131",
+            "\1\134\13\uffff\1\133",
+            "\1\136",
+            "\1\142\1\uffff\1\141\11\uffff\1\140",
+            "\1\145\10\uffff\1\143\1\144\1\uffff\1\146\1\uffff\1\147",
+            "\1\152\6\uffff\1\150\1\151",
+            "\1\153\7\uffff\1\154\5\uffff\1\155\2\uffff\1\156",
+            "\1\160\15\uffff\1\157",
+            "\1\161",
+            "\1\162",
+            "\1\163",
+            "\1\164",
+            "\1\165",
+            "\1\167\63\uffff\1\166",
+            "\1\171\11\uffff\1\170\5\uffff\1\172",
+            "\1\173\20\uffff\1\174",
+            "\1\u0080\1\175\5\uffff\1\176\2\uffff\1\u0081\6\uffff\1\177",
+            "",
+            "",
+            "\1\u0084",
+            "\1\u0087\6\uffff\1\u0086\2\uffff\1\u0085",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a\11\uffff\1\u008b",
+            "\1\u008c",
+            "\1\u008d",
+            "\1\u0090\15\uffff\1\u008f\2\uffff\1\u008e",
+            "\1\u0091",
+            "\1\u0092",
+            "\1\u0094\1\u0093",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u009d",
+            "\1\u009f",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3\13\uffff\1\u00a0\6\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3\13\uffff\1\u00a0",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3\22\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3",
+            "\1\137\34\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00a6",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00a8",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00aa",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00ac\5\uffff\1\u00ad",
+            "",
+            "\1\u00af\3\uffff\1\u00ae",
+            "\1\u00b0\20\uffff\1\u00b1",
+            "\1\u00b2",
+            "\1\u00b3\20\uffff\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9",
+            "\1\u00bc\16\uffff\1\u00bb\1\u00ba",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u00be",
+            "\1\u00bf\1\uffff\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\1\u00c3",
+            "\1\u00c4",
+            "\1\u00c5",
+            "\1\u00c6",
+            "\1\u00c7",
+            "\1\u00c8",
+            "\1\u00c9",
+            "\1\u00ca",
+            "\1\u00cb",
+            "\1\u00cc\3\uffff\1\u00cd",
+            "\1\u00ce",
+            "\1\u00cf",
+            "\1\u00d0",
+            "\1\u00d1",
+            "\1\u00d2",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u00d4",
+            "\1\u00d5",
+            "\1\u00d7\3\uffff\1\u00d6",
+            "",
+            "",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\22\137\1\u00da\7\137",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00e0\5\uffff\1\u00df\6\uffff\1\u00e1",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u00e3",
+            "\1\u00e4\1\uffff\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7\13\uffff\1\u00e8",
+            "\1\u00eb\17\uffff\1\u00e9\1\u00ea",
+            "\1\u00ed\13\uffff\1\u00ec",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u00ef",
+            "\1\u00f0",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00f3\2\uffff\1\u00f2\15\uffff\1\u00f1",
+            "",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3\22\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\10\137\1\u00f4\21\137",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00f9",
+            "\1\u00fa",
+            "\1\u00fb",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "",
+            "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\14\137\1\u0109\15\137",
+            "\1\u010b",
+            "\1\u010c",
+            "\1\u010d",
+            "\1\u010e",
+            "\1\u010f",
+            "\1\u0110",
+            "\1\u0111",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0115",
+            "\1\u0116",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011a\10\uffff\1\u011b",
+            "\1\u011c",
+            "",
+            "\1\u011d",
+            "\1\u011e",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0120",
+            "\1\u0121",
+            "\1\u0122",
+            "\1\u0123",
+            "",
+            "\1\u0124",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "",
+            "\1\u012a",
+            "\1\137\13\uffff\12\137\7\uffff\23\137\1\u012c\6\137\4\uffff\1\137\1\uffff\17\137\1\u012b\12\137",
+            "\1\u012e",
+            "\1\u012f",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132",
+            "\1\u0133",
+            "\1\u0134",
+            "\1\u0135",
+            "\1\u0136",
+            "",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\u0139",
+            "\1\u013a",
+            "\1\u013b",
+            "\1\u013c",
+            "",
+            "",
+            "\1\u013d",
+            "\1\u013e",
+            "\1\u013f",
+            "\1\u0140",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0142",
+            "\1\u0143",
+            "\1\u0144",
+            "\1\u0145",
+            "\1\u0146",
+            "\1\u0147",
+            "\1\u0148",
+            "\1\u0149",
+            "\1\u014a",
+            "\1\u014b",
+            "\1\u014c",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u014e",
+            "\1\u014f",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0151",
+            "\1\u0152",
+            "\1\u0153",
+            "\1\u0154",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0156",
+            "\1\u0157",
+            "\1\u0158",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u015a",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u015c",
+            "\1\u015d",
+            "\1\u015e",
+            "\1\u015f",
+            "\1\u0160",
+            "\1\u0161",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0163",
+            "\1\u0164",
+            "\1\u0165",
+            "\1\u0166",
+            "",
+            "",
+            "\1\u0167",
+            "\1\u0168",
+            "\1\u0169",
+            "\1\u016a",
+            "\1\u016b",
+            "\1\u016c",
+            "",
+            "\1\u016d",
+            "\1\u016e",
+            "\1\u016f",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0172",
+            "\1\u0173",
+            "\1\u0174",
+            "\1\u0175",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0177",
+            "\1\u0178",
+            "\1\u0179",
+            "\1\u017a",
+            "\1\u017b",
+            "\1\u017c\16\uffff\1\u017d",
+            "\1\u017e",
+            "\1\u017f",
+            "\1\u0180",
+            "",
+            "\1\u0181",
+            "\1\u0182",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0184",
+            "\1\u0185",
+            "\1\u0186",
+            "\1\u0187",
+            "\1\u0188",
+            "\1\u0189",
+            "\1\u018a",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\u018c",
+            "\1\u018d",
+            "",
+            "\1\u018e",
+            "\1\u018f",
+            "\1\u0190",
+            "\1\u0191",
+            "",
+            "\1\u0192",
+            "\1\u0193",
+            "\1\u0194",
+            "",
+            "\1\u0195",
+            "",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u019a",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u019d",
+            "\1\u019e",
+            "\1\u019f",
+            "\1\u01a0",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\u01a3",
+            "\1\u01a4",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01a7\15\uffff\1\u01a6",
+            "\1\u01a8",
+            "\1\u01a9",
+            "",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01ab",
+            "\1\u01ac",
+            "\1\u01ad",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01af",
+            "\1\u01b0",
+            "\1\u01b1",
+            "\1\u01b2",
+            "\1\u01b3",
+            "\1\u01b4",
+            "\1\u01b5",
+            "\1\u01b6",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\u01ba",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01bc",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\1\u01bd\31\137",
+            "\1\u01bf",
+            "\1\u01c0",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\u01c2",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01c4",
+            "\1\u01c5",
+            "\1\u01c6",
+            "\1\u01c7",
+            "\1\u01c8",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01ca",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01cc",
+            "\1\u01cd",
+            "\1\u01ce",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "",
+            "\1\u01d0",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01d2",
+            "\1\u01d3",
+            "\1\u01d4",
+            "\1\u01d5",
+            "\1\u01d6",
+            "\1\u01d7",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\4\137\1\u01d9\12\137\1\u01d8\12\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01db",
+            "\1\u01dd\56\uffff\1\u01dc",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\u01df",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01e3",
+            "\1\u01e4\6\uffff\1\u01e5",
+            "\1\u01e6",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01e8",
+            "\1\u01e9",
+            "\1\u01ea",
+            "",
+            "",
+            "",
+            "\1\u01eb",
+            "",
+            "\1\u01ec",
+            "\1\u01ed",
+            "",
+            "\1\u01ee",
+            "\1\u01ef",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01f2",
+            "\1\u01f3",
+            "\1\u01f4",
+            "\1\u01f5",
+            "",
+            "\1\u01f6",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01f8",
+            "\1\u01f9",
+            "",
+            "\1\u01fa",
+            "",
+            "\1\u01fb\33\uffff\1\u01fc",
+            "\1\u01fd",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u01ff",
+            "\1\u0200",
+            "\1\137\13\uffff\12\137\7\uffff\14\137\1\u0201\15\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0203",
+            "\1\u0204",
+            "",
+            "\1\u0205",
+            "\1\u0206",
+            "",
+            "",
+            "\1\u0207",
+            "",
+            "",
+            "",
+            "\1\u0208",
+            "\1\u0209",
+            "\1\u020a",
+            "\1\137\13\uffff\12\137\7\uffff\7\137\1\u020b\22\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\u020d",
+            "\1\u020e",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0210",
+            "\1\u0211",
+            "\1\u0212",
+            "\1\u0213",
+            "\1\u0214",
+            "",
+            "",
+            "\1\u0215",
+            "\1\u0216",
+            "\1\u0217",
+            "\1\u0218",
+            "\1\u0219",
+            "",
+            "\1\u021a",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u021c",
+            "\1\u021d",
+            "\1\u021e",
+            "\1\u021f",
+            "",
+            "\1\u0220",
+            "\1\u0221",
+            "\1\u0222",
+            "",
+            "\1\u0223",
+            "\1\u0224",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0227",
+            "\1\u0228",
+            "\1\u0229",
+            "\1\u022a",
+            "\1\u022b",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u022d",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u022f",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0231",
+            "\1\u0232",
+            "\1\u0233",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0235",
+            "\1\u0236",
+            "\1\u0237",
+            "\1\u0238",
+            "",
+            "\1\u0239",
+            "\1\u023a",
+            "\1\u023b",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u023d",
+            "\1\u023e",
+            "\1\u023f",
+            "\1\u0240",
+            "\1\u0241",
+            "",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0243",
+            "\1\u0244",
+            "\1\u0245",
+            "\1\u0246",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\u0248",
+            "",
+            "\1\u0249",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u024b",
+            "",
+            "\1\u024c",
+            "\1\u024d",
+            "\1\u024e",
+            "\1\u024f",
+            "\1\u0250",
+            "\1\u0251",
+            "\1\u0252",
+            "",
+            "",
+            "\1\u0253",
+            "\1\u0254",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0256",
+            "",
+            "\1\u0257",
+            "\1\u0258",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u025a",
+            "",
+            "\1\u025b",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u025e",
+            "\1\u025f",
+            "\1\u0260",
+            "\1\u0261",
+            "\1\u0262",
+            "\1\u0263",
+            "\1\u0264",
+            "\1\u0265",
+            "\1\u0266",
+            "",
+            "\1\u0267",
+            "\1\u0268",
+            "\1\u0269",
+            "",
+            "\1\u026a",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "",
+            "",
+            "\1\u026c",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u026e",
+            "\1\u026f",
+            "\1\u0270",
+            "\1\u0271",
+            "\1\u0272",
+            "\1\u0273",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0276",
+            "\1\u0277",
+            "\1\u0278",
+            "",
+            "\1\u0279",
+            "",
+            "\1\u027a",
+            "\1\u027b",
+            "\1\u027c",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u027e",
+            "\1\u027f",
+            "",
+            "",
+            "\1\u0280",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0283",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0285",
+            "\1\u0286",
+            "",
+            "\1\u0287",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0289",
+            "",
+            "",
+            "\1\u028a",
+            "",
+            "\1\u028b",
+            "\1\u028c",
+            "\1\u028d",
+            "",
+            "\1\u028e",
+            "\1\u028f",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u0291",
+            "\1\u0292",
+            "\1\u0293",
+            "\1\u0294",
+            "",
+            "\1\u0295",
+            "\1\u0296",
+            "\1\u0297",
+            "\1\u0298",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u029a",
+            "\1\u029b",
+            "\1\u029c",
+            "",
+            "\1\u029d",
+            "\1\u029e",
+            "\1\u029f",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u02a1",
+            "\1\u02a2",
+            "",
+            "\1\u02a3",
+            "\1\u02a4",
+            "\1\u02a5",
+            "\1\u02a6",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            "\1\u02a8",
+            "",
+            "\1\u02a9",
+            "\1\u02aa",
+            "\1\137\13\uffff\12\137\7\uffff\32\137\4\uffff\1\137\1\uffff\32\137",
+            ""
+    };
+
+    static final short[] DFA21_eot = DFA.unpackEncodedString(DFA21_eotS);
+    static final short[] DFA21_eof = DFA.unpackEncodedString(DFA21_eofS);
+    static final char[] DFA21_min = DFA.unpackEncodedStringToUnsignedChars(DFA21_minS);
+    static final char[] DFA21_max = DFA.unpackEncodedStringToUnsignedChars(DFA21_maxS);
+    static final short[] DFA21_accept = DFA.unpackEncodedString(DFA21_acceptS);
+    static final short[] DFA21_special = DFA.unpackEncodedString(DFA21_specialS);
+    static final short[][] DFA21_transition;
+
+    static {
+        int numStates = DFA21_transitionS.length;
+        DFA21_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA21_transition[i] = DFA.unpackEncodedString(DFA21_transitionS[i]);
+        }
+    }
+
+    class DFA21 extends DFA {
+
+        public DFA21(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 21;
+            this.eot = DFA21_eot;
+            this.eof = DFA21_eof;
+            this.min = DFA21_min;
+            this.max = DFA21_max;
+            this.accept = DFA21_accept;
+            this.special = DFA21_special;
+            this.transition = DFA21_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            IntStream input = _input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA21_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA21_0=='=') ) {s = 1;}
+
+                        else if ( (LA21_0=='|') ) {s = 2;}
+
+                        else if ( (LA21_0=='&') ) {s = 3;}
+
+                        else if ( (LA21_0=='+') ) {s = 4;}
+
+                        else if ( (LA21_0=='-') ) {s = 5;}
+
+                        else if ( (LA21_0=='*') ) {s = 6;}
+
+                        else if ( (LA21_0=='/') ) {s = 7;}
+
+                        else if ( (LA21_0=='%') ) {s = 8;}
+
+                        else if ( (LA21_0=='!') ) {s = 9;}
+
+                        else if ( (LA21_0=='>') ) {s = 10;}
+
+                        else if ( (LA21_0=='<') ) {s = 11;}
+
+                        else if ( (LA21_0=='.') ) {s = 12;}
+
+                        else if ( (LA21_0=='?') ) {s = 13;}
+
+                        else if ( (LA21_0=='v') ) {s = 14;}
+
+                        else if ( (LA21_0=='e') ) {s = 15;}
+
+                        else if ( (LA21_0=='s') ) {s = 16;}
+
+                        else if ( (LA21_0=='i') ) {s = 17;}
+
+                        else if ( (LA21_0=='f') ) {s = 18;}
+
+                        else if ( (LA21_0=='N') ) {s = 19;}
+
+                        else if ( (LA21_0=='S') ) {s = 20;}
+
+                        else if ( (LA21_0=='U') ) {s = 21;}
+
+                        else if ( (LA21_0=='D') ) {s = 22;}
+
+                        else if ( (LA21_0=='M') ) {s = 23;}
+
+                        else if ( (LA21_0=='R') ) {s = 24;}
+
+                        else if ( (LA21_0=='E') ) {s = 25;}
+
+                        else if ( (LA21_0=='n') ) {s = 26;}
+
+                        else if ( (LA21_0=='p') ) {s = 27;}
+
+                        else if ( (LA21_0=='t') ) {s = 28;}
+
+                        else if ( (LA21_0=='{') ) {s = 29;}
+
+                        else if ( (LA21_0=='}') ) {s = 30;}
+
+                        else if ( (LA21_0=='b') ) {s = 31;}
+
+                        else if ( (LA21_0=='a') ) {s = 32;}
+
+                        else if ( (LA21_0=='X') ) {s = 33;}
+
+                        else if ( (LA21_0=='C') ) {s = 34;}
+
+                        else if ( (LA21_0=='d') ) {s = 35;}
+
+                        else if ( (LA21_0=='q') ) {s = 36;}
+
+                        else if ( (LA21_0=='m') ) {s = 37;}
+
+                        else if ( (LA21_0=='c') ) {s = 38;}
+
+                        else if ( (LA21_0=='l') ) {s = 39;}
+
+                        else if ( (LA21_0=='o') ) {s = 40;}
+
+                        else if ( (LA21_0=='w') ) {s = 41;}
+
+                        else if ( (LA21_0=='@') ) {s = 42;}
+
+                        else if ( (LA21_0=='(') ) {s = 43;}
+
+                        else if ( (LA21_0==')') ) {s = 44;}
+
+                        else if ( (LA21_0==',') ) {s = 45;}
+
+                        else if ( (LA21_0==']') ) {s = 46;}
+
+                        else if ( (LA21_0=='#') ) {s = 47;}
+
+                        else if ( (LA21_0=='[') ) {s = 48;}
+
+                        else if ( (LA21_0==';') ) {s = 49;}
+
+                        else if ( (LA21_0==':') ) {s = 50;}
+
+                        else if ( (LA21_0=='r') ) {s = 51;}
+
+                        else if ( (LA21_0=='0') ) {s = 52;}
+
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 53;}
+
+                        else if ( (LA21_0=='^') ) {s = 54;}
+
+                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='B')||(LA21_0>='F' && LA21_0<='L')||(LA21_0>='O' && LA21_0<='Q')||LA21_0=='T'||(LA21_0>='V' && LA21_0<='W')||(LA21_0>='Y' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='g' && LA21_0<='h')||(LA21_0>='j' && LA21_0<='k')||LA21_0=='u'||(LA21_0>='x' && LA21_0<='z')) ) {s = 55;}
+
+                        else if ( (LA21_0=='\"') ) {s = 56;}
+
+                        else if ( (LA21_0=='\'') ) {s = 57;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 58;}
+
+                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 59;}
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 21, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSLParser.java b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSLParser.java
new file mode 100644
index 0000000..3ecb8d0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSLParser.java
@@ -0,0 +1,10014 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist.antlr.internal; 
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+@SuppressWarnings("all")
+public class InternalDataDSLParser extends AbstractInternalContentAssistParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'NowDate'", "'StartDate'", "'UniversallyUniqueIdentifier'", "'Date'", "'Milliseconds'", "'Nanoseconds'", "'Random'", "'ExecuteContext'", "'none'", "'normal'", "'important'", "'package'", "'title'", "'{'", "'}'", "'interchange'", "'file'", "'beans'", "'averageElementSize'", "'progressBarStyle'", "'XML'", "'CSV'", "'delimiter'", "'quoteCharacter'", "'skipLines'", "'encoding'", "'EDI'", "'mappingModel'", "'entity'", "'createOn'", "'expression'", "'lookup'", "'format'", "'mapping'", "'for'", "'on'", "'with'", "'mapTo'", "'markerPath'", "'markerEntity'", "'coding'", "'locale'", "'copy'", "'from'", "'property'", "'assign'", "'as'", "'map'", "'to'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "';'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'described by'", "'create report'", "'refreshViewWhenFinished'", "'indent'", "'strict'", "'validateHeader'", "'validate'", "'marker'", "'recordElement'", "'recordList'", "'cacheSize'", "'allowNoResult'", "'allowNonuniqueResult'", "'markedBy'", "'::'", "'?.'", "'|'", "'var'", "'true'"
+    };
+    public static final int T__144=144;
+    public static final int T__143=143;
+    public static final int T__146=146;
+    public static final int RULE_HEX=6;
+    public static final int T__50=50;
+    public static final int T__145=145;
+    public static final int T__140=140;
+    public static final int T__142=142;
+    public static final int T__141=141;
+    public static final int T__59=59;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__137=137;
+    public static final int T__52=52;
+    public static final int T__136=136;
+    public static final int T__53=53;
+    public static final int T__139=139;
+    public static final int T__54=54;
+    public static final int T__138=138;
+    public static final int T__133=133;
+    public static final int T__132=132;
+    public static final int T__60=60;
+    public static final int T__135=135;
+    public static final int T__61=61;
+    public static final int T__134=134;
+    public static final int RULE_ID=4;
+    public static final int T__131=131;
+    public static final int T__130=130;
+    public static final int RULE_INT=7;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__91=91;
+    public static final int T__100=100;
+    public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__102=102;
+    public static final int T__94=94;
+    public static final int T__101=101;
+    public static final int T__90=90;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int T__99=99;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    public static final int T__95=95;
+    public static final int T__96=96;
+    public static final int T__97=97;
+    public static final int T__98=98;
+    public static final int RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__70=70;
+    public static final int T__121=121;
+    public static final int T__71=71;
+    public static final int T__124=124;
+    public static final int T__72=72;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__77=77;
+    public static final int T__119=119;
+    public static final int T__78=78;
+    public static final int T__118=118;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__74=74;
+    public static final int T__114=114;
+    public static final int T__75=75;
+    public static final int T__117=117;
+    public static final int T__76=76;
+    public static final int T__116=116;
+    public static final int T__80=80;
+    public static final int T__111=111;
+    public static final int T__81=81;
+    public static final int T__110=110;
+    public static final int T__82=82;
+    public static final int T__113=113;
+    public static final int T__83=83;
+    public static final int T__112=112;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__88=88;
+    public static final int T__108=108;
+    public static final int T__89=89;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__84=84;
+    public static final int T__104=104;
+    public static final int T__85=85;
+    public static final int T__103=103;
+    public static final int T__86=86;
+    public static final int T__106=106;
+    public static final int T__87=87;
+    public static final int T__105=105;
+
+    // delegates
+    // delegators
+
+
+        public InternalDataDSLParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalDataDSLParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalDataDSLParser.tokenNames; }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g"; }
+
+
+     
+     	private DataDSLGrammarAccess grammarAccess;
+     	
+        public void setGrammarAccess(DataDSLGrammarAccess grammarAccess) {
+        	this.grammarAccess = grammarAccess;
+        }
+        
+        @Override
+        protected Grammar getGrammar() {
+        	return grammarAccess.getGrammar();
+        }
+        
+        @Override
+        protected String getValueForTokenName(String tokenName) {
+        	return tokenName;
+        }
+
+
+
+
+    // $ANTLR start "entryRuleDataInterchangeModel"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:61:1: entryRuleDataInterchangeModel : ruleDataInterchangeModel EOF ;
+    public final void entryRuleDataInterchangeModel() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:62:1: ( ruleDataInterchangeModel EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:63:1: ruleDataInterchangeModel EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeModelRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeModel_in_entryRuleDataInterchangeModel67);
+            ruleDataInterchangeModel();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeModelRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeModel74); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeModel"
+
+
+    // $ANTLR start "ruleDataInterchangeModel"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:70:1: ruleDataInterchangeModel : ( ( rule__DataInterchangeModel__PackagesAssignment )* ) ;
+    public final void ruleDataInterchangeModel() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:74:2: ( ( ( rule__DataInterchangeModel__PackagesAssignment )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:75:1: ( ( rule__DataInterchangeModel__PackagesAssignment )* )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:75:1: ( ( rule__DataInterchangeModel__PackagesAssignment )* )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:76:1: ( rule__DataInterchangeModel__PackagesAssignment )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeModelAccess().getPackagesAssignment()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:77:1: ( rule__DataInterchangeModel__PackagesAssignment )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==62) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:77:2: rule__DataInterchangeModel__PackagesAssignment
+            	    {
+            	    pushFollow(FOLLOW_rule__DataInterchangeModel__PackagesAssignment_in_ruleDataInterchangeModel100);
+            	    rule__DataInterchangeModel__PackagesAssignment();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeModelAccess().getPackagesAssignment()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeModel"
+
+
+    // $ANTLR start "entryRuleDataInterchangePackage"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:89:1: entryRuleDataInterchangePackage : ruleDataInterchangePackage EOF ;
+    public final void entryRuleDataInterchangePackage() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:90:1: ( ruleDataInterchangePackage EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:91:1: ruleDataInterchangePackage EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangePackageRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangePackage_in_entryRuleDataInterchangePackage128);
+            ruleDataInterchangePackage();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangePackageRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangePackage135); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangePackage"
+
+
+    // $ANTLR start "ruleDataInterchangePackage"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:98:1: ruleDataInterchangePackage : ( ( rule__DataInterchangePackage__Group__0 ) ) ;
+    public final void ruleDataInterchangePackage() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:102:2: ( ( ( rule__DataInterchangePackage__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:103:1: ( ( rule__DataInterchangePackage__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:103:1: ( ( rule__DataInterchangePackage__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:104:1: ( rule__DataInterchangePackage__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangePackageAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:105:1: ( rule__DataInterchangePackage__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:105:2: rule__DataInterchangePackage__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangePackage__Group__0_in_ruleDataInterchangePackage161);
+            rule__DataInterchangePackage__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangePackageAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangePackage"
+
+
+    // $ANTLR start "entryRuleDataInterchange"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:117:1: entryRuleDataInterchange : ruleDataInterchange EOF ;
+    public final void entryRuleDataInterchange() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:118:1: ( ruleDataInterchange EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:119:1: ruleDataInterchange EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchange_in_entryRuleDataInterchange188);
+            ruleDataInterchange();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchange195); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchange"
+
+
+    // $ANTLR start "ruleDataInterchange"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:126:1: ruleDataInterchange : ( ( rule__DataInterchange__Group__0 ) ) ;
+    public final void ruleDataInterchange() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:130:2: ( ( ( rule__DataInterchange__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:131:1: ( ( rule__DataInterchange__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:131:1: ( ( rule__DataInterchange__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:132:1: ( rule__DataInterchange__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:133:1: ( rule__DataInterchange__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:133:2: rule__DataInterchange__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchange__Group__0_in_ruleDataInterchange221);
+            rule__DataInterchange__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchange"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFile"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:145:1: entryRuleDataInterchangeFile : ruleDataInterchangeFile EOF ;
+    public final void entryRuleDataInterchangeFile() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:146:1: ( ruleDataInterchangeFile EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:147:1: ruleDataInterchangeFile EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFileRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFile_in_entryRuleDataInterchangeFile248);
+            ruleDataInterchangeFile();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFileRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFile255); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFile"
+
+
+    // $ANTLR start "ruleDataInterchangeFile"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:154:1: ruleDataInterchangeFile : ( ( rule__DataInterchangeFile__Alternatives ) ) ;
+    public final void ruleDataInterchangeFile() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:158:2: ( ( ( rule__DataInterchangeFile__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:159:1: ( ( rule__DataInterchangeFile__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:159:1: ( ( rule__DataInterchangeFile__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:160:1: ( rule__DataInterchangeFile__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFileAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:161:1: ( rule__DataInterchangeFile__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:161:2: rule__DataInterchangeFile__Alternatives
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeFile__Alternatives_in_ruleDataInterchangeFile281);
+            rule__DataInterchangeFile__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFileAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeFile"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFileXML"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:173:1: entryRuleDataInterchangeFileXML : ruleDataInterchangeFileXML EOF ;
+    public final void entryRuleDataInterchangeFileXML() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:174:1: ( ruleDataInterchangeFileXML EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:175:1: ruleDataInterchangeFileXML EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFileXMLRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFileXML_in_entryRuleDataInterchangeFileXML308);
+            ruleDataInterchangeFileXML();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFileXMLRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFileXML315); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFileXML"
+
+
+    // $ANTLR start "ruleDataInterchangeFileXML"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:182:1: ruleDataInterchangeFileXML : ( ( rule__DataInterchangeFileXML__Group__0 ) ) ;
+    public final void ruleDataInterchangeFileXML() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:186:2: ( ( ( rule__DataInterchangeFileXML__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:187:1: ( ( rule__DataInterchangeFileXML__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:187:1: ( ( rule__DataInterchangeFileXML__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:188:1: ( rule__DataInterchangeFileXML__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFileXMLAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:189:1: ( rule__DataInterchangeFileXML__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:189:2: rule__DataInterchangeFileXML__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeFileXML__Group__0_in_ruleDataInterchangeFileXML341);
+            rule__DataInterchangeFileXML__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFileXMLAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeFileXML"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFileCSV"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:201:1: entryRuleDataInterchangeFileCSV : ruleDataInterchangeFileCSV EOF ;
+    public final void entryRuleDataInterchangeFileCSV() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:202:1: ( ruleDataInterchangeFileCSV EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:203:1: ruleDataInterchangeFileCSV EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFileCSVRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFileCSV_in_entryRuleDataInterchangeFileCSV368);
+            ruleDataInterchangeFileCSV();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFileCSVRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFileCSV375); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFileCSV"
+
+
+    // $ANTLR start "ruleDataInterchangeFileCSV"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:210:1: ruleDataInterchangeFileCSV : ( ( rule__DataInterchangeFileCSV__Group__0 ) ) ;
+    public final void ruleDataInterchangeFileCSV() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:214:2: ( ( ( rule__DataInterchangeFileCSV__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:215:1: ( ( rule__DataInterchangeFileCSV__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:215:1: ( ( rule__DataInterchangeFileCSV__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:216:1: ( rule__DataInterchangeFileCSV__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFileCSVAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:217:1: ( rule__DataInterchangeFileCSV__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:217:2: rule__DataInterchangeFileCSV__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeFileCSV__Group__0_in_ruleDataInterchangeFileCSV401);
+            rule__DataInterchangeFileCSV__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFileCSVAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeFileCSV"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFileEDI"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:229:1: entryRuleDataInterchangeFileEDI : ruleDataInterchangeFileEDI EOF ;
+    public final void entryRuleDataInterchangeFileEDI() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:230:1: ( ruleDataInterchangeFileEDI EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:231:1: ruleDataInterchangeFileEDI EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFileEDIRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFileEDI_in_entryRuleDataInterchangeFileEDI428);
+            ruleDataInterchangeFileEDI();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFileEDIRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFileEDI435); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFileEDI"
+
+
+    // $ANTLR start "ruleDataInterchangeFileEDI"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:238:1: ruleDataInterchangeFileEDI : ( ( rule__DataInterchangeFileEDI__Group__0 ) ) ;
+    public final void ruleDataInterchangeFileEDI() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:242:2: ( ( ( rule__DataInterchangeFileEDI__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:243:1: ( ( rule__DataInterchangeFileEDI__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:243:1: ( ( rule__DataInterchangeFileEDI__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:244:1: ( rule__DataInterchangeFileEDI__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFileEDIAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:245:1: ( rule__DataInterchangeFileEDI__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:245:2: rule__DataInterchangeFileEDI__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeFileEDI__Group__0_in_ruleDataInterchangeFileEDI461);
+            rule__DataInterchangeFileEDI__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFileEDIAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeFileEDI"
+
+
+    // $ANTLR start "entryRuleDataInterchangeBean"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:257:1: entryRuleDataInterchangeBean : ruleDataInterchangeBean EOF ;
+    public final void entryRuleDataInterchangeBean() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:258:1: ( ruleDataInterchangeBean EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:259:1: ruleDataInterchangeBean EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeBeanRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeBean_in_entryRuleDataInterchangeBean488);
+            ruleDataInterchangeBean();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeBeanRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeBean495); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeBean"
+
+
+    // $ANTLR start "ruleDataInterchangeBean"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:266:1: ruleDataInterchangeBean : ( ( rule__DataInterchangeBean__Group__0 ) ) ;
+    public final void ruleDataInterchangeBean() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:270:2: ( ( ( rule__DataInterchangeBean__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:271:1: ( ( rule__DataInterchangeBean__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:271:1: ( ( rule__DataInterchangeBean__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:272:1: ( rule__DataInterchangeBean__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeBeanAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:273:1: ( rule__DataInterchangeBean__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:273:2: rule__DataInterchangeBean__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeBean__Group__0_in_ruleDataInterchangeBean521);
+            rule__DataInterchangeBean__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeBeanAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeBean"
+
+
+    // $ANTLR start "entryRuleDataInterchangeLookup"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:285:1: entryRuleDataInterchangeLookup : ruleDataInterchangeLookup EOF ;
+    public final void entryRuleDataInterchangeLookup() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:286:1: ( ruleDataInterchangeLookup EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:287:1: ruleDataInterchangeLookup EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeLookupRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeLookup_in_entryRuleDataInterchangeLookup548);
+            ruleDataInterchangeLookup();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeLookupRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeLookup555); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeLookup"
+
+
+    // $ANTLR start "ruleDataInterchangeLookup"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:294:1: ruleDataInterchangeLookup : ( ( rule__DataInterchangeLookup__Group__0 ) ) ;
+    public final void ruleDataInterchangeLookup() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:298:2: ( ( ( rule__DataInterchangeLookup__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:299:1: ( ( rule__DataInterchangeLookup__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:299:1: ( ( rule__DataInterchangeLookup__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:300:1: ( rule__DataInterchangeLookup__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeLookupAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:301:1: ( rule__DataInterchangeLookup__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:301:2: rule__DataInterchangeLookup__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeLookup__Group__0_in_ruleDataInterchangeLookup581);
+            rule__DataInterchangeLookup__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeLookupAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeLookup"
+
+
+    // $ANTLR start "entryRuleDataInterchangeMarkerPath"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:313:1: entryRuleDataInterchangeMarkerPath : ruleDataInterchangeMarkerPath EOF ;
+    public final void entryRuleDataInterchangeMarkerPath() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:314:1: ( ruleDataInterchangeMarkerPath EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:315:1: ruleDataInterchangeMarkerPath EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeMarkerPathRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeMarkerPath_in_entryRuleDataInterchangeMarkerPath608);
+            ruleDataInterchangeMarkerPath();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeMarkerPathRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeMarkerPath615); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeMarkerPath"
+
+
+    // $ANTLR start "ruleDataInterchangeMarkerPath"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:322:1: ruleDataInterchangeMarkerPath : ( ( rule__DataInterchangeMarkerPath__Group__0 ) ) ;
+    public final void ruleDataInterchangeMarkerPath() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:326:2: ( ( ( rule__DataInterchangeMarkerPath__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:327:1: ( ( rule__DataInterchangeMarkerPath__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:327:1: ( ( rule__DataInterchangeMarkerPath__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:328:1: ( rule__DataInterchangeMarkerPath__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeMarkerPathAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:329:1: ( rule__DataInterchangeMarkerPath__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:329:2: rule__DataInterchangeMarkerPath__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeMarkerPath__Group__0_in_ruleDataInterchangeMarkerPath641);
+            rule__DataInterchangeMarkerPath__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeMarkerPathAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeMarkerPath"
+
+
+    // $ANTLR start "entryRuleDataInterchangeMarkerEntity"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:341:1: entryRuleDataInterchangeMarkerEntity : ruleDataInterchangeMarkerEntity EOF ;
+    public final void entryRuleDataInterchangeMarkerEntity() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:342:1: ( ruleDataInterchangeMarkerEntity EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:343:1: ruleDataInterchangeMarkerEntity EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeMarkerEntityRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeMarkerEntity_in_entryRuleDataInterchangeMarkerEntity668);
+            ruleDataInterchangeMarkerEntity();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeMarkerEntityRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeMarkerEntity675); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeMarkerEntity"
+
+
+    // $ANTLR start "ruleDataInterchangeMarkerEntity"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:350:1: ruleDataInterchangeMarkerEntity : ( ( rule__DataInterchangeMarkerEntity__Group__0 ) ) ;
+    public final void ruleDataInterchangeMarkerEntity() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:354:2: ( ( ( rule__DataInterchangeMarkerEntity__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:355:1: ( ( rule__DataInterchangeMarkerEntity__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:355:1: ( ( rule__DataInterchangeMarkerEntity__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:356:1: ( rule__DataInterchangeMarkerEntity__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeMarkerEntityAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:357:1: ( rule__DataInterchangeMarkerEntity__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:357:2: rule__DataInterchangeMarkerEntity__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeMarkerEntity__Group__0_in_ruleDataInterchangeMarkerEntity701);
+            rule__DataInterchangeMarkerEntity__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeMarkerEntityAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeMarkerEntity"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFormat"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:369:1: entryRuleDataInterchangeFormat : ruleDataInterchangeFormat EOF ;
+    public final void entryRuleDataInterchangeFormat() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:370:1: ( ruleDataInterchangeFormat EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:371:1: ruleDataInterchangeFormat EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFormatRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFormat_in_entryRuleDataInterchangeFormat728);
+            ruleDataInterchangeFormat();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFormatRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFormat735); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFormat"
+
+
+    // $ANTLR start "ruleDataInterchangeFormat"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:378:1: ruleDataInterchangeFormat : ( ( rule__DataInterchangeFormat__Group__0 ) ) ;
+    public final void ruleDataInterchangeFormat() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:382:2: ( ( ( rule__DataInterchangeFormat__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:383:1: ( ( rule__DataInterchangeFormat__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:383:1: ( ( rule__DataInterchangeFormat__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:384:1: ( rule__DataInterchangeFormat__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeFormatAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:385:1: ( rule__DataInterchangeFormat__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:385:2: rule__DataInterchangeFormat__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeFormat__Group__0_in_ruleDataInterchangeFormat761);
+            rule__DataInterchangeFormat__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeFormatAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeFormat"
+
+
+    // $ANTLR start "entryRuleDataInterchangeExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:397:1: entryRuleDataInterchangeExpression : ruleDataInterchangeExpression EOF ;
+    public final void entryRuleDataInterchangeExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:398:1: ( ruleDataInterchangeExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:399:1: ruleDataInterchangeExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeExpression_in_entryRuleDataInterchangeExpression788);
+            ruleDataInterchangeExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeExpression795); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeExpression"
+
+
+    // $ANTLR start "ruleDataInterchangeExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:406:1: ruleDataInterchangeExpression : ( ( rule__DataInterchangeExpression__Alternatives ) ) ;
+    public final void ruleDataInterchangeExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:410:2: ( ( ( rule__DataInterchangeExpression__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:411:1: ( ( rule__DataInterchangeExpression__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:411:1: ( ( rule__DataInterchangeExpression__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:412:1: ( rule__DataInterchangeExpression__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeExpressionAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:413:1: ( rule__DataInterchangeExpression__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:413:2: rule__DataInterchangeExpression__Alternatives
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeExpression__Alternatives_in_ruleDataInterchangeExpression821);
+            rule__DataInterchangeExpression__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeExpressionAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeExpression"
+
+
+    // $ANTLR start "entryRuleDataInterchangeEntityExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:425:1: entryRuleDataInterchangeEntityExpression : ruleDataInterchangeEntityExpression EOF ;
+    public final void entryRuleDataInterchangeEntityExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:426:1: ( ruleDataInterchangeEntityExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:427:1: ruleDataInterchangeEntityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeEntityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeEntityExpression_in_entryRuleDataInterchangeEntityExpression848);
+            ruleDataInterchangeEntityExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeEntityExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeEntityExpression855); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeEntityExpression"
+
+
+    // $ANTLR start "ruleDataInterchangeEntityExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:434:1: ruleDataInterchangeEntityExpression : ( ( rule__DataInterchangeEntityExpression__Group__0 ) ) ;
+    public final void ruleDataInterchangeEntityExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:438:2: ( ( ( rule__DataInterchangeEntityExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:439:1: ( ( rule__DataInterchangeEntityExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:439:1: ( ( rule__DataInterchangeEntityExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:440:1: ( rule__DataInterchangeEntityExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeEntityExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:441:1: ( rule__DataInterchangeEntityExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:441:2: rule__DataInterchangeEntityExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeEntityExpression__Group__0_in_ruleDataInterchangeEntityExpression881);
+            rule__DataInterchangeEntityExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeEntityExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeEntityExpression"
+
+
+    // $ANTLR start "entryRuleDataInterchangePredefinedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:453:1: entryRuleDataInterchangePredefinedExpression : ruleDataInterchangePredefinedExpression EOF ;
+    public final void entryRuleDataInterchangePredefinedExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:454:1: ( ruleDataInterchangePredefinedExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:455:1: ruleDataInterchangePredefinedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangePredefinedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangePredefinedExpression_in_entryRuleDataInterchangePredefinedExpression908);
+            ruleDataInterchangePredefinedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangePredefinedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangePredefinedExpression915); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangePredefinedExpression"
+
+
+    // $ANTLR start "ruleDataInterchangePredefinedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:462:1: ruleDataInterchangePredefinedExpression : ( ( rule__DataInterchangePredefinedExpression__Group__0 ) ) ;
+    public final void ruleDataInterchangePredefinedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:466:2: ( ( ( rule__DataInterchangePredefinedExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:467:1: ( ( rule__DataInterchangePredefinedExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:467:1: ( ( rule__DataInterchangePredefinedExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:468:1: ( rule__DataInterchangePredefinedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangePredefinedExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:469:1: ( rule__DataInterchangePredefinedExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:469:2: rule__DataInterchangePredefinedExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangePredefinedExpression__Group__0_in_ruleDataInterchangePredefinedExpression941);
+            rule__DataInterchangePredefinedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangePredefinedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangePredefinedExpression"
+
+
+    // $ANTLR start "entryRuleDataInterchangeMapping"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:481:1: entryRuleDataInterchangeMapping : ruleDataInterchangeMapping EOF ;
+    public final void entryRuleDataInterchangeMapping() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:482:1: ( ruleDataInterchangeMapping EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:483:1: ruleDataInterchangeMapping EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeMappingRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeMapping_in_entryRuleDataInterchangeMapping968);
+            ruleDataInterchangeMapping();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeMappingRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeMapping975); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeMapping"
+
+
+    // $ANTLR start "ruleDataInterchangeMapping"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:490:1: ruleDataInterchangeMapping : ( ( rule__DataInterchangeMapping__Group__0 ) ) ;
+    public final void ruleDataInterchangeMapping() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:494:2: ( ( ( rule__DataInterchangeMapping__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:495:1: ( ( rule__DataInterchangeMapping__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:495:1: ( ( rule__DataInterchangeMapping__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:496:1: ( rule__DataInterchangeMapping__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeMappingAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:497:1: ( rule__DataInterchangeMapping__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:497:2: rule__DataInterchangeMapping__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeMapping__Group__0_in_ruleDataInterchangeMapping1001);
+            rule__DataInterchangeMapping__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeMappingAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeMapping"
+
+
+    // $ANTLR start "entryRuleDataInterchangeImport"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:509:1: entryRuleDataInterchangeImport : ruleDataInterchangeImport EOF ;
+    public final void entryRuleDataInterchangeImport() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:510:1: ( ruleDataInterchangeImport EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:511:1: ruleDataInterchangeImport EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeImportRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeImport_in_entryRuleDataInterchangeImport1028);
+            ruleDataInterchangeImport();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeImportRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeImport1035); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeImport"
+
+
+    // $ANTLR start "ruleDataInterchangeImport"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:518:1: ruleDataInterchangeImport : ( ( rule__DataInterchangeImport__Group__0 ) ) ;
+    public final void ruleDataInterchangeImport() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:522:2: ( ( ( rule__DataInterchangeImport__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:523:1: ( ( rule__DataInterchangeImport__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:523:1: ( ( rule__DataInterchangeImport__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:524:1: ( rule__DataInterchangeImport__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeImportAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:525:1: ( rule__DataInterchangeImport__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:525:2: rule__DataInterchangeImport__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeImport__Group__0_in_ruleDataInterchangeImport1061);
+            rule__DataInterchangeImport__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeImportAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeImport"
+
+
+    // $ANTLR start "entryRuleDataInterchangeQualifiedNameWithWildCard"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:537:1: entryRuleDataInterchangeQualifiedNameWithWildCard : ruleDataInterchangeQualifiedNameWithWildCard EOF ;
+    public final void entryRuleDataInterchangeQualifiedNameWithWildCard() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:538:1: ( ruleDataInterchangeQualifiedNameWithWildCard EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:539:1: ruleDataInterchangeQualifiedNameWithWildCard EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeQualifiedNameWithWildCardRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeQualifiedNameWithWildCard_in_entryRuleDataInterchangeQualifiedNameWithWildCard1088);
+            ruleDataInterchangeQualifiedNameWithWildCard();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeQualifiedNameWithWildCardRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeQualifiedNameWithWildCard1095); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataInterchangeQualifiedNameWithWildCard"
+
+
+    // $ANTLR start "ruleDataInterchangeQualifiedNameWithWildCard"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:546:1: ruleDataInterchangeQualifiedNameWithWildCard : ( ( rule__DataInterchangeQualifiedNameWithWildCard__Group__0 ) ) ;
+    public final void ruleDataInterchangeQualifiedNameWithWildCard() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:550:2: ( ( ( rule__DataInterchangeQualifiedNameWithWildCard__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:551:1: ( ( rule__DataInterchangeQualifiedNameWithWildCard__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:551:1: ( ( rule__DataInterchangeQualifiedNameWithWildCard__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:552:1: ( rule__DataInterchangeQualifiedNameWithWildCard__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:553:1: ( rule__DataInterchangeQualifiedNameWithWildCard__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:553:2: rule__DataInterchangeQualifiedNameWithWildCard__Group__0
+            {
+            pushFollow(FOLLOW_rule__DataInterchangeQualifiedNameWithWildCard__Group__0_in_ruleDataInterchangeQualifiedNameWithWildCard1121);
+            rule__DataInterchangeQualifiedNameWithWildCard__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataInterchangeQualifiedNameWithWildCard"
+
+
+    // $ANTLR start "entryRuleQualifiedName"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:565:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    public final void entryRuleQualifiedName() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:566:1: ( ruleQualifiedName EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:567:1: ruleQualifiedName EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameRule()); 
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName1148);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName1155); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleQualifiedName"
+
+
+    // $ANTLR start "ruleQualifiedName"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:574:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    public final void ruleQualifiedName() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:578:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:579:1: ( ( rule__QualifiedName__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:579:1: ( ( rule__QualifiedName__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:580:1: ( rule__QualifiedName__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:581:1: ( rule__QualifiedName__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:581:2: rule__QualifiedName__Group__0
+            {
+            pushFollow(FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName1181);
+            rule__QualifiedName__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleQualifiedName"
+
+
+    // $ANTLR start "entryRuleValidID"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:593:1: entryRuleValidID : ruleValidID EOF ;
+    public final void entryRuleValidID() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:594:1: ( ruleValidID EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:595:1: ruleValidID EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getValidIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleValidID_in_entryRuleValidID1208);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getValidIDRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleValidID1215); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleValidID"
+
+
+    // $ANTLR start "ruleValidID"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:602:1: ruleValidID : ( RULE_ID ) ;
+    public final void ruleValidID() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:606:2: ( ( RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:607:1: ( RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:607:1: ( RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:608:1: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+            }
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleValidID1241); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleValidID"
+
+
+    // $ANTLR start "entryRuleLFQN"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:621:1: entryRuleLFQN : ruleLFQN EOF ;
+    public final void entryRuleLFQN() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:622:1: ( ruleLFQN EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:623:1: ruleLFQN EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLFQNRule()); 
+            }
+            pushFollow(FOLLOW_ruleLFQN_in_entryRuleLFQN1267);
+            ruleLFQN();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLFQNRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleLFQN1274); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLFQN"
+
+
+    // $ANTLR start "ruleLFQN"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:630:1: ruleLFQN : ( ( rule__LFQN__Group__0 ) ) ;
+    public final void ruleLFQN() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:634:2: ( ( ( rule__LFQN__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:635:1: ( ( rule__LFQN__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:635:1: ( ( rule__LFQN__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:636:1: ( rule__LFQN__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLFQNAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:637:1: ( rule__LFQN__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:637:2: rule__LFQN__Group__0
+            {
+            pushFollow(FOLLOW_rule__LFQN__Group__0_in_ruleLFQN1300);
+            rule__LFQN__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLFQNAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleLFQN"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLESTRING"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:649:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
+    public final void entryRuleTRANSLATABLESTRING() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:650:1: ( ruleTRANSLATABLESTRING EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:651:1: ruleTRANSLATABLESTRING EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLESTRINGRule()); 
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_entryRuleTRANSLATABLESTRING1327);
+            ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLESTRINGRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLESTRING1334); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "ruleTRANSLATABLESTRING"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:658:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
+    public final void ruleTRANSLATABLESTRING() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:662:2: ( ( RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:663:1: ( RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:663:1: ( RULE_STRING )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:664:1: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+            }
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTRANSLATABLESTRING1360); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLEID"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:677:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
+    public final void entryRuleTRANSLATABLEID() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:678:1: ( ruleTRANSLATABLEID EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:679:1: ruleTRANSLATABLEID EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLEIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLEID_in_entryRuleTRANSLATABLEID1386);
+            ruleTRANSLATABLEID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLEIDRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLEID1393); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLEID"
+
+
+    // $ANTLR start "ruleTRANSLATABLEID"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:686:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
+    public final void ruleTRANSLATABLEID() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:690:2: ( ( RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:691:1: ( RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:691:1: ( RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:692:1: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
+            }
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTRANSLATABLEID1419); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTRANSLATABLEID"
+
+
+    // $ANTLR start "entryRuleXAnnotation"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:705:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
+    public final void entryRuleXAnnotation() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:706:1: ( ruleXAnnotation EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:707:1: ruleXAnnotation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotation_in_entryRuleXAnnotation1445);
+            ruleXAnnotation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotation1452); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotation"
+
+
+    // $ANTLR start "ruleXAnnotation"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:714:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
+    public final void ruleXAnnotation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:718:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:719:1: ( ( rule__XAnnotation__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:719:1: ( ( rule__XAnnotation__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:720:1: ( rule__XAnnotation__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:721:1: ( rule__XAnnotation__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:721:2: rule__XAnnotation__Group__0
+            {
+            pushFollow(FOLLOW_rule__XAnnotation__Group__0_in_ruleXAnnotation1478);
+            rule__XAnnotation__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotation"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValuePair"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:733:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
+    public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:734:1: ( ruleXAnnotationElementValuePair EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:735:1: ruleXAnnotationElementValuePair EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValuePair_in_entryRuleXAnnotationElementValuePair1505);
+            ruleXAnnotationElementValuePair();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValuePair1512); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "ruleXAnnotationElementValuePair"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:742:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
+    public final void ruleXAnnotationElementValuePair() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:746:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:747:1: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:747:1: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:748:1: ( rule__XAnnotationElementValuePair__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:749:1: ( rule__XAnnotationElementValuePair__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:749:2: rule__XAnnotationElementValuePair__Group__0
+            {
+            pushFollow(FOLLOW_rule__XAnnotationElementValuePair__Group__0_in_ruleXAnnotationElementValuePair1538);
+            rule__XAnnotationElementValuePair__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:761:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
+    public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:762:1: ( ruleXAnnotationElementValueOrCommaList EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:763:1: ruleXAnnotationElementValueOrCommaList EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValueOrCommaList_in_entryRuleXAnnotationElementValueOrCommaList1565);
+            ruleXAnnotationElementValueOrCommaList();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValueOrCommaList1572); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:770:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
+    public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:774:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:775:1: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:775:1: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:776:1: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:777:1: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:777:2: rule__XAnnotationElementValueOrCommaList__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XAnnotationElementValueOrCommaList__Alternatives_in_ruleXAnnotationElementValueOrCommaList1598);
+            rule__XAnnotationElementValueOrCommaList__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValue"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:789:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
+    public final void entryRuleXAnnotationElementValue() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:790:1: ( ruleXAnnotationElementValue EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:791:1: ruleXAnnotationElementValue EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValue_in_entryRuleXAnnotationElementValue1625);
+            ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValue1632); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValue"
+
+
+    // $ANTLR start "ruleXAnnotationElementValue"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:798:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
+    public final void ruleXAnnotationElementValue() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:802:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:803:1: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:803:1: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:804:1: ( rule__XAnnotationElementValue__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:805:1: ( rule__XAnnotationElementValue__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:805:2: rule__XAnnotationElementValue__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XAnnotationElementValue__Alternatives_in_ruleXAnnotationElementValue1658);
+            rule__XAnnotationElementValue__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationElementValue"
+
+
+    // $ANTLR start "entryRuleXAnnotationOrExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:817:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
+    public final void entryRuleXAnnotationOrExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:818:1: ( ruleXAnnotationOrExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:819:1: ruleXAnnotationOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_entryRuleXAnnotationOrExpression1685);
+            ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationOrExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationOrExpression1692); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationOrExpression"
+
+
+    // $ANTLR start "ruleXAnnotationOrExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:826:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
+    public final void ruleXAnnotationOrExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:830:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:831:1: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:831:1: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:832:1: ( rule__XAnnotationOrExpression__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:833:1: ( rule__XAnnotationOrExpression__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:833:2: rule__XAnnotationOrExpression__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XAnnotationOrExpression__Alternatives_in_ruleXAnnotationOrExpression1718);
+            rule__XAnnotationOrExpression__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationOrExpression"
+
+
+    // $ANTLR start "entryRuleXExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:845:1: entryRuleXExpression : ruleXExpression EOF ;
+    public final void entryRuleXExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:846:1: ( ruleXExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:847:1: ruleXExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXExpression_in_entryRuleXExpression1745);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpression1752); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXExpression"
+
+
+    // $ANTLR start "ruleXExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:854:1: ruleXExpression : ( ruleXAssignment ) ;
+    public final void ruleXExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:858:2: ( ( ruleXAssignment ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:859:1: ( ruleXAssignment )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:859:1: ( ruleXAssignment )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:860:1: ruleXAssignment
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
+            }
+            pushFollow(FOLLOW_ruleXAssignment_in_ruleXExpression1778);
+            ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXExpression"
+
+
+    // $ANTLR start "entryRuleXAssignment"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:873:1: entryRuleXAssignment : ruleXAssignment EOF ;
+    public final void entryRuleXAssignment() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:874:1: ( ruleXAssignment EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:875:1: ruleXAssignment EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAssignment_in_entryRuleXAssignment1804);
+            ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAssignment1811); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAssignment"
+
+
+    // $ANTLR start "ruleXAssignment"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:882:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
+    public final void ruleXAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:886:2: ( ( ( rule__XAssignment__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:887:1: ( ( rule__XAssignment__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:887:1: ( ( rule__XAssignment__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:888:1: ( rule__XAssignment__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:889:1: ( rule__XAssignment__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:889:2: rule__XAssignment__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XAssignment__Alternatives_in_ruleXAssignment1837);
+            rule__XAssignment__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAssignment"
+
+
+    // $ANTLR start "entryRuleOpSingleAssign"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:901:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
+    public final void entryRuleOpSingleAssign() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:902:1: ( ruleOpSingleAssign EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:903:1: ruleOpSingleAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpSingleAssignRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign1864);
+            ruleOpSingleAssign();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpSingleAssignRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpSingleAssign1871); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpSingleAssign"
+
+
+    // $ANTLR start "ruleOpSingleAssign"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:910:1: ruleOpSingleAssign : ( '=' ) ;
+    public final void ruleOpSingleAssign() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:914:2: ( ( '=' ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:915:1: ( '=' )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:915:1: ( '=' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:916:1: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
+            }
+            match(input,13,FOLLOW_13_in_ruleOpSingleAssign1898); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpSingleAssign"
+
+
+    // $ANTLR start "entryRuleOpMultiAssign"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:931:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
+    public final void entryRuleOpMultiAssign() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:932:1: ( ruleOpMultiAssign EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:933:1: ruleOpMultiAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign1926);
+            ruleOpMultiAssign();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpMultiAssign1933); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpMultiAssign"
+
+
+    // $ANTLR start "ruleOpMultiAssign"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:940:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
+    public final void ruleOpMultiAssign() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:944:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:945:1: ( ( rule__OpMultiAssign__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:945:1: ( ( rule__OpMultiAssign__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:946:1: ( rule__OpMultiAssign__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:947:1: ( rule__OpMultiAssign__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:947:2: rule__OpMultiAssign__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpMultiAssign__Alternatives_in_ruleOpMultiAssign1959);
+            rule__OpMultiAssign__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpMultiAssign"
+
+
+    // $ANTLR start "entryRuleXOrExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:959:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
+    public final void entryRuleXOrExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:960:1: ( ruleXOrExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:961:1: ruleXOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression1986);
+            ruleXOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXOrExpression1993); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXOrExpression"
+
+
+    // $ANTLR start "ruleXOrExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:968:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
+    public final void ruleXOrExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:972:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:973:1: ( ( rule__XOrExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:973:1: ( ( rule__XOrExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:974:1: ( rule__XOrExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:975:1: ( rule__XOrExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:975:2: rule__XOrExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XOrExpression__Group__0_in_ruleXOrExpression2019);
+            rule__XOrExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXOrExpression"
+
+
+    // $ANTLR start "entryRuleOpOr"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:987:1: entryRuleOpOr : ruleOpOr EOF ;
+    public final void entryRuleOpOr() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:988:1: ( ruleOpOr EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:989:1: ruleOpOr EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOrRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpOr_in_entryRuleOpOr2046);
+            ruleOpOr();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOrRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOr2053); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpOr"
+
+
+    // $ANTLR start "ruleOpOr"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:996:1: ruleOpOr : ( '||' ) ;
+    public final void ruleOpOr() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1000:2: ( ( '||' ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1001:1: ( '||' )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1001:1: ( '||' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1002:1: '||'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
+            }
+            match(input,14,FOLLOW_14_in_ruleOpOr2080); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpOr"
+
+
+    // $ANTLR start "entryRuleXAndExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1017:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
+    public final void entryRuleXAndExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1018:1: ( ruleXAndExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1019:1: ruleXAndExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression2108);
+            ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAndExpression2115); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAndExpression"
+
+
+    // $ANTLR start "ruleXAndExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1026:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
+    public final void ruleXAndExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1030:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1031:1: ( ( rule__XAndExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1031:1: ( ( rule__XAndExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1032:1: ( rule__XAndExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1033:1: ( rule__XAndExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1033:2: rule__XAndExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XAndExpression__Group__0_in_ruleXAndExpression2141);
+            rule__XAndExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAndExpression"
+
+
+    // $ANTLR start "entryRuleOpAnd"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1045:1: entryRuleOpAnd : ruleOpAnd EOF ;
+    public final void entryRuleOpAnd() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1046:1: ( ruleOpAnd EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1047:1: ruleOpAnd EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAndRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpAnd_in_entryRuleOpAnd2168);
+            ruleOpAnd();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAndRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpAnd2175); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpAnd"
+
+
+    // $ANTLR start "ruleOpAnd"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1054:1: ruleOpAnd : ( '&&' ) ;
+    public final void ruleOpAnd() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1058:2: ( ( '&&' ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1059:1: ( '&&' )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1059:1: ( '&&' )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1060:1: '&&'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
+            }
+            match(input,15,FOLLOW_15_in_ruleOpAnd2202); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpAnd"
+
+
+    // $ANTLR start "entryRuleXEqualityExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1075:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
+    public final void entryRuleXEqualityExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1076:1: ( ruleXEqualityExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1077:1: ruleXEqualityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression2230);
+            ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXEqualityExpression2237); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXEqualityExpression"
+
+
+    // $ANTLR start "ruleXEqualityExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1084:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
+    public final void ruleXEqualityExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1088:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1089:1: ( ( rule__XEqualityExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1089:1: ( ( rule__XEqualityExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1090:1: ( rule__XEqualityExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1091:1: ( rule__XEqualityExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1091:2: rule__XEqualityExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XEqualityExpression__Group__0_in_ruleXEqualityExpression2263);
+            rule__XEqualityExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXEqualityExpression"
+
+
+    // $ANTLR start "entryRuleOpEquality"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1103:1: entryRuleOpEquality : ruleOpEquality EOF ;
+    public final void entryRuleOpEquality() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1104:1: ( ruleOpEquality EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1105:1: ruleOpEquality EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpEqualityRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpEquality_in_entryRuleOpEquality2290);
+            ruleOpEquality();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpEqualityRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpEquality2297); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpEquality"
+
+
+    // $ANTLR start "ruleOpEquality"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1112:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
+    public final void ruleOpEquality() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1116:2: ( ( ( rule__OpEquality__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1117:1: ( ( rule__OpEquality__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1117:1: ( ( rule__OpEquality__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1118:1: ( rule__OpEquality__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1119:1: ( rule__OpEquality__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1119:2: rule__OpEquality__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpEquality__Alternatives_in_ruleOpEquality2323);
+            rule__OpEquality__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpEqualityAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpEquality"
+
+
+    // $ANTLR start "entryRuleXRelationalExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1131:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
+    public final void entryRuleXRelationalExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1132:1: ( ruleXRelationalExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1133:1: ruleXRelationalExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression2350);
+            ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXRelationalExpression2357); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXRelationalExpression"
+
+
+    // $ANTLR start "ruleXRelationalExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1140:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
+    public final void ruleXRelationalExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1144:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1145:1: ( ( rule__XRelationalExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1145:1: ( ( rule__XRelationalExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1146:1: ( rule__XRelationalExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1147:1: ( rule__XRelationalExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1147:2: rule__XRelationalExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XRelationalExpression__Group__0_in_ruleXRelationalExpression2383);
+            rule__XRelationalExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXRelationalExpression"
+
+
+    // $ANTLR start "entryRuleOpCompare"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1159:1: entryRuleOpCompare : ruleOpCompare EOF ;
+    public final void entryRuleOpCompare() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1160:1: ( ruleOpCompare EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1161:1: ruleOpCompare EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpCompareRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpCompare_in_entryRuleOpCompare2410);
+            ruleOpCompare();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpCompareRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpCompare2417); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpCompare"
+
+
+    // $ANTLR start "ruleOpCompare"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1168:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
+    public final void ruleOpCompare() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1172:2: ( ( ( rule__OpCompare__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1173:1: ( ( rule__OpCompare__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1173:1: ( ( rule__OpCompare__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1174:1: ( rule__OpCompare__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpCompareAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1175:1: ( rule__OpCompare__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1175:2: rule__OpCompare__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpCompare__Alternatives_in_ruleOpCompare2443);
+            rule__OpCompare__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpCompareAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpCompare"
+
+
+    // $ANTLR start "entryRuleXOtherOperatorExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1187:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
+    public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1188:1: ( ruleXOtherOperatorExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1189:1: ruleXOtherOperatorExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression2470);
+            ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXOtherOperatorExpression2477); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+    // $ANTLR start "ruleXOtherOperatorExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1196:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
+    public final void ruleXOtherOperatorExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1200:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1201:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1201:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1202:1: ( rule__XOtherOperatorExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1203:1: ( rule__XOtherOperatorExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1203:2: rule__XOtherOperatorExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group__0_in_ruleXOtherOperatorExpression2503);
+            rule__XOtherOperatorExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXOtherOperatorExpression"
+
+
+    // $ANTLR start "entryRuleOpOther"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1215:1: entryRuleOpOther : ruleOpOther EOF ;
+    public final void entryRuleOpOther() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1216:1: ( ruleOpOther EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1217:1: ruleOpOther EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpOther_in_entryRuleOpOther2530);
+            ruleOpOther();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOther2537); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpOther"
+
+
+    // $ANTLR start "ruleOpOther"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1224:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
+    public final void ruleOpOther() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1228:2: ( ( ( rule__OpOther__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1229:1: ( ( rule__OpOther__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1229:1: ( ( rule__OpOther__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1230:1: ( rule__OpOther__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1231:1: ( rule__OpOther__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1231:2: rule__OpOther__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpOther__Alternatives_in_ruleOpOther2563);
+            rule__OpOther__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpOther"
+
+
+    // $ANTLR start "entryRuleXAdditiveExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1243:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
+    public final void entryRuleXAdditiveExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1244:1: ( ruleXAdditiveExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1245:1: ruleXAdditiveExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression2590);
+            ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAdditiveExpression2597); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAdditiveExpression"
+
+
+    // $ANTLR start "ruleXAdditiveExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1252:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
+    public final void ruleXAdditiveExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1256:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1257:1: ( ( rule__XAdditiveExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1257:1: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1258:1: ( rule__XAdditiveExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1259:1: ( rule__XAdditiveExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1259:2: rule__XAdditiveExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XAdditiveExpression__Group__0_in_ruleXAdditiveExpression2623);
+            rule__XAdditiveExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAdditiveExpression"
+
+
+    // $ANTLR start "entryRuleOpAdd"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1271:1: entryRuleOpAdd : ruleOpAdd EOF ;
+    public final void entryRuleOpAdd() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1272:1: ( ruleOpAdd EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1273:1: ruleOpAdd EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAddRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpAdd_in_entryRuleOpAdd2650);
+            ruleOpAdd();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAddRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpAdd2657); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpAdd"
+
+
+    // $ANTLR start "ruleOpAdd"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1280:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
+    public final void ruleOpAdd() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1284:2: ( ( ( rule__OpAdd__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1285:1: ( ( rule__OpAdd__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1285:1: ( ( rule__OpAdd__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1286:1: ( rule__OpAdd__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAddAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1287:1: ( rule__OpAdd__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1287:2: rule__OpAdd__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpAdd__Alternatives_in_ruleOpAdd2683);
+            rule__OpAdd__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAddAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpAdd"
+
+
+    // $ANTLR start "entryRuleXMultiplicativeExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1299:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
+    public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1300:1: ( ruleXMultiplicativeExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1301:1: ruleXMultiplicativeExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression2710);
+            ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXMultiplicativeExpression2717); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXMultiplicativeExpression"
+
+
+    // $ANTLR start "ruleXMultiplicativeExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1308:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
+    public final void ruleXMultiplicativeExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1312:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1313:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1313:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1314:1: ( rule__XMultiplicativeExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1315:1: ( rule__XMultiplicativeExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1315:2: rule__XMultiplicativeExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group__0_in_ruleXMultiplicativeExpression2743);
+            rule__XMultiplicativeExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXMultiplicativeExpression"
+
+
+    // $ANTLR start "entryRuleOpMulti"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1327:1: entryRuleOpMulti : ruleOpMulti EOF ;
+    public final void entryRuleOpMulti() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1328:1: ( ruleOpMulti EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1329:1: ruleOpMulti EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpMulti_in_entryRuleOpMulti2770);
+            ruleOpMulti();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpMulti2777); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpMulti"
+
+
+    // $ANTLR start "ruleOpMulti"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1336:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
+    public final void ruleOpMulti() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1340:2: ( ( ( rule__OpMulti__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1341:1: ( ( rule__OpMulti__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1341:1: ( ( rule__OpMulti__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1342:1: ( rule__OpMulti__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1343:1: ( rule__OpMulti__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1343:2: rule__OpMulti__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpMulti__Alternatives_in_ruleOpMulti2803);
+            rule__OpMulti__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpMulti"
+
+
+    // $ANTLR start "entryRuleXUnaryOperation"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1355:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
+    public final void entryRuleXUnaryOperation() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1356:1: ( ruleXUnaryOperation EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1357:1: ruleXUnaryOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation2830);
+            ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXUnaryOperation2837); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXUnaryOperation"
+
+
+    // $ANTLR start "ruleXUnaryOperation"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1364:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
+    public final void ruleXUnaryOperation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1368:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1369:1: ( ( rule__XUnaryOperation__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1369:1: ( ( rule__XUnaryOperation__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1370:1: ( rule__XUnaryOperation__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1371:1: ( rule__XUnaryOperation__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1371:2: rule__XUnaryOperation__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XUnaryOperation__Alternatives_in_ruleXUnaryOperation2863);
+            rule__XUnaryOperation__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXUnaryOperation"
+
+
+    // $ANTLR start "entryRuleOpUnary"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1383:1: entryRuleOpUnary : ruleOpUnary EOF ;
+    public final void entryRuleOpUnary() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1384:1: ( ruleOpUnary EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1385:1: ruleOpUnary EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpUnaryRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpUnary_in_entryRuleOpUnary2890);
+            ruleOpUnary();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpUnaryRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpUnary2897); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpUnary"
+
+
+    // $ANTLR start "ruleOpUnary"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1392:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
+    public final void ruleOpUnary() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1396:2: ( ( ( rule__OpUnary__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1397:1: ( ( rule__OpUnary__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1397:1: ( ( rule__OpUnary__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1398:1: ( rule__OpUnary__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1399:1: ( rule__OpUnary__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1399:2: rule__OpUnary__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpUnary__Alternatives_in_ruleOpUnary2923);
+            rule__OpUnary__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpUnaryAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpUnary"
+
+
+    // $ANTLR start "entryRuleXCastedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1411:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
+    public final void entryRuleXCastedExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1412:1: ( ruleXCastedExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1413:1: ruleXCastedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression2950);
+            ruleXCastedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXCastedExpression2957); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCastedExpression"
+
+
+    // $ANTLR start "ruleXCastedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1420:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
+    public final void ruleXCastedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1424:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1425:1: ( ( rule__XCastedExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1425:1: ( ( rule__XCastedExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1426:1: ( rule__XCastedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1427:1: ( rule__XCastedExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1427:2: rule__XCastedExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XCastedExpression__Group__0_in_ruleXCastedExpression2983);
+            rule__XCastedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCastedExpression"
+
+
+    // $ANTLR start "entryRuleXPostfixOperation"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1439:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
+    public final void entryRuleXPostfixOperation() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1440:1: ( ruleXPostfixOperation EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1441:1: ruleXPostfixOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXPostfixOperation_in_entryRuleXPostfixOperation3010);
+            ruleXPostfixOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXPostfixOperation3017); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXPostfixOperation"
+
+
+    // $ANTLR start "ruleXPostfixOperation"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1448:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
+    public final void ruleXPostfixOperation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1452:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1453:1: ( ( rule__XPostfixOperation__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1453:1: ( ( rule__XPostfixOperation__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1454:1: ( rule__XPostfixOperation__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1455:1: ( rule__XPostfixOperation__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1455:2: rule__XPostfixOperation__Group__0
+            {
+            pushFollow(FOLLOW_rule__XPostfixOperation__Group__0_in_ruleXPostfixOperation3043);
+            rule__XPostfixOperation__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXPostfixOperation"
+
+
+    // $ANTLR start "entryRuleOpPostfix"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1467:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
+    public final void entryRuleOpPostfix() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1468:1: ( ruleOpPostfix EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1469:1: ruleOpPostfix EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpPostfixRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpPostfix_in_entryRuleOpPostfix3070);
+            ruleOpPostfix();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpPostfixRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpPostfix3077); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpPostfix"
+
+
+    // $ANTLR start "ruleOpPostfix"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1476:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
+    public final void ruleOpPostfix() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1480:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1481:1: ( ( rule__OpPostfix__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1481:1: ( ( rule__OpPostfix__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1482:1: ( rule__OpPostfix__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1483:1: ( rule__OpPostfix__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1483:2: rule__OpPostfix__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpPostfix__Alternatives_in_ruleOpPostfix3103);
+            rule__OpPostfix__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpPostfixAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpPostfix"
+
+
+    // $ANTLR start "entryRuleXMemberFeatureCall"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1495:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
+    public final void entryRuleXMemberFeatureCall() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1496:1: ( ruleXMemberFeatureCall EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1497:1: ruleXMemberFeatureCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallRule()); 
+            }
+            pushFollow(FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall3130);
+            ruleXMemberFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXMemberFeatureCall3137); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXMemberFeatureCall"
+
+
+    // $ANTLR start "ruleXMemberFeatureCall"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1504:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
+    public final void ruleXMemberFeatureCall() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1508:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1509:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1509:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1510:1: ( rule__XMemberFeatureCall__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1511:1: ( rule__XMemberFeatureCall__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1511:2: rule__XMemberFeatureCall__Group__0
+            {
+            pushFollow(FOLLOW_rule__XMemberFeatureCall__Group__0_in_ruleXMemberFeatureCall3163);
+            rule__XMemberFeatureCall__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXMemberFeatureCall"
+
+
+    // $ANTLR start "entryRuleXPrimaryExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1523:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
+    public final void entryRuleXPrimaryExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1524:1: ( ruleXPrimaryExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1525:1: ruleXPrimaryExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPrimaryExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXPrimaryExpression_in_entryRuleXPrimaryExpression3190);
+            ruleXPrimaryExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPrimaryExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXPrimaryExpression3197); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXPrimaryExpression"
+
+
+    // $ANTLR start "ruleXPrimaryExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1532:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
+    public final void ruleXPrimaryExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1536:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1537:1: ( ( rule__XPrimaryExpression__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1537:1: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1538:1: ( rule__XPrimaryExpression__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1539:1: ( rule__XPrimaryExpression__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1539:2: rule__XPrimaryExpression__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XPrimaryExpression__Alternatives_in_ruleXPrimaryExpression3223);
+            rule__XPrimaryExpression__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXPrimaryExpression"
+
+
+    // $ANTLR start "entryRuleXLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1551:1: entryRuleXLiteral : ruleXLiteral EOF ;
+    public final void entryRuleXLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1552:1: ( ruleXLiteral EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1553:1: ruleXLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXLiteral_in_entryRuleXLiteral3250);
+            ruleXLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXLiteral3257); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXLiteral"
+
+
+    // $ANTLR start "ruleXLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1560:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
+    public final void ruleXLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1564:2: ( ( ( rule__XLiteral__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1565:1: ( ( rule__XLiteral__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1565:1: ( ( rule__XLiteral__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1566:1: ( rule__XLiteral__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXLiteralAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1567:1: ( rule__XLiteral__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1567:2: rule__XLiteral__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XLiteral__Alternatives_in_ruleXLiteral3283);
+            rule__XLiteral__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXLiteralAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXLiteral"
+
+
+    // $ANTLR start "entryRuleXCollectionLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1579:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
+    public final void entryRuleXCollectionLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1580:1: ( ruleXCollectionLiteral EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1581:1: ruleXCollectionLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCollectionLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXCollectionLiteral_in_entryRuleXCollectionLiteral3310);
+            ruleXCollectionLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCollectionLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXCollectionLiteral3317); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCollectionLiteral"
+
+
+    // $ANTLR start "ruleXCollectionLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1588:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
+    public final void ruleXCollectionLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1592:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1593:1: ( ( rule__XCollectionLiteral__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1593:1: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1594:1: ( rule__XCollectionLiteral__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1595:1: ( rule__XCollectionLiteral__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1595:2: rule__XCollectionLiteral__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XCollectionLiteral__Alternatives_in_ruleXCollectionLiteral3343);
+            rule__XCollectionLiteral__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCollectionLiteral"
+
+
+    // $ANTLR start "entryRuleXSetLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1607:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
+    public final void entryRuleXSetLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1608:1: ( ruleXSetLiteral EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1609:1: ruleXSetLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXSetLiteral_in_entryRuleXSetLiteral3370);
+            ruleXSetLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXSetLiteral3377); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXSetLiteral"
+
+
+    // $ANTLR start "ruleXSetLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1616:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
+    public final void ruleXSetLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1620:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1621:1: ( ( rule__XSetLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1621:1: ( ( rule__XSetLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1622:1: ( rule__XSetLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1623:1: ( rule__XSetLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1623:2: rule__XSetLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XSetLiteral__Group__0_in_ruleXSetLiteral3403);
+            rule__XSetLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXSetLiteral"
+
+
+    // $ANTLR start "entryRuleXListLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1635:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
+    public final void entryRuleXListLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1636:1: ( ruleXListLiteral EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1637:1: ruleXListLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXListLiteral_in_entryRuleXListLiteral3430);
+            ruleXListLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXListLiteral3437); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXListLiteral"
+
+
+    // $ANTLR start "ruleXListLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1644:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
+    public final void ruleXListLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1648:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1649:1: ( ( rule__XListLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1649:1: ( ( rule__XListLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1650:1: ( rule__XListLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1651:1: ( rule__XListLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1651:2: rule__XListLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XListLiteral__Group__0_in_ruleXListLiteral3463);
+            rule__XListLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXListLiteral"
+
+
+    // $ANTLR start "entryRuleXClosure"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1663:1: entryRuleXClosure : ruleXClosure EOF ;
+    public final void entryRuleXClosure() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1664:1: ( ruleXClosure EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1665:1: ruleXClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureRule()); 
+            }
+            pushFollow(FOLLOW_ruleXClosure_in_entryRuleXClosure3490);
+            ruleXClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXClosure3497); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXClosure"
+
+
+    // $ANTLR start "ruleXClosure"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1672:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
+    public final void ruleXClosure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1676:2: ( ( ( rule__XClosure__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1677:1: ( ( rule__XClosure__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1677:1: ( ( rule__XClosure__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1678:1: ( rule__XClosure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1679:1: ( rule__XClosure__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1679:2: rule__XClosure__Group__0
+            {
+            pushFollow(FOLLOW_rule__XClosure__Group__0_in_ruleXClosure3523);
+            rule__XClosure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXClosure"
+
+
+    // $ANTLR start "entryRuleXExpressionInClosure"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1691:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
+    public final void entryRuleXExpressionInClosure() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1692:1: ( ruleXExpressionInClosure EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1693:1: ruleXExpressionInClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureRule()); 
+            }
+            pushFollow(FOLLOW_ruleXExpressionInClosure_in_entryRuleXExpressionInClosure3550);
+            ruleXExpressionInClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionInClosure3557); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXExpressionInClosure"
+
+
+    // $ANTLR start "ruleXExpressionInClosure"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1700:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
+    public final void ruleXExpressionInClosure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1704:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1705:1: ( ( rule__XExpressionInClosure__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1705:1: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1706:1: ( rule__XExpressionInClosure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1707:1: ( rule__XExpressionInClosure__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1707:2: rule__XExpressionInClosure__Group__0
+            {
+            pushFollow(FOLLOW_rule__XExpressionInClosure__Group__0_in_ruleXExpressionInClosure3583);
+            rule__XExpressionInClosure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXExpressionInClosure"
+
+
+    // $ANTLR start "entryRuleXShortClosure"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1719:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
+    public final void entryRuleXShortClosure() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1720:1: ( ruleXShortClosure EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1721:1: ruleXShortClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureRule()); 
+            }
+            pushFollow(FOLLOW_ruleXShortClosure_in_entryRuleXShortClosure3610);
+            ruleXShortClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXShortClosure3617); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXShortClosure"
+
+
+    // $ANTLR start "ruleXShortClosure"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1728:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
+    public final void ruleXShortClosure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1732:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1733:1: ( ( rule__XShortClosure__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1733:1: ( ( rule__XShortClosure__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1734:1: ( rule__XShortClosure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1735:1: ( rule__XShortClosure__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1735:2: rule__XShortClosure__Group__0
+            {
+            pushFollow(FOLLOW_rule__XShortClosure__Group__0_in_ruleXShortClosure3643);
+            rule__XShortClosure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXShortClosure"
+
+
+    // $ANTLR start "entryRuleXParenthesizedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1747:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
+    public final void entryRuleXParenthesizedExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1748:1: ( ruleXParenthesizedExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1749:1: ruleXParenthesizedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXParenthesizedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXParenthesizedExpression_in_entryRuleXParenthesizedExpression3670);
+            ruleXParenthesizedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXParenthesizedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXParenthesizedExpression3677); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXParenthesizedExpression"
+
+
+    // $ANTLR start "ruleXParenthesizedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1756:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
+    public final void ruleXParenthesizedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1760:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1761:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1761:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1762:1: ( rule__XParenthesizedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1763:1: ( rule__XParenthesizedExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1763:2: rule__XParenthesizedExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XParenthesizedExpression__Group__0_in_ruleXParenthesizedExpression3703);
+            rule__XParenthesizedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXParenthesizedExpression"
+
+
+    // $ANTLR start "entryRuleXIfExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1775:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
+    public final void entryRuleXIfExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1776:1: ( ruleXIfExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1777:1: ruleXIfExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXIfExpression_in_entryRuleXIfExpression3730);
+            ruleXIfExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXIfExpression3737); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXIfExpression"
+
+
+    // $ANTLR start "ruleXIfExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1784:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
+    public final void ruleXIfExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1788:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1789:1: ( ( rule__XIfExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1789:1: ( ( rule__XIfExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1790:1: ( rule__XIfExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1791:1: ( rule__XIfExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1791:2: rule__XIfExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XIfExpression__Group__0_in_ruleXIfExpression3763);
+            rule__XIfExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXIfExpression"
+
+
+    // $ANTLR start "entryRuleXSwitchExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1803:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
+    public final void entryRuleXSwitchExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1804:1: ( ruleXSwitchExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1805:1: ruleXSwitchExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXSwitchExpression_in_entryRuleXSwitchExpression3790);
+            ruleXSwitchExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXSwitchExpression3797); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXSwitchExpression"
+
+
+    // $ANTLR start "ruleXSwitchExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1812:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
+    public final void ruleXSwitchExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1816:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1817:1: ( ( rule__XSwitchExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1817:1: ( ( rule__XSwitchExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1818:1: ( rule__XSwitchExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1819:1: ( rule__XSwitchExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1819:2: rule__XSwitchExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XSwitchExpression__Group__0_in_ruleXSwitchExpression3823);
+            rule__XSwitchExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXSwitchExpression"
+
+
+    // $ANTLR start "entryRuleXCasePart"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1831:1: entryRuleXCasePart : ruleXCasePart EOF ;
+    public final void entryRuleXCasePart() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1832:1: ( ruleXCasePart EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1833:1: ruleXCasePart EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartRule()); 
+            }
+            pushFollow(FOLLOW_ruleXCasePart_in_entryRuleXCasePart3850);
+            ruleXCasePart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXCasePart3857); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCasePart"
+
+
+    // $ANTLR start "ruleXCasePart"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1840:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
+    public final void ruleXCasePart() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1844:2: ( ( ( rule__XCasePart__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1845:1: ( ( rule__XCasePart__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1845:1: ( ( rule__XCasePart__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1846:1: ( rule__XCasePart__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1847:1: ( rule__XCasePart__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1847:2: rule__XCasePart__Group__0
+            {
+            pushFollow(FOLLOW_rule__XCasePart__Group__0_in_ruleXCasePart3883);
+            rule__XCasePart__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCasePart"
+
+
+    // $ANTLR start "entryRuleXForLoopExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1859:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
+    public final void entryRuleXForLoopExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1860:1: ( ruleXForLoopExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1861:1: ruleXForLoopExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXForLoopExpression_in_entryRuleXForLoopExpression3910);
+            ruleXForLoopExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXForLoopExpression3917); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXForLoopExpression"
+
+
+    // $ANTLR start "ruleXForLoopExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1868:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
+    public final void ruleXForLoopExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1872:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1873:1: ( ( rule__XForLoopExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1873:1: ( ( rule__XForLoopExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1874:1: ( rule__XForLoopExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1875:1: ( rule__XForLoopExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1875:2: rule__XForLoopExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XForLoopExpression__Group__0_in_ruleXForLoopExpression3943);
+            rule__XForLoopExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXForLoopExpression"
+
+
+    // $ANTLR start "entryRuleXBasicForLoopExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1887:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
+    public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1888:1: ( ruleXBasicForLoopExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1889:1: ruleXBasicForLoopExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXBasicForLoopExpression_in_entryRuleXBasicForLoopExpression3970);
+            ruleXBasicForLoopExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXBasicForLoopExpression3977); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXBasicForLoopExpression"
+
+
+    // $ANTLR start "ruleXBasicForLoopExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1896:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
+    public final void ruleXBasicForLoopExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1900:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1901:1: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1901:1: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1902:1: ( rule__XBasicForLoopExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1903:1: ( rule__XBasicForLoopExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1903:2: rule__XBasicForLoopExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XBasicForLoopExpression__Group__0_in_ruleXBasicForLoopExpression4003);
+            rule__XBasicForLoopExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXBasicForLoopExpression"
+
+
+    // $ANTLR start "entryRuleXWhileExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1915:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
+    public final void entryRuleXWhileExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1916:1: ( ruleXWhileExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1917:1: ruleXWhileExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXWhileExpression_in_entryRuleXWhileExpression4030);
+            ruleXWhileExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXWhileExpression4037); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXWhileExpression"
+
+
+    // $ANTLR start "ruleXWhileExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1924:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
+    public final void ruleXWhileExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1928:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1929:1: ( ( rule__XWhileExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1929:1: ( ( rule__XWhileExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1930:1: ( rule__XWhileExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1931:1: ( rule__XWhileExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1931:2: rule__XWhileExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XWhileExpression__Group__0_in_ruleXWhileExpression4063);
+            rule__XWhileExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXWhileExpression"
+
+
+    // $ANTLR start "entryRuleXDoWhileExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1943:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
+    public final void entryRuleXDoWhileExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1944:1: ( ruleXDoWhileExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1945:1: ruleXDoWhileExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXDoWhileExpression_in_entryRuleXDoWhileExpression4090);
+            ruleXDoWhileExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXDoWhileExpression4097); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXDoWhileExpression"
+
+
+    // $ANTLR start "ruleXDoWhileExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1952:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
+    public final void ruleXDoWhileExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1956:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1957:1: ( ( rule__XDoWhileExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1957:1: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1958:1: ( rule__XDoWhileExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1959:1: ( rule__XDoWhileExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1959:2: rule__XDoWhileExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XDoWhileExpression__Group__0_in_ruleXDoWhileExpression4123);
+            rule__XDoWhileExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXDoWhileExpression"
+
+
+    // $ANTLR start "entryRuleXBlockExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1971:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
+    public final void entryRuleXBlockExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1972:1: ( ruleXBlockExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1973:1: ruleXBlockExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXBlockExpression_in_entryRuleXBlockExpression4150);
+            ruleXBlockExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXBlockExpression4157); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXBlockExpression"
+
+
+    // $ANTLR start "ruleXBlockExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1980:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
+    public final void ruleXBlockExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1984:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1985:1: ( ( rule__XBlockExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1985:1: ( ( rule__XBlockExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1986:1: ( rule__XBlockExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1987:1: ( rule__XBlockExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1987:2: rule__XBlockExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XBlockExpression__Group__0_in_ruleXBlockExpression4183);
+            rule__XBlockExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXBlockExpression"
+
+
+    // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:1999:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
+    public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2000:1: ( ruleXExpressionOrVarDeclaration EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2001:1: ruleXExpressionOrVarDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXExpressionOrVarDeclaration_in_entryRuleXExpressionOrVarDeclaration4210);
+            ruleXExpressionOrVarDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionOrVarDeclarationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionOrVarDeclaration4217); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXExpressionOrVarDeclaration"
+
+
+    // $ANTLR start "ruleXExpressionOrVarDeclaration"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2008:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
+    public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2012:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2013:1: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2013:1: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2014:1: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2015:1: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2015:2: rule__XExpressionOrVarDeclaration__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XExpressionOrVarDeclaration__Alternatives_in_ruleXExpressionOrVarDeclaration4243);
+            rule__XExpressionOrVarDeclaration__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXExpressionOrVarDeclaration"
+
+
+    // $ANTLR start "entryRuleXVariableDeclaration"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2027:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
+    public final void entryRuleXVariableDeclaration() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2028:1: ( ruleXVariableDeclaration EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2029:1: ruleXVariableDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXVariableDeclaration_in_entryRuleXVariableDeclaration4270);
+            ruleXVariableDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXVariableDeclaration4277); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXVariableDeclaration"
+
+
+    // $ANTLR start "ruleXVariableDeclaration"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2036:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
+    public final void ruleXVariableDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2040:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2041:1: ( ( rule__XVariableDeclaration__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2041:1: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2042:1: ( rule__XVariableDeclaration__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2043:1: ( rule__XVariableDeclaration__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2043:2: rule__XVariableDeclaration__Group__0
+            {
+            pushFollow(FOLLOW_rule__XVariableDeclaration__Group__0_in_ruleXVariableDeclaration4303);
+            rule__XVariableDeclaration__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleJvmFormalParameter"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2055:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
+    public final void entryRuleJvmFormalParameter() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2056:1: ( ruleJvmFormalParameter EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2057:1: ruleJvmFormalParameter EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmFormalParameter_in_entryRuleJvmFormalParameter4330);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmFormalParameter4337); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmFormalParameter"
+
+
+    // $ANTLR start "ruleJvmFormalParameter"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2064:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
+    public final void ruleJvmFormalParameter() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2068:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2069:1: ( ( rule__JvmFormalParameter__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2069:1: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2070:1: ( rule__JvmFormalParameter__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2071:1: ( rule__JvmFormalParameter__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2071:2: rule__JvmFormalParameter__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmFormalParameter__Group__0_in_ruleJvmFormalParameter4363);
+            rule__JvmFormalParameter__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmFormalParameter"
+
+
+    // $ANTLR start "entryRuleFullJvmFormalParameter"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2083:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
+    public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2084:1: ( ruleFullJvmFormalParameter EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2085:1: ruleFullJvmFormalParameter EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterRule()); 
+            }
+            pushFollow(FOLLOW_ruleFullJvmFormalParameter_in_entryRuleFullJvmFormalParameter4390);
+            ruleFullJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFullJvmFormalParameter4397); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFullJvmFormalParameter"
+
+
+    // $ANTLR start "ruleFullJvmFormalParameter"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2092:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
+    public final void ruleFullJvmFormalParameter() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2096:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2097:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2097:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2098:1: ( rule__FullJvmFormalParameter__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2099:1: ( rule__FullJvmFormalParameter__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2099:2: rule__FullJvmFormalParameter__Group__0
+            {
+            pushFollow(FOLLOW_rule__FullJvmFormalParameter__Group__0_in_ruleFullJvmFormalParameter4423);
+            rule__FullJvmFormalParameter__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFullJvmFormalParameter"
+
+
+    // $ANTLR start "entryRuleXFeatureCall"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2111:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
+    public final void entryRuleXFeatureCall() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2112:1: ( ruleXFeatureCall EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2113:1: ruleXFeatureCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallRule()); 
+            }
+            pushFollow(FOLLOW_ruleXFeatureCall_in_entryRuleXFeatureCall4450);
+            ruleXFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXFeatureCall4457); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXFeatureCall"
+
+
+    // $ANTLR start "ruleXFeatureCall"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2120:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
+    public final void ruleXFeatureCall() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2124:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2125:1: ( ( rule__XFeatureCall__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2125:1: ( ( rule__XFeatureCall__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2126:1: ( rule__XFeatureCall__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2127:1: ( rule__XFeatureCall__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2127:2: rule__XFeatureCall__Group__0
+            {
+            pushFollow(FOLLOW_rule__XFeatureCall__Group__0_in_ruleXFeatureCall4483);
+            rule__XFeatureCall__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXFeatureCall"
+
+
+    // $ANTLR start "entryRuleFeatureCallID"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2139:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
+    public final void entryRuleFeatureCallID() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2140:1: ( ruleFeatureCallID EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2141:1: ruleFeatureCallID EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFeatureCallIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleFeatureCallID_in_entryRuleFeatureCallID4510);
+            ruleFeatureCallID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFeatureCallIDRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFeatureCallID4517); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFeatureCallID"
+
+
+    // $ANTLR start "ruleFeatureCallID"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2148:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
+    public final void ruleFeatureCallID() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2152:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2153:1: ( ( rule__FeatureCallID__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2153:1: ( ( rule__FeatureCallID__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2154:1: ( rule__FeatureCallID__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2155:1: ( rule__FeatureCallID__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2155:2: rule__FeatureCallID__Alternatives
+            {
+            pushFollow(FOLLOW_rule__FeatureCallID__Alternatives_in_ruleFeatureCallID4543);
+            rule__FeatureCallID__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFeatureCallID"
+
+
+    // $ANTLR start "entryRuleIdOrSuper"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2167:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
+    public final void entryRuleIdOrSuper() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2168:1: ( ruleIdOrSuper EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2169:1: ruleIdOrSuper EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getIdOrSuperRule()); 
+            }
+            pushFollow(FOLLOW_ruleIdOrSuper_in_entryRuleIdOrSuper4570);
+            ruleIdOrSuper();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getIdOrSuperRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleIdOrSuper4577); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIdOrSuper"
+
+
+    // $ANTLR start "ruleIdOrSuper"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2176:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
+    public final void ruleIdOrSuper() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2180:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2181:1: ( ( rule__IdOrSuper__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2181:1: ( ( rule__IdOrSuper__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2182:1: ( rule__IdOrSuper__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2183:1: ( rule__IdOrSuper__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2183:2: rule__IdOrSuper__Alternatives
+            {
+            pushFollow(FOLLOW_rule__IdOrSuper__Alternatives_in_ruleIdOrSuper4603);
+            rule__IdOrSuper__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIdOrSuper"
+
+
+    // $ANTLR start "entryRuleXConstructorCall"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2195:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
+    public final void entryRuleXConstructorCall() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2196:1: ( ruleXConstructorCall EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2197:1: ruleXConstructorCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallRule()); 
+            }
+            pushFollow(FOLLOW_ruleXConstructorCall_in_entryRuleXConstructorCall4630);
+            ruleXConstructorCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXConstructorCall4637); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXConstructorCall"
+
+
+    // $ANTLR start "ruleXConstructorCall"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2204:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
+    public final void ruleXConstructorCall() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2208:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2209:1: ( ( rule__XConstructorCall__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2209:1: ( ( rule__XConstructorCall__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2210:1: ( rule__XConstructorCall__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2211:1: ( rule__XConstructorCall__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2211:2: rule__XConstructorCall__Group__0
+            {
+            pushFollow(FOLLOW_rule__XConstructorCall__Group__0_in_ruleXConstructorCall4663);
+            rule__XConstructorCall__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXConstructorCall"
+
+
+    // $ANTLR start "entryRuleXBooleanLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2223:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
+    public final void entryRuleXBooleanLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2224:1: ( ruleXBooleanLiteral EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2225:1: ruleXBooleanLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXBooleanLiteral_in_entryRuleXBooleanLiteral4690);
+            ruleXBooleanLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXBooleanLiteral4697); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXBooleanLiteral"
+
+
+    // $ANTLR start "ruleXBooleanLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2232:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
+    public final void ruleXBooleanLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2236:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2237:1: ( ( rule__XBooleanLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2237:1: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2238:1: ( rule__XBooleanLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2239:1: ( rule__XBooleanLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2239:2: rule__XBooleanLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XBooleanLiteral__Group__0_in_ruleXBooleanLiteral4723);
+            rule__XBooleanLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXBooleanLiteral"
+
+
+    // $ANTLR start "entryRuleXNullLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2251:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
+    public final void entryRuleXNullLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2252:1: ( ruleXNullLiteral EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2253:1: ruleXNullLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNullLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXNullLiteral_in_entryRuleXNullLiteral4750);
+            ruleXNullLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNullLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXNullLiteral4757); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXNullLiteral"
+
+
+    // $ANTLR start "ruleXNullLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2260:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
+    public final void ruleXNullLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2264:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2265:1: ( ( rule__XNullLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2265:1: ( ( rule__XNullLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2266:1: ( rule__XNullLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNullLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2267:1: ( rule__XNullLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2267:2: rule__XNullLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XNullLiteral__Group__0_in_ruleXNullLiteral4783);
+            rule__XNullLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNullLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXNullLiteral"
+
+
+    // $ANTLR start "entryRuleXNumberLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2279:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
+    public final void entryRuleXNumberLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2280:1: ( ruleXNumberLiteral EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2281:1: ruleXNumberLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNumberLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXNumberLiteral_in_entryRuleXNumberLiteral4810);
+            ruleXNumberLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNumberLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXNumberLiteral4817); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXNumberLiteral"
+
+
+    // $ANTLR start "ruleXNumberLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2288:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
+    public final void ruleXNumberLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2292:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2293:1: ( ( rule__XNumberLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2293:1: ( ( rule__XNumberLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2294:1: ( rule__XNumberLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2295:1: ( rule__XNumberLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2295:2: rule__XNumberLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XNumberLiteral__Group__0_in_ruleXNumberLiteral4843);
+            rule__XNumberLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNumberLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXNumberLiteral"
+
+
+    // $ANTLR start "entryRuleXStringLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2307:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
+    public final void entryRuleXStringLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2308:1: ( ruleXStringLiteral EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2309:1: ruleXStringLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXStringLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXStringLiteral_in_entryRuleXStringLiteral4870);
+            ruleXStringLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXStringLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXStringLiteral4877); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXStringLiteral"
+
+
+    // $ANTLR start "ruleXStringLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2316:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
+    public final void ruleXStringLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2320:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2321:1: ( ( rule__XStringLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2321:1: ( ( rule__XStringLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2322:1: ( rule__XStringLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXStringLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2323:1: ( rule__XStringLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2323:2: rule__XStringLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XStringLiteral__Group__0_in_ruleXStringLiteral4903);
+            rule__XStringLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXStringLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXStringLiteral"
+
+
+    // $ANTLR start "entryRuleXTypeLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2335:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
+    public final void entryRuleXTypeLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2336:1: ( ruleXTypeLiteral EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2337:1: ruleXTypeLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXTypeLiteral_in_entryRuleXTypeLiteral4930);
+            ruleXTypeLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXTypeLiteral4937); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXTypeLiteral"
+
+
+    // $ANTLR start "ruleXTypeLiteral"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2344:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
+    public final void ruleXTypeLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2348:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2349:1: ( ( rule__XTypeLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2349:1: ( ( rule__XTypeLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2350:1: ( rule__XTypeLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2351:1: ( rule__XTypeLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2351:2: rule__XTypeLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XTypeLiteral__Group__0_in_ruleXTypeLiteral4963);
+            rule__XTypeLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXTypeLiteral"
+
+
+    // $ANTLR start "entryRuleXThrowExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2363:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
+    public final void entryRuleXThrowExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2364:1: ( ruleXThrowExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2365:1: ruleXThrowExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXThrowExpression_in_entryRuleXThrowExpression4990);
+            ruleXThrowExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXThrowExpression4997); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXThrowExpression"
+
+
+    // $ANTLR start "ruleXThrowExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2372:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
+    public final void ruleXThrowExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2376:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2377:1: ( ( rule__XThrowExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2377:1: ( ( rule__XThrowExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2378:1: ( rule__XThrowExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2379:1: ( rule__XThrowExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2379:2: rule__XThrowExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XThrowExpression__Group__0_in_ruleXThrowExpression5023);
+            rule__XThrowExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXThrowExpression"
+
+
+    // $ANTLR start "entryRuleXReturnExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2391:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
+    public final void entryRuleXReturnExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2392:1: ( ruleXReturnExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2393:1: ruleXReturnExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXReturnExpression_in_entryRuleXReturnExpression5050);
+            ruleXReturnExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXReturnExpression5057); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXReturnExpression"
+
+
+    // $ANTLR start "ruleXReturnExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2400:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
+    public final void ruleXReturnExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2404:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2405:1: ( ( rule__XReturnExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2405:1: ( ( rule__XReturnExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2406:1: ( rule__XReturnExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2407:1: ( rule__XReturnExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2407:2: rule__XReturnExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XReturnExpression__Group__0_in_ruleXReturnExpression5083);
+            rule__XReturnExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXReturnExpression"
+
+
+    // $ANTLR start "entryRuleXTryCatchFinallyExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2419:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
+    public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2420:1: ( ruleXTryCatchFinallyExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2421:1: ruleXTryCatchFinallyExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXTryCatchFinallyExpression_in_entryRuleXTryCatchFinallyExpression5110);
+            ruleXTryCatchFinallyExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXTryCatchFinallyExpression5117); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXTryCatchFinallyExpression"
+
+
+    // $ANTLR start "ruleXTryCatchFinallyExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2428:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
+    public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2432:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2433:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2433:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2434:1: ( rule__XTryCatchFinallyExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2435:1: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2435:2: rule__XTryCatchFinallyExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__0_in_ruleXTryCatchFinallyExpression5143);
+            rule__XTryCatchFinallyExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXTryCatchFinallyExpression"
+
+
+    // $ANTLR start "entryRuleXSynchronizedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2447:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
+    public final void entryRuleXSynchronizedExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2448:1: ( ruleXSynchronizedExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2449:1: ruleXSynchronizedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXSynchronizedExpression_in_entryRuleXSynchronizedExpression5170);
+            ruleXSynchronizedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXSynchronizedExpression5177); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXSynchronizedExpression"
+
+
+    // $ANTLR start "ruleXSynchronizedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2456:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
+    public final void ruleXSynchronizedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2460:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2461:1: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2461:1: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2462:1: ( rule__XSynchronizedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2463:1: ( rule__XSynchronizedExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2463:2: rule__XSynchronizedExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XSynchronizedExpression__Group__0_in_ruleXSynchronizedExpression5203);
+            rule__XSynchronizedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXSynchronizedExpression"
+
+
+    // $ANTLR start "entryRuleXCatchClause"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2475:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
+    public final void entryRuleXCatchClause() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2476:1: ( ruleXCatchClause EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2477:1: ruleXCatchClause EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseRule()); 
+            }
+            pushFollow(FOLLOW_ruleXCatchClause_in_entryRuleXCatchClause5230);
+            ruleXCatchClause();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXCatchClause5237); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCatchClause"
+
+
+    // $ANTLR start "ruleXCatchClause"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2484:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
+    public final void ruleXCatchClause() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2488:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2489:1: ( ( rule__XCatchClause__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2489:1: ( ( rule__XCatchClause__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2490:1: ( rule__XCatchClause__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2491:1: ( rule__XCatchClause__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2491:2: rule__XCatchClause__Group__0
+            {
+            pushFollow(FOLLOW_rule__XCatchClause__Group__0_in_ruleXCatchClause5263);
+            rule__XCatchClause__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCatchClause"
+
+
+    // $ANTLR start "entryRuleNumber"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2503:1: entryRuleNumber : ruleNumber EOF ;
+    public final void entryRuleNumber() throws RecognitionException {
+
+        	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2507:1: ( ruleNumber EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2508:1: ruleNumber EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberRule()); 
+            }
+            pushFollow(FOLLOW_ruleNumber_in_entryRuleNumber5295);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNumber5302); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	myHiddenTokenState.restore();
+
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNumber"
+
+
+    // $ANTLR start "ruleNumber"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2518:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
+    public final void ruleNumber() throws RecognitionException {
+
+        		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2523:2: ( ( ( rule__Number__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2524:1: ( ( rule__Number__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2524:1: ( ( rule__Number__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2525:1: ( rule__Number__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2526:1: ( rule__Number__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2526:2: rule__Number__Alternatives
+            {
+            pushFollow(FOLLOW_rule__Number__Alternatives_in_ruleNumber5332);
+            rule__Number__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+            	myHiddenTokenState.restore();
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNumber"
+
+
+    // $ANTLR start "entryRuleJvmTypeReference"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2541:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
+    public final void entryRuleJvmTypeReference() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2542:1: ( ruleJvmTypeReference EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2543:1: ruleJvmTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmTypeReference_in_entryRuleJvmTypeReference5361);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmTypeReference5368); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmTypeReference"
+
+
+    // $ANTLR start "ruleJvmTypeReference"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2550:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
+    public final void ruleJvmTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2554:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2555:1: ( ( rule__JvmTypeReference__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2555:1: ( ( rule__JvmTypeReference__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2556:1: ( rule__JvmTypeReference__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2557:1: ( rule__JvmTypeReference__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2557:2: rule__JvmTypeReference__Alternatives
+            {
+            pushFollow(FOLLOW_rule__JvmTypeReference__Alternatives_in_ruleJvmTypeReference5394);
+            rule__JvmTypeReference__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmTypeReference"
+
+
+    // $ANTLR start "entryRuleArrayBrackets"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2569:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
+    public final void entryRuleArrayBrackets() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2570:1: ( ruleArrayBrackets EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2571:1: ruleArrayBrackets EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getArrayBracketsRule()); 
+            }
+            pushFollow(FOLLOW_ruleArrayBrackets_in_entryRuleArrayBrackets5421);
+            ruleArrayBrackets();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getArrayBracketsRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleArrayBrackets5428); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleArrayBrackets"
+
+
+    // $ANTLR start "ruleArrayBrackets"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2578:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
+    public final void ruleArrayBrackets() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2582:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2583:1: ( ( rule__ArrayBrackets__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2583:1: ( ( rule__ArrayBrackets__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2584:1: ( rule__ArrayBrackets__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getArrayBracketsAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2585:1: ( rule__ArrayBrackets__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2585:2: rule__ArrayBrackets__Group__0
+            {
+            pushFollow(FOLLOW_rule__ArrayBrackets__Group__0_in_ruleArrayBrackets5454);
+            rule__ArrayBrackets__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getArrayBracketsAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleArrayBrackets"
+
+
+    // $ANTLR start "entryRuleXFunctionTypeRef"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2597:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
+    public final void entryRuleXFunctionTypeRef() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2598:1: ( ruleXFunctionTypeRef EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2599:1: ruleXFunctionTypeRef EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefRule()); 
+            }
+            pushFollow(FOLLOW_ruleXFunctionTypeRef_in_entryRuleXFunctionTypeRef5481);
+            ruleXFunctionTypeRef();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXFunctionTypeRef5488); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXFunctionTypeRef"
+
+
+    // $ANTLR start "ruleXFunctionTypeRef"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2606:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
+    public final void ruleXFunctionTypeRef() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2610:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2611:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2611:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2612:1: ( rule__XFunctionTypeRef__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2613:1: ( rule__XFunctionTypeRef__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2613:2: rule__XFunctionTypeRef__Group__0
+            {
+            pushFollow(FOLLOW_rule__XFunctionTypeRef__Group__0_in_ruleXFunctionTypeRef5514);
+            rule__XFunctionTypeRef__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXFunctionTypeRef"
+
+
+    // $ANTLR start "entryRuleJvmParameterizedTypeReference"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2625:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
+    public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2626:1: ( ruleJvmParameterizedTypeReference EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2627:1: ruleJvmParameterizedTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmParameterizedTypeReference_in_entryRuleJvmParameterizedTypeReference5541);
+            ruleJvmParameterizedTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmParameterizedTypeReference5548); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmParameterizedTypeReference"
+
+
+    // $ANTLR start "ruleJvmParameterizedTypeReference"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2634:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
+    public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2638:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2639:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2639:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2640:1: ( rule__JvmParameterizedTypeReference__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2641:1: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2641:2: rule__JvmParameterizedTypeReference__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group__0_in_ruleJvmParameterizedTypeReference5574);
+            rule__JvmParameterizedTypeReference__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmParameterizedTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmArgumentTypeReference"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2653:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
+    public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2654:1: ( ruleJvmArgumentTypeReference EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2655:1: ruleJvmArgumentTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_entryRuleJvmArgumentTypeReference5601);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmArgumentTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmArgumentTypeReference5608); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmArgumentTypeReference"
+
+
+    // $ANTLR start "ruleJvmArgumentTypeReference"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2662:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
+    public final void ruleJvmArgumentTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2666:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2667:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2667:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2668:1: ( rule__JvmArgumentTypeReference__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2669:1: ( rule__JvmArgumentTypeReference__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2669:2: rule__JvmArgumentTypeReference__Alternatives
+            {
+            pushFollow(FOLLOW_rule__JvmArgumentTypeReference__Alternatives_in_ruleJvmArgumentTypeReference5634);
+            rule__JvmArgumentTypeReference__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmArgumentTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmWildcardTypeReference"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2681:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
+    public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2682:1: ( ruleJvmWildcardTypeReference EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2683:1: ruleJvmWildcardTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmWildcardTypeReference_in_entryRuleJvmWildcardTypeReference5661);
+            ruleJvmWildcardTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmWildcardTypeReference5668); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmWildcardTypeReference"
+
+
+    // $ANTLR start "ruleJvmWildcardTypeReference"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2690:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
+    public final void ruleJvmWildcardTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2694:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2695:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2695:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2696:1: ( rule__JvmWildcardTypeReference__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2697:1: ( rule__JvmWildcardTypeReference__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2697:2: rule__JvmWildcardTypeReference__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Group__0_in_ruleJvmWildcardTypeReference5694);
+            rule__JvmWildcardTypeReference__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmWildcardTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmUpperBound"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2709:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
+    public final void entryRuleJvmUpperBound() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2710:1: ( ruleJvmUpperBound EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2711:1: ruleJvmUpperBound EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmUpperBound_in_entryRuleJvmUpperBound5721);
+            ruleJvmUpperBound();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBound5728); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmUpperBound"
+
+
+    // $ANTLR start "ruleJvmUpperBound"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2718:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
+    public final void ruleJvmUpperBound() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2722:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2723:1: ( ( rule__JvmUpperBound__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2723:1: ( ( rule__JvmUpperBound__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2724:1: ( rule__JvmUpperBound__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2725:1: ( rule__JvmUpperBound__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2725:2: rule__JvmUpperBound__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmUpperBound__Group__0_in_ruleJvmUpperBound5754);
+            rule__JvmUpperBound__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmUpperBound"
+
+
+    // $ANTLR start "entryRuleJvmUpperBoundAnded"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2737:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
+    public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2738:1: ( ruleJvmUpperBoundAnded EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2739:1: ruleJvmUpperBoundAnded EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAndedRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmUpperBoundAnded_in_entryRuleJvmUpperBoundAnded5781);
+            ruleJvmUpperBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAndedRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBoundAnded5788); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmUpperBoundAnded"
+
+
+    // $ANTLR start "ruleJvmUpperBoundAnded"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2746:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
+    public final void ruleJvmUpperBoundAnded() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2750:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2751:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2751:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2752:1: ( rule__JvmUpperBoundAnded__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2753:1: ( rule__JvmUpperBoundAnded__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2753:2: rule__JvmUpperBoundAnded__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmUpperBoundAnded__Group__0_in_ruleJvmUpperBoundAnded5814);
+            rule__JvmUpperBoundAnded__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmUpperBoundAnded"
+
+
+    // $ANTLR start "entryRuleJvmLowerBound"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2765:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
+    public final void entryRuleJvmLowerBound() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2766:1: ( ruleJvmLowerBound EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2767:1: ruleJvmLowerBound EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmLowerBound_in_entryRuleJvmLowerBound5841);
+            ruleJvmLowerBound();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmLowerBound5848); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmLowerBound"
+
+
+    // $ANTLR start "ruleJvmLowerBound"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2774:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
+    public final void ruleJvmLowerBound() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2778:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2779:1: ( ( rule__JvmLowerBound__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2779:1: ( ( rule__JvmLowerBound__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2780:1: ( rule__JvmLowerBound__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2781:1: ( rule__JvmLowerBound__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2781:2: rule__JvmLowerBound__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmLowerBound__Group__0_in_ruleJvmLowerBound5874);
+            rule__JvmLowerBound__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmLowerBound"
+
+
+    // $ANTLR start "entryRuleJvmLowerBoundAnded"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2793:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
+    public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2794:1: ( ruleJvmLowerBoundAnded EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2795:1: ruleJvmLowerBoundAnded EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAndedRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmLowerBoundAnded_in_entryRuleJvmLowerBoundAnded5901);
+            ruleJvmLowerBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAndedRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmLowerBoundAnded5908); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmLowerBoundAnded"
+
+
+    // $ANTLR start "ruleJvmLowerBoundAnded"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2802:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
+    public final void ruleJvmLowerBoundAnded() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2806:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2807:1: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2807:1: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2808:1: ( rule__JvmLowerBoundAnded__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2809:1: ( rule__JvmLowerBoundAnded__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2809:2: rule__JvmLowerBoundAnded__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmLowerBoundAnded__Group__0_in_ruleJvmLowerBoundAnded5934);
+            rule__JvmLowerBoundAnded__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmLowerBoundAnded"
+
+
+    // $ANTLR start "entryRuleQualifiedNameWithWildcard"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2823:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+    public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2824:1: ( ruleQualifiedNameWithWildcard EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2825:1: ruleQualifiedNameWithWildcard EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameWithWildcardRule()); 
+            }
+            pushFollow(FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard5963);
+            ruleQualifiedNameWithWildcard();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameWithWildcardRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard5970); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleQualifiedNameWithWildcard"
+
+
+    // $ANTLR start "ruleQualifiedNameWithWildcard"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2832:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+    public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2836:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2837:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2837:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2838:1: ( rule__QualifiedNameWithWildcard__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2839:1: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2839:2: rule__QualifiedNameWithWildcard__Group__0
+            {
+            pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__0_in_ruleQualifiedNameWithWildcard5996);
+            rule__QualifiedNameWithWildcard__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleQualifiedNameWithWildcard"
+
+
+    // $ANTLR start "entryRuleXImportDeclaration"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2853:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
+    public final void entryRuleXImportDeclaration() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2854:1: ( ruleXImportDeclaration EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2855:1: ruleXImportDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXImportDeclaration_in_entryRuleXImportDeclaration6025);
+            ruleXImportDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXImportDeclaration6032); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXImportDeclaration"
+
+
+    // $ANTLR start "ruleXImportDeclaration"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2862:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
+    public final void ruleXImportDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2866:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2867:1: ( ( rule__XImportDeclaration__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2867:1: ( ( rule__XImportDeclaration__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2868:1: ( rule__XImportDeclaration__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2869:1: ( rule__XImportDeclaration__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2869:2: rule__XImportDeclaration__Group__0
+            {
+            pushFollow(FOLLOW_rule__XImportDeclaration__Group__0_in_ruleXImportDeclaration6058);
+            rule__XImportDeclaration__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXImportDeclaration"
+
+
+    // $ANTLR start "entryRuleQualifiedNameInStaticImport"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2881:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
+    public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2882:1: ( ruleQualifiedNameInStaticImport EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2883:1: ruleQualifiedNameInStaticImport EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportRule()); 
+            }
+            pushFollow(FOLLOW_ruleQualifiedNameInStaticImport_in_entryRuleQualifiedNameInStaticImport6085);
+            ruleQualifiedNameInStaticImport();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameInStaticImport6092); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleQualifiedNameInStaticImport"
+
+
+    // $ANTLR start "ruleQualifiedNameInStaticImport"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2890:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
+    public final void ruleQualifiedNameInStaticImport() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2894:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2895:1: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2895:1: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2896:1: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2896:1: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2897:1: ( rule__QualifiedNameInStaticImport__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2898:1: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2898:2: rule__QualifiedNameInStaticImport__Group__0
+            {
+            pushFollow(FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport6120);
+            rule__QualifiedNameInStaticImport__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2901:1: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2902:1: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2903:1: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0==RULE_ID) ) {
+                    int LA2_2 = input.LA(2);
+
+                    if ( (LA2_2==43) ) {
+                        alt2=1;
+                    }
+
+
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2903:2: rule__QualifiedNameInStaticImport__Group__0
+            	    {
+            	    pushFollow(FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport6132);
+            	    rule__QualifiedNameInStaticImport__Group__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleQualifiedNameInStaticImport"
+
+
+    // $ANTLR start "rulePredefinedBeanEnum"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2917:1: rulePredefinedBeanEnum : ( ( rule__PredefinedBeanEnum__Alternatives ) ) ;
+    public final void rulePredefinedBeanEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2921:1: ( ( ( rule__PredefinedBeanEnum__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2922:1: ( ( rule__PredefinedBeanEnum__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2922:1: ( ( rule__PredefinedBeanEnum__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2923:1: ( rule__PredefinedBeanEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPredefinedBeanEnumAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2924:1: ( rule__PredefinedBeanEnum__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2924:2: rule__PredefinedBeanEnum__Alternatives
+            {
+            pushFollow(FOLLOW_rule__PredefinedBeanEnum__Alternatives_in_rulePredefinedBeanEnum6172);
+            rule__PredefinedBeanEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPredefinedBeanEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePredefinedBeanEnum"
+
+
+    // $ANTLR start "rulePredefinedBeanTypeEnum"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2936:1: rulePredefinedBeanTypeEnum : ( ( rule__PredefinedBeanTypeEnum__Alternatives ) ) ;
+    public final void rulePredefinedBeanTypeEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2940:1: ( ( ( rule__PredefinedBeanTypeEnum__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2941:1: ( ( rule__PredefinedBeanTypeEnum__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2941:1: ( ( rule__PredefinedBeanTypeEnum__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2942:1: ( rule__PredefinedBeanTypeEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPredefinedBeanTypeEnumAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2943:1: ( rule__PredefinedBeanTypeEnum__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2943:2: rule__PredefinedBeanTypeEnum__Alternatives
+            {
+            pushFollow(FOLLOW_rule__PredefinedBeanTypeEnum__Alternatives_in_rulePredefinedBeanTypeEnum6208);
+            rule__PredefinedBeanTypeEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPredefinedBeanTypeEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePredefinedBeanTypeEnum"
+
+
+    // $ANTLR start "ruleProgressBarStylesEnum"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2955:1: ruleProgressBarStylesEnum : ( ( rule__ProgressBarStylesEnum__Alternatives ) ) ;
+    public final void ruleProgressBarStylesEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2959:1: ( ( ( rule__ProgressBarStylesEnum__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2960:1: ( ( rule__ProgressBarStylesEnum__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2960:1: ( ( rule__ProgressBarStylesEnum__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2961:1: ( rule__ProgressBarStylesEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getProgressBarStylesEnumAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2962:1: ( rule__ProgressBarStylesEnum__Alternatives )
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2962:2: rule__ProgressBarStylesEnum__Alternatives
+            {
+            pushFollow(FOLLOW_rule__ProgressBarStylesEnum__Alternatives_in_ruleProgressBarStylesEnum6244);
+            rule__ProgressBarStylesEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getProgressBarStylesEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleProgressBarStylesEnum"
+
+
+    // $ANTLR start "rule__DataInterchangeFile__Alternatives"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2973:1: rule__DataInterchangeFile__Alternatives : ( ( ruleDataInterchangeFileXML ) | ( ruleDataInterchangeFileCSV ) | ( ruleDataInterchangeFileEDI ) );
+    public final void rule__DataInterchangeFile__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2977:1: ( ( ruleDataInterchangeFileXML ) | ( ruleDataInterchangeFileCSV ) | ( ruleDataInterchangeFileEDI ) )
+            int alt3=3;
+            switch ( input.LA(1) ) {
+            case 71:
+                {
+                alt3=1;
+                }
+                break;
+            case 72:
+                {
+                alt3=2;
+                }
+                break;
+            case 77:
+                {
+                alt3=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 3, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt3) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2978:1: ( ruleDataInterchangeFileXML )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2978:1: ( ruleDataInterchangeFileXML )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2979:1: ruleDataInterchangeFileXML
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileXMLParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangeFileXML_in_rule__DataInterchangeFile__Alternatives6279);
+                    ruleDataInterchangeFileXML();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileXMLParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2984:6: ( ruleDataInterchangeFileCSV )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2984:6: ( ruleDataInterchangeFileCSV )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2985:1: ruleDataInterchangeFileCSV
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileCSVParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangeFileCSV_in_rule__DataInterchangeFile__Alternatives6296);
+                    ruleDataInterchangeFileCSV();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileCSVParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2990:6: ( ruleDataInterchangeFileEDI )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2990:6: ( ruleDataInterchangeFileEDI )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:2991:1: ruleDataInterchangeFileEDI
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileEDIParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangeFileEDI_in_rule__DataInterchangeFile__Alternatives6313);
+                    ruleDataInterchangeFileEDI();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileEDIParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataInterchangeFile__Alternatives"
+
+
+    // $ANTLR start "rule__DataInterchangeBean__Alternatives_5"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3001:1: rule__DataInterchangeBean__Alternatives_5 : ( ( ( rule__DataInterchangeBean__RecordElementAssignment_5_0 ) ) | ( ( rule__DataInterchangeBean__RecordListAssignment_5_1 ) ) );
+    public final void rule__DataInterchangeBean__Alternatives_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3005:1: ( ( ( rule__DataInterchangeBean__RecordElementAssignment_5_0 ) ) | ( ( rule__DataInterchangeBean__RecordListAssignment_5_1 ) ) )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==136) ) {
+                alt4=1;
+            }
+            else if ( (LA4_0==137) ) {
+                alt4=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 4, 0, input);
+
+                throw nvae;
+            }
+            switch (alt4) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3006:1: ( ( rule__DataInterchangeBean__RecordElementAssignment_5_0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3006:1: ( ( rule__DataInterchangeBean__RecordElementAssignment_5_0 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3007:1: ( rule__DataInterchangeBean__RecordElementAssignment_5_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getDataInterchangeBeanAccess().getRecordElementAssignment_5_0()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3008:1: ( rule__DataInterchangeBean__RecordElementAssignment_5_0 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3008:2: rule__DataInterchangeBean__RecordElementAssignment_5_0
+                    {
+                    pushFollow(FOLLOW_rule__DataInterchangeBean__RecordElementAssignment_5_0_in_rule__DataInterchangeBean__Alternatives_56345);
+                    rule__DataInterchangeBean__RecordElementAssignment_5_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getDataInterchangeBeanAccess().getRecordElementAssignment_5_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3012:6: ( ( rule__DataInterchangeBean__RecordListAssignment_5_1 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3012:6: ( ( rule__DataInterchangeBean__RecordListAssignment_5_1 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3013:1: ( rule__DataInterchangeBean__RecordListAssignment_5_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getDataInterchangeBeanAccess().getRecordListAssignment_5_1()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3014:1: ( rule__DataInterchangeBean__RecordListAssignment_5_1 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3014:2: rule__DataInterchangeBean__RecordListAssignment_5_1
+                    {
+                    pushFollow(FOLLOW_rule__DataInterchangeBean__RecordListAssignment_5_1_in_rule__DataInterchangeBean__Alternatives_56363);
+                    rule__DataInterchangeBean__RecordListAssignment_5_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getDataInterchangeBeanAccess().getRecordListAssignment_5_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataInterchangeBean__Alternatives_5"
+
+
+    // $ANTLR start "rule__DataInterchangeExpression__Alternatives"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3023:1: rule__DataInterchangeExpression__Alternatives : ( ( ruleDataInterchangeEntityExpression ) | ( ruleDataInterchangePredefinedExpression ) );
+    public final void rule__DataInterchangeExpression__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3027:1: ( ( ruleDataInterchangeEntityExpression ) | ( ruleDataInterchangePredefinedExpression ) )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==93) ) {
+                alt5=1;
+            }
+            else if ( (LA5_0==96) ) {
+                alt5=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+            switch (alt5) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3028:1: ( ruleDataInterchangeEntityExpression )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3028:1: ( ruleDataInterchangeEntityExpression )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3029:1: ruleDataInterchangeEntityExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangeEntityExpressionParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangeEntityExpression_in_rule__DataInterchangeExpression__Alternatives6396);
+                    ruleDataInterchangeEntityExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangeEntityExpressionParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3034:6: ( ruleDataInterchangePredefinedExpression )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3034:6: ( ruleDataInterchangePredefinedExpression )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3035:1: ruleDataInterchangePredefinedExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangePredefinedExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangePredefinedExpression_in_rule__DataInterchangeExpression__Alternatives6413);
+                    ruleDataInterchangePredefinedExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangePredefinedExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataInterchangeExpression__Alternatives"
+
+
+    // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3045:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
+    public final void rule__XAnnotation__Alternatives_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3049:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
+            int alt6=2;
+            alt6 = dfa6.predict(input);
+            switch (alt6) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3050:1: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3050:1: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3051:1: ( rule__XAnnotation__Group_3_1_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3052:1: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3052:2: rule__XAnnotation__Group_3_1_0__0
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotation__Group_3_1_0__0_in_rule__XAnnotation__Alternatives_3_16445);
+                    rule__XAnnotation__Group_3_1_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3056:6: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3056:6: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3057:1: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3058:1: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3058:2: rule__XAnnotation__ValueAssignment_3_1_1
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotation__ValueAssignment_3_1_1_in_rule__XAnnotation__Alternatives_3_16463);
+                    rule__XAnnotation__ValueAssignment_3_1_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Alternatives_3_1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3067:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
+    public final void rule__XAnnotationElementValueOrCommaList__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3071:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
+            int alt7=2;
+            alt7 = dfa7.predict(input);
+            switch (alt7) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3072:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3072:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3073:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3074:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3074:2: rule__XAnnotationElementValueOrCommaList__Group_0__0
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives6496);
+                    rule__XAnnotationElementValueOrCommaList__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3078:6: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3078:6: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3079:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3080:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3080:2: rule__XAnnotationElementValueOrCommaList__Group_1__0
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives6514);
+                    rule__XAnnotationElementValueOrCommaList__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Alternatives"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3089:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
+    public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3093:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
+            int alt8=2;
+            alt8 = dfa8.predict(input);
+            switch (alt8) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3094:1: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3094:1: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3095:1: ( rule__XAnnotationElementValue__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3096:1: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3096:2: rule__XAnnotationElementValue__Group_0__0
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotationElementValue__Group_0__0_in_rule__XAnnotationElementValue__Alternatives6547);
+                    rule__XAnnotationElementValue__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3100:6: ( ruleXAnnotationOrExpression )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3100:6: ( ruleXAnnotationOrExpression )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3101:1: ruleXAnnotationOrExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_rule__XAnnotationElementValue__Alternatives6565);
+                    ruleXAnnotationOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Alternatives"
+
+
+    // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3111:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
+    public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3115:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0==100) ) {
+                alt9=1;
+            }
+            else if ( ((LA9_0>=RULE_ID && LA9_0<=RULE_DECIMAL)||LA9_0==27||(LA9_0>=34 && LA9_0<=35)||LA9_0==40||(LA9_0>=45 && LA9_0<=50)||LA9_0==64||LA9_0==85||LA9_0==101||(LA9_0>=105 && LA9_0<=106)||LA9_0==109||LA9_0==111||(LA9_0>=115 && LA9_0<=122)||LA9_0==124||LA9_0==146) ) {
+                alt9=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 9, 0, input);
+
+                throw nvae;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3116:1: ( ruleXAnnotation )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3116:1: ( ruleXAnnotation )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3117:1: ruleXAnnotation
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotation_in_rule__XAnnotationOrExpression__Alternatives6597);
+                    ruleXAnnotation();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3122:6: ( ruleXExpression )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3122:6: ( ruleXExpression )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3123:1: ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_ruleXExpression_in_rule__XAnnotationOrExpression__Alternatives6614);
+                    ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationOrExpression__Alternatives"
+
+
+    // $ANTLR start "rule__XAssignment__Alternatives"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3133:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+    public final void rule__XAssignment__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3137:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+            int alt10=2;
+            switch ( input.LA(1) ) {
+            case RULE_ID:
+                {
+                int LA10_1 = input.LA(2);
+
+                if ( (LA10_1==EOF||(LA10_1>=RULE_ID && LA10_1<=RULE_DECIMAL)||(LA10_1>=14 && LA10_1<=50)||(LA10_1>=64 && LA10_1<=65)||LA10_1==85||LA10_1==97||(LA10_1>=101 && LA10_1<=125)||(LA10_1>=142 && LA10_1<=143)||(LA10_1>=145 && LA10_1<=146)) ) {
+                    alt10=2;
+                }
+                else if ( (LA10_1==13) ) {
+                    alt10=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 10, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 45:
+                {
+                int LA10_2 = input.LA(2);
+
+                if ( (LA10_2==EOF||(LA10_2>=RULE_ID && LA10_2<=RULE_DECIMAL)||(LA10_2>=14 && LA10_2<=50)||(LA10_2>=64 && LA10_2<=65)||LA10_2==85||LA10_2==97||(LA10_2>=101 && LA10_2<=125)||(LA10_2>=142 && LA10_2<=143)||(LA10_2>=145 && LA10_2<=146)) ) {
+                    alt10=2;
+                }
+                else if ( (LA10_2==13) ) {
+                    alt10=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 10, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 46:
+                {
+                int LA10_3 = input.LA(2);
+
+                if ( (LA10_3==EOF||(LA10_3>=RULE_ID && LA10_3<=RULE_DECIMAL)||(LA10_3>=14 && LA10_3<=50)||(LA10_3>=64 && LA10_3<=65)||LA10_3==85||LA10_3==97||(LA10_3>=101 && LA10_3<=125)||(LA10_3>=142 && LA10_3<=143)||(LA10_3>=145 && LA10_3<=146)) ) {
+                    alt10=2;
+                }
+                else if ( (LA10_3==13) ) {
+                    alt10=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 10, 3, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 47:
+                {
+                int LA10_4 = input.LA(2);
+
+                if ( (LA10_4==13) ) {
+                    alt10=1;
+                }
+                else if ( (LA10_4==EOF||(LA10_4>=RULE_ID && LA10_4<=RULE_DECIMAL)||(LA10_4>=14 && LA10_4<=50)||(LA10_4>=64 && LA10_4<=65)||LA10_4==85||LA10_4==97||(LA10_4>=101 && LA10_4<=125)||(LA10_4>=142 && LA10_4<=143)||(LA10_4>=145 && LA10_4<=146)) ) {
+                    alt10=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 10, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 48:
+                {
+                int LA10_5 = input.LA(2);
+
+                if ( (LA10_5==EOF||(LA10_5>=RULE_ID && LA10_5<=RULE_DECIMAL)||(LA10_5>=14 && LA10_5<=50)||(LA10_5>=64 && LA10_5<=65)||LA10_5==85||LA10_5==97||(LA10_5>=101 && LA10_5<=125)||(LA10_5>=142 && LA10_5<=143)||(LA10_5>=145 && LA10_5<=146)) ) {
+                    alt10=2;
+                }
+                else if ( (LA10_5==13) ) {
+                    alt10=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 10, 5, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case RULE_STRING:
+            case RULE_HEX:
+            case RULE_INT:
+            case RULE_DECIMAL:
+            case 27:
+            case 34:
+            case 35:
+            case 40:
+            case 49:
+            case 50:
+            case 64:
+            case 85:
+            case 101:
+            case 105:
+            case 106:
+            case 109:
+            case 111:
+            case 115:
+            case 116:
+            case 117:
+            case 118:
+            case 119:
+            case 120:
+            case 121:
+            case 122:
+            case 124:
+            case 146:
+                {
+                alt10=2;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 10, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt10) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3138:1: ( ( rule__XAssignment__Group_0__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3138:1: ( ( rule__XAssignment__Group_0__0 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3139:1: ( rule__XAssignment__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3140:1: ( rule__XAssignment__Group_0__0 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3140:2: rule__XAssignment__Group_0__0
+                    {
+                    pushFollow(FOLLOW_rule__XAssignment__Group_0__0_in_rule__XAssignment__Alternatives6646);
+                    rule__XAssignment__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAssignmentAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3144:6: ( ( rule__XAssignment__Group_1__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3144:6: ( ( rule__XAssignment__Group_1__0 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3145:1: ( rule__XAssignment__Group_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3146:1: ( rule__XAssignment__Group_1__0 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3146:2: rule__XAssignment__Group_1__0
+                    {
+                    pushFollow(FOLLOW_rule__XAssignment__Group_1__0_in_rule__XAssignment__Alternatives6664);
+                    rule__XAssignment__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAssignmentAccess().getGroup_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Alternatives"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Alternatives"
+    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3155:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
+    public final void rule__OpMultiAssign__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3159:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
+            int alt11=7;
+            switch ( input.LA(1) ) {
+            case 16:
+                {
+                alt11=1;
+                }
+                break;
+            case 17:
+                {
+                alt11=2;
+                }
+                break;
+            case 18:
+                {
+                alt11=3;
+                }
+                break;
+            case 19:
+                {
+                alt11=4;
+                }
+                break;
+            case 20:
+                {
+                alt11=5;
+                }
+                break;
+            case 27:
+                {
+                alt11=6;
+                }
+                break;
+            case 26:
+                {
+                alt11=7;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt11) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3160:1: ( '+=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3160:1: ( '+=' )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3161:1: '+='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
+                    }
+                    match(input,16,FOLLOW_16_in_rule__OpMultiAssign__Alternatives6698); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3168:6: ( '-=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3168:6: ( '-=' )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3169:1: '-='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
+                    }
+                    match(input,17,FOLLOW_17_in_rule__OpMultiAssign__Alternatives6718); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3176:6: ( '*=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3176:6: ( '*=' )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3177:1: '*='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
+                    }
+                    match(input,18,FOLLOW_18_in_rule__OpMultiAssign__Alternatives6738); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3184:6: ( '/=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3184:6: ( '/=' )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3185:1: '/='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
+                    }
+                    match(input,19,FOLLOW_19_in_rule__OpMultiAssign__Alternatives6758); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3192:6: ( '%=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3192:6: ( '%=' )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3193:1: '%='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
+                    }
+                    match(input,20,FOLLOW_20_in_rule__OpMultiAssign__Alternatives6778); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3200:6: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3200:6: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3201:1: ( rule__OpMultiAssign__Group_5__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3202:1: ( rule__OpMultiAssign__Group_5__0 )
+                    // ../org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/antlr/internal/InternalDataDSL.g:3202:2: rule__OpMultiAssign__Group_5__0
+                    {
+                    pushFollow(FOLLOW_rule__OpMultiAssign__Group_5__0_in_rule__OpMultiAssign__Alternatives6797);
+                    rule__OpMultiAssign__Group_5__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
+                    }
+
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/internal/DataDSLActivator.java b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/internal/DataDSLActivator.java
new file mode 100644
index 0000000..6268973
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src-gen/org/eclipse/osbp/xtext/datainterchange/ui/internal/DataDSLActivator.java
@@ -0,0 +1,105 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.internal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class DataDSLActivator extends AbstractUIPlugin {
+	
+	public static final String ORG_ECLIPSE_OSBP_XTEXT_DATAINTERCHANGE_DATADSL = "org.eclipse.osbp.xtext.datainterchange.DataDSL";
+	
+	private static final Logger logger = Logger.getLogger(DataDSLActivator.class);
+	
+	private static DataDSLActivator INSTANCE;
+	
+	private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+	
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		INSTANCE = this;
+	}
+	
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		injectors.clear();
+		INSTANCE = null;
+		super.stop(context);
+	}
+	
+	public static DataDSLActivator getInstance() {
+		return INSTANCE;
+	}
+	
+	public Injector getInjector(String language) {
+		synchronized (injectors) {
+			Injector injector = injectors.get(language);
+			if (injector == null) {
+				injectors.put(language, injector = createInjector(language));
+			}
+			return injector;
+		}
+	}
+	
+	protected Injector createInjector(String language) {
+		try {
+			Module runtimeModule = getRuntimeModule(language);
+			Module sharedStateModule = getSharedStateModule();
+			Module uiModule = getUiModule(language);
+			Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+			return Guice.createInjector(mergedModule);
+		} catch (Exception e) {
+			logger.error("Failed to create injector for " + language);
+			logger.error(e.getMessage(), e);
+			throw new RuntimeException("Failed to create injector for " + language, e);
+		}
+	}
+
+	protected Module getRuntimeModule(String grammar) {
+		if (ORG_ECLIPSE_OSBP_XTEXT_DATAINTERCHANGE_DATADSL.equals(grammar)) {
+			return new org.eclipse.osbp.xtext.datainterchange.DataDSLRuntimeModule();
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getUiModule(String grammar) {
+		if (ORG_ECLIPSE_OSBP_XTEXT_DATAINTERCHANGE_DATADSL.equals(grammar)) {
+			return new org.eclipse.osbp.xtext.datainterchange.ui.DataDSLUiModule(this);
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getSharedStateModule() {
+		return new SharedStateModule();
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLDocumentationTranslator.java b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLDocumentationTranslator.java
new file mode 100644
index 0000000..a371e4e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLDocumentationTranslator.java
@@ -0,0 +1,32 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * 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:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui;
+
+import java.util.ResourceBundle;
+
+import org.eclipse.osbp.utils.constants.GeneratorConstants;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
+
+public class DataDSLDocumentationTranslator extends BasicDSLDocumentationTranslator {
+	 
+    private static DataDSLDocumentationTranslator INSTANCE = new DataDSLDocumentationTranslator();
+
+    public static BasicDSLDocumentationTranslator instance() {
+        return INSTANCE;
+    }
+    
+    @Override
+    protected ResourceBundle getResourceBundle() {
+        return java.util.ResourceBundle.getBundle(GeneratorConstants.I18N_RESOURCE_FULL_BUNDLE_NAME, getLocale(), getClass().getClassLoader());
+    }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLEObjectHover.java b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLEObjectHover.java
new file mode 100644
index 0000000..5799a87
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLEObjectHover.java
@@ -0,0 +1,25 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * 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:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui;
+
+import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHover;
+
+public class DataDSLEObjectHover extends BasicDSLEObjectHover {
+	
+	@Override
+	public IEObjectHoverProvider getHoverProvider() {
+		return DataDSLEObjectHoverProvider.instance();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLEObjectHoverDocumentationProvider.java b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLEObjectHoverDocumentationProvider.java
new file mode 100644
index 0000000..00cff29
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLEObjectHoverDocumentationProvider.java
@@ -0,0 +1,35 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * 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:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHoverDocumentationProvider;
+
+public class DataDSLEObjectHoverDocumentationProvider extends BasicDSLEObjectHoverDocumentationProvider {
+	 
+    private static DataDSLEObjectHoverDocumentationProvider INSTANCE;
+
+    public static DataDSLEObjectHoverDocumentationProvider instance() {
+        return INSTANCE;
+    }
+
+    public DataDSLEObjectHoverDocumentationProvider() {
+        super();
+        INSTANCE = this;
+    }
+    
+    @Override
+    protected BasicDSLDocumentationTranslator getTranslator() {
+        return DataDSLDocumentationTranslator.instance();
+    }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLEObjectHoverProvider.java b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLEObjectHoverProvider.java
new file mode 100644
index 0000000..feff52c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLEObjectHoverProvider.java
@@ -0,0 +1,36 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * 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:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation 
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui;
+
+import org.eclipse.xtext.ui.editor.hover.html.IEObjectHoverDocumentationProvider;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHoverProvider;
+
+public class DataDSLEObjectHoverProvider extends BasicDSLEObjectHoverProvider {
+	 
+    private static DataDSLEObjectHoverProvider INSTANCE;
+
+    public static DataDSLEObjectHoverProvider instance() {
+        return INSTANCE;
+    }
+
+    public DataDSLEObjectHoverProvider() {
+        super();
+        INSTANCE = this;
+    }
+    
+    @Override
+    public IEObjectHoverDocumentationProvider getDocumentationHoverProvider() {
+        return DataDSLEObjectHoverDocumentationProvider.instance();
+    }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLUiModule.java b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLUiModule.java
new file mode 100644
index 0000000..f4f47ef
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/DataDSLUiModule.java
@@ -0,0 +1,51 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.datainterchange.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.editor.hover.IEObjectHover;
+import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
+import org.eclipse.xtext.ui.editor.hover.html.IEObjectHoverDocumentationProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLUiModuleHelper;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class DataDSLUiModule extends org.eclipse.osbp.xtext.datainterchange.ui.AbstractDataDSLUiModule {
+	
+	private static Logger LOGGER = LoggerFactory.getLogger(DataDSLUiModule.class);
+
+	public DataDSLUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+	    BasicDSLUiModuleHelper.unitTestTemplates(plugin, LOGGER);
+	}
+	
+	@Override
+	public Class<? extends IEObjectHover> bindIEObjectHover() {
+	    return DataDSLEObjectHover.class;
+	}
+	
+	@Override
+	public Class<? extends IEObjectHoverProvider> bindIEObjectHoverProvider() {
+	    return DataDSLEObjectHoverProvider.class;
+	}
+	
+	@Override
+	public Class<? extends IEObjectHoverDocumentationProvider> bindIEObjectHoverDocumentationProvider() {
+	    return DataDSLEObjectHoverDocumentationProvider.class;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/DataDSLProposalProvider.xtend b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/DataDSLProposalProvider.xtend
new file mode 100644
index 0000000..fc01b54
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/DataDSLProposalProvider.xtend
@@ -0,0 +1,186 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.jface.viewers.StyledString
+import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper
+import org.eclipse.osbp.xtext.datainterchange.ui.DataDSLDocumentationTranslator
+import org.eclipse.swt.widgets.FileDialog
+import org.eclipse.wb.internal.core.nls.ui.ChooseLocaleDialog
+import org.eclipse.xtext.Assignment
+import org.eclipse.xtext.Keyword
+import org.eclipse.xtext.RuleCall
+import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider
+import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor
+import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier
+
+class LocaleTextApplier extends ReplacementTextApplier {
+	var ContentAssistContext context
+
+	def setContext(ContentAssistContext context) {
+		this.context = context
+	}
+
+	override getActualReplacementString(ConfigurableCompletionProposal proposal) {
+		var display = context.getViewer().getTextWidget().getDisplay();
+		var localeDialog = new ChooseLocaleDialog(display.getActiveShell());
+		localeDialog.open();
+		return "\"".concat(localeDialog.selectedLocale.toString).concat("\"");
+	}
+}
+
+class FileNameTextApplier extends ReplacementTextApplier {
+	var ContentAssistContext context
+	var String[] extensions
+
+	def setContext(ContentAssistContext context) {
+		this.context = context
+	}
+
+	def setExtensions(String[] fileExtensions) {
+		extensions = fileExtensions
+	}
+
+	// this will inject a file dialog when selecting the file picker proposal 
+	override getActualReplacementString(ConfigurableCompletionProposal proposal) {
+		var display = context.getViewer().getTextWidget().getDisplay();
+		var fileDialog = new FileDialog(display.getActiveShell());
+		fileDialog.setFilterExtensions(extensions)
+		var fileName = fileDialog.open();
+		fileName = fileName.replace("\\", "/")
+		return "\"".concat(fileName).concat("\"");
+	}
+}
+
+class DataDSLProposalProvider extends AbstractDataDSLProposalProvider {
+
+	@Inject TerminalsProposalProvider provider
+	@Inject BasicDSLProposalProviderHelper providerHelper
+
+	override protected StyledString getKeywordDisplayString(Keyword keyword) {
+		return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, DataDSLDocumentationTranslator.instance())
+	}
+
+	/**
+  * This override will enable 1 length non letter characters as keyword.
+  */
+	override protected boolean isKeywordWorthyToPropose(Keyword keyword) {
+		return true
+	}
+
+	override completeDataInterchangeFileXML_FileURL(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		filePickerProposal(model, assignment, context, acceptor, "*.xml")
+	}
+
+	override completeDataInterchangeFileCSV_FileURL(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		filePickerProposal(model, assignment, context, acceptor, "*.csv")
+	}
+
+	override completeDataInterchangeFileEDI_FileURL(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		filePickerProposal(model, assignment, context, acceptor, "*.edi")
+	}
+
+	override completeDataInterchangeFormat_Locale(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		chooseLocaleProposal(model, assignment, context, acceptor)
+	}
+
+	override completeDataInterchangeFileEDI_MappingModel(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		mappingPickerProposal(model, assignment, context, acceptor, "*.xml")
+	}
+
+	def filePickerProposal(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor, String fileExtensions) {
+		var fileName = createCompletionProposal("Select input file...", context) as ConfigurableCompletionProposal
+		if (fileName != null) {
+			var applier = new FileNameTextApplier()
+			applier.setExtensions(fileExtensions.split(","))
+			applier.setContext(context)
+			fileName.setTextApplier = applier
+		}
+		acceptor.accept(fileName)
+	}
+
+	def mappingPickerProposal(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor, String fileExtensions) {
+		var fileName = createCompletionProposal("Select mapping file...", context) as ConfigurableCompletionProposal
+		if (fileName != null) {
+			var applier = new FileNameTextApplier()
+			applier.setExtensions(fileExtensions.split(","))
+			applier.setContext(context)
+			fileName.setTextApplier = applier
+		}
+		acceptor.accept(fileName)
+	}
+
+	def chooseLocaleProposal(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		var locale = createCompletionProposal("Select locale...", context) as ConfigurableCompletionProposal
+		if (locale != null) {
+			var applier = new LocaleTextApplier()
+			applier.setContext(context)
+			locale.setTextApplier = applier
+		}
+		acceptor.accept(locale)
+	}
+
+	override protected isValidProposal(String proposal, String prefix, ContentAssistContext context) {
+		var result = super.isValidProposal(proposal, prefix, context)
+		return result
+	}
+
+	override public void complete_QualifiedName(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this)
+	}
+
+	override public void complete_DataInterchangeQualifiedNameWithWildCard(EObject model, RuleCall ruleCall,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this)
+	}
+
+	// ------------------------ delegates to TerminalsProposalProvider -----------------
+	override public void complete_INT(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_INT(model, ruleCall, context, acceptor)
+	}
+
+	override public void complete_TRANSLATABLEID(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_ID(model, ruleCall, context, acceptor)
+	}
+
+	override public void complete_TRANSLATABLESTRING(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, ruleCall, context, acceptor)
+	}
+
+	override public void complete_STRING(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, ruleCall, context, acceptor)
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLDescriptionLabelProvider.xtend b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLDescriptionLabelProvider.xtend
new file mode 100644
index 0000000..3c6330f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLDescriptionLabelProvider.xtend
@@ -0,0 +1,38 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.ui.labeling
+
+//import org.eclipse.xtext.resource.IEObjectDescription
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+class DataDSLDescriptionLabelProvider extends org.eclipse.xtext.xbase.ui.labeling.XbaseDescriptionLabelProvider {
+
+	// Labels and icons can be computed like this:
+	
+//	override text(IEObjectDescription ele) {
+//		ele.name.toString
+//	}
+//	 
+//	override image(IEObjectDescription ele) {
+//		ele.EClass.name + '.gif'
+//	}	 
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLLabelProvider.xtend b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLLabelProvider.xtend
new file mode 100644
index 0000000..0f0ce70
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLLabelProvider.xtend
@@ -0,0 +1,135 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.ui.labeling
+
+import com.google.inject.Inject
+import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider
+
+/**
+ * Provides labels for a EObjects.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+class DataDSLLabelProvider extends BasicDSLLabelProvider {
+
+	@Inject
+	new(AdapterFactoryLabelProvider delegate) {
+		super(delegate);
+	}
+
+	/* ********************************************************************************************** */
+	/**			Provides special outline text according to given data-format-element for Data-DSL.
+	 *
+	 *	@param	outlineFormatElement	Current outline data-format-element
+	 *
+	 *	@return	String instance.
+	 *
+	 *	@since	@D 151007, gu
+	 *	@date	@D yymmdd, name
+	 */ /* ******************************************************************************************* */
+	 def generateFormatText ( DataInterchangeFormat outlineFormatElement ) {
+
+		var formatStr = outlineFormatElement.format			// start with format
+		val localeStr = outlineFormatElement.locale
+
+		if	( localeStr != null )
+			formatStr += '/' + localeStr					// append 'locale' info if specified
+
+		generateText( outlineFormatElement, 'format', formatStr )
+	}
+
+	/* ********************************************************************************************** */
+	/**			Provides outline text for Data-DSL.
+	 *
+	 *			Uses common (default) text for package and for import element.
+	 *
+	 *	@see	BasicDSLLabelProvider.text(Object)
+	 * 
+	 *	@param	o	Current outline element
+	 *
+	 *	@return	String instance.
+	 *
+	 *	@since	@D 151007, gu
+	 *	@date	@D yymmdd, name
+	 */ /* ******************************************************************************************* */
+	 override text ( Object o ) {
+		switch (o) {
+			DataInterchange					:	generateText( o, 'data interchange', (o as DataInterchange                ).name     )
+			DataInterchangeFileXML			:	generateText( o, 'XML file'       , (o as DataInterchangeFileXML        ).fileURL  )
+			DataInterchangeFileCSV			:	generateText( o, 'CSV file'       , (o as DataInterchangeFileCSV        ).fileURL  )
+			DataInterchangeFileEDI			:	generateText( o, 'EDI file'       , (o as DataInterchangeFileEDI        ).fileURL  )
+			DataInterchangeBean				:	generateText( o, 'bean'     )
+			DataInterchangeExpression		:	generateText( o, 'expression'      )
+			DataInterchangeMarkerEntity		:	generateText( o, 'marker entity'   )
+			DataInterchangeMarkerPath		:	generateText( o, 'marker path'     )
+			DataInterchangeLookup			:	generateText( o, 'lookup'     )
+			DataInterchangeFormat			:	generateFormatText( o as DataInterchangeFormat )
+			default							:	super.text( o )
+		}
+	}
+
+//
+//	def image(Greeting ele) {
+//		'Greeting.gif'
+//	}
+
+	/* ********************************************************************************************** */
+	/**			Provides outline images for Data-DSL.
+	 *
+	 *			Uses common (default) image for package and for import element.
+	 *
+	 *	@see	BasicDSLLabelProvider.image(Object)
+	 * 
+	 *	@param	o	Current outline element
+	 *
+	 *	@return	Image instance if requested image file was found, return value of overridden superclass
+	 *			method otherwise.
+	 *
+	 *	@since	@D 151007, gu
+	 *	@date	@D yymmdd, name
+	 */ /* ******************************************************************************************* */
+	override image ( Object o ) {
+		switch (o) {
+			DataInterchangeModel			:	getInternalImage( 'model.png', super.class)
+			DataInterchange					:	getInternalImage( 'dsl_datainterchange.png', class)
+			DataInterchangeFileXML			:	getInternalImage( 'xml.png', class)
+			DataInterchangeFileCSV			:	getInternalImage( 'csv.png', class)
+			DataInterchangeFileEDI			:	getInternalImage( 'edi.png', class)
+			DataInterchangeBean				:	getInternalImage( 'dsl_entity.png', class)
+			DataInterchangeExpression		:	getInternalImage( 'dsl_expression.png', class)
+			DataInterchangeFormat			:	getInternalImage( 'dsl_format.png', class)
+			DataInterchangeMarkerEntity		:	getInternalImage( 'dsl_entity.png', class)
+			DataInterchangeMarkerPath		:	getInternalImage( 'dsl_path.png', class)
+			DataInterchangeLookup			:	getInternalImage( 'data_lookup.gif', class)
+			default							:	super.image( o )
+		}
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/outline/DataDSLOutlineTreeProvider.xtend b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/outline/DataDSLOutlineTreeProvider.xtend
new file mode 100644
index 0000000..886baaf
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/outline/DataDSLOutlineTreeProvider.xtend
@@ -0,0 +1,27 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.ui.outline
+
+/**
+ * Customization of the default outline structure.
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#outline
+ */
+class DataDSLOutlineTreeProvider extends org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider {
+	
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/quickfix/DataDSLQuickfixProvider.xtend b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/quickfix/DataDSLQuickfixProvider.xtend
new file mode 100644
index 0000000..3105a90
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/src/org/eclipse/osbp/xtext/datainterchange/ui/quickfix/DataDSLQuickfixProvider.xtend
@@ -0,0 +1,40 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.ui.quickfix
+
+//import org.eclipse.xtext.ui.editor.quickfix.Fix
+//import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor
+//import org.eclipse.xtext.validation.Issue
+
+/**
+ * Custom quickfixes.
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#quickfixes
+ */
+class DataDSLQuickfixProvider extends org.eclipse.xtext.xbase.annotations.ui.quickfix.XbaseWithAnnotationsQuickfixProvider {
+
+//	@Fix(MyDslValidator::INVALID_NAME)
+//	def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
+//		acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
+//			context |
+//			val xtextDocument = context.xtextDocument
+//			val firstLetter = xtextDocument.get(issue.offset, 1)
+//			xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
+//		]
+//	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/templates/templates.xml b/org.eclipse.osbp.xtext.datainterchange.ui/templates/templates.xml
new file mode 100644
index 0000000..07a788c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/templates/templates.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates>
+</templates>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/DataDSLProposalProvider.java b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/DataDSLProposalProvider.java
new file mode 100644
index 0000000..3a64042
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/DataDSLProposalProvider.java
@@ -0,0 +1,144 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
+import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper;
+import org.eclipse.osbp.xtext.datainterchange.ui.DataDSLDocumentationTranslator;
+import org.eclipse.osbp.xtext.datainterchange.ui.contentassist.AbstractDataDSLProposalProvider;
+import org.eclipse.osbp.xtext.datainterchange.ui.contentassist.FileNameTextApplier;
+import org.eclipse.osbp.xtext.datainterchange.ui.contentassist.LocaleTextApplier;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+
+@SuppressWarnings("all")
+public class DataDSLProposalProvider extends AbstractDataDSLProposalProvider {
+  @Inject
+  private TerminalsProposalProvider provider;
+  
+  @Inject
+  private BasicDSLProposalProviderHelper providerHelper;
+  
+  protected StyledString getKeywordDisplayString(final Keyword keyword) {
+    BasicDSLDocumentationTranslator _instance = DataDSLDocumentationTranslator.instance();
+    return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, _instance);
+  }
+  
+  /**
+   * This override will enable 1 length non letter characters as keyword.
+   */
+  protected boolean isKeywordWorthyToPropose(final Keyword keyword) {
+    return true;
+  }
+  
+  public void completeDataInterchangeFileXML_FileURL(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.filePickerProposal(model, assignment, context, acceptor, "*.xml");
+  }
+  
+  public void completeDataInterchangeFileCSV_FileURL(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.filePickerProposal(model, assignment, context, acceptor, "*.csv");
+  }
+  
+  public void completeDataInterchangeFileEDI_FileURL(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.filePickerProposal(model, assignment, context, acceptor, "*.edi");
+  }
+  
+  public void completeDataInterchangeFormat_Locale(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.chooseLocaleProposal(model, assignment, context, acceptor);
+  }
+  
+  public void completeDataInterchangeFileEDI_MappingModel(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.mappingPickerProposal(model, assignment, context, acceptor, "*.xml");
+  }
+  
+  public void filePickerProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final String fileExtensions) {
+    ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Select input file...", context);
+    ConfigurableCompletionProposal fileName = ((ConfigurableCompletionProposal) _createCompletionProposal);
+    boolean _notEquals = (!Objects.equal(fileName, null));
+    if (_notEquals) {
+      FileNameTextApplier applier = new FileNameTextApplier();
+      String[] _split = fileExtensions.split(",");
+      applier.setExtensions(_split);
+      applier.setContext(context);
+      fileName.setTextApplier(applier);
+    }
+    acceptor.accept(fileName);
+  }
+  
+  public void mappingPickerProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final String fileExtensions) {
+    ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Select mapping file...", context);
+    ConfigurableCompletionProposal fileName = ((ConfigurableCompletionProposal) _createCompletionProposal);
+    boolean _notEquals = (!Objects.equal(fileName, null));
+    if (_notEquals) {
+      FileNameTextApplier applier = new FileNameTextApplier();
+      String[] _split = fileExtensions.split(",");
+      applier.setExtensions(_split);
+      applier.setContext(context);
+      fileName.setTextApplier(applier);
+    }
+    acceptor.accept(fileName);
+  }
+  
+  public void chooseLocaleProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Select locale...", context);
+    ConfigurableCompletionProposal locale = ((ConfigurableCompletionProposal) _createCompletionProposal);
+    boolean _notEquals = (!Objects.equal(locale, null));
+    if (_notEquals) {
+      LocaleTextApplier applier = new LocaleTextApplier();
+      applier.setContext(context);
+      locale.setTextApplier(applier);
+    }
+    acceptor.accept(locale);
+  }
+  
+  protected boolean isValidProposal(final String proposal, final String prefix, final ContentAssistContext context) {
+    boolean result = super.isValidProposal(proposal, prefix, context);
+    return result;
+  }
+  
+  public void complete_QualifiedName(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this);
+  }
+  
+  public void complete_DataInterchangeQualifiedNameWithWildCard(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this);
+  }
+  
+  public void complete_INT(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.provider.complete_INT(model, ruleCall, context, acceptor);
+  }
+  
+  public void complete_TRANSLATABLEID(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.provider.complete_ID(model, ruleCall, context, acceptor);
+  }
+  
+  public void complete_TRANSLATABLESTRING(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.provider.complete_STRING(model, ruleCall, context, acceptor);
+  }
+  
+  public void complete_STRING(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.provider.complete_STRING(model, ruleCall, context, acceptor);
+  }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/FileNameTextApplier.java b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/FileNameTextApplier.java
new file mode 100644
index 0000000..bb8ac19
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/FileNameTextApplier.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist;
+
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier;
+
+@SuppressWarnings("all")
+public class FileNameTextApplier extends ReplacementTextApplier {
+  private ContentAssistContext context;
+  
+  private String[] extensions;
+  
+  public ContentAssistContext setContext(final ContentAssistContext context) {
+    return this.context = context;
+  }
+  
+  public String[] setExtensions(final String[] fileExtensions) {
+    return this.extensions = fileExtensions;
+  }
+  
+  public String getActualReplacementString(final ConfigurableCompletionProposal proposal) {
+    ITextViewer _viewer = this.context.getViewer();
+    StyledText _textWidget = _viewer.getTextWidget();
+    Display display = _textWidget.getDisplay();
+    Shell _activeShell = display.getActiveShell();
+    FileDialog fileDialog = new FileDialog(_activeShell);
+    fileDialog.setFilterExtensions(this.extensions);
+    String fileName = fileDialog.open();
+    String _replace = fileName.replace("\\", "/");
+    fileName = _replace;
+    String _concat = "\"".concat(fileName);
+    return _concat.concat("\"");
+  }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/LocaleTextApplier.java b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/LocaleTextApplier.java
new file mode 100644
index 0000000..8b3fb3f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/contentassist/LocaleTextApplier.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.contentassist;
+
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.wb.internal.core.nls.model.LocaleInfo;
+import org.eclipse.wb.internal.core.nls.ui.ChooseLocaleDialog;
+import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier;
+
+@SuppressWarnings("all")
+public class LocaleTextApplier extends ReplacementTextApplier {
+  private ContentAssistContext context;
+  
+  public ContentAssistContext setContext(final ContentAssistContext context) {
+    return this.context = context;
+  }
+  
+  public String getActualReplacementString(final ConfigurableCompletionProposal proposal) {
+    ITextViewer _viewer = this.context.getViewer();
+    StyledText _textWidget = _viewer.getTextWidget();
+    Display display = _textWidget.getDisplay();
+    Shell _activeShell = display.getActiveShell();
+    ChooseLocaleDialog localeDialog = new ChooseLocaleDialog(_activeShell);
+    localeDialog.open();
+    LocaleInfo _selectedLocale = localeDialog.getSelectedLocale();
+    String _string = _selectedLocale.toString();
+    String _concat = "\"".concat(_string);
+    return _concat.concat("\"");
+  }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLDescriptionLabelProvider.java b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLDescriptionLabelProvider.java
new file mode 100644
index 0000000..a7123bc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLDescriptionLabelProvider.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.labeling;
+
+import org.eclipse.xtext.xbase.ui.labeling.XbaseDescriptionLabelProvider;
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+@SuppressWarnings("all")
+public class DataDSLDescriptionLabelProvider extends XbaseDescriptionLabelProvider {
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLLabelProvider.java b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLLabelProvider.java
new file mode 100644
index 0000000..3ce7aec
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/labeling/DataDSLLabelProvider.java
@@ -0,0 +1,218 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.labeling;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel;
+
+/**
+ * Provides labels for a EObjects.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+@SuppressWarnings("all")
+public class DataDSLLabelProvider extends BasicDSLLabelProvider {
+  @Inject
+  public DataDSLLabelProvider(final AdapterFactoryLabelProvider delegate) {
+    super(delegate);
+  }
+  
+  public String generateFormatText(final DataInterchangeFormat outlineFormatElement) {
+    String _xblockexpression = null;
+    {
+      String formatStr = outlineFormatElement.getFormat();
+      final String localeStr = outlineFormatElement.getLocale();
+      boolean _notEquals = (!Objects.equal(localeStr, null));
+      if (_notEquals) {
+        String _formatStr = formatStr;
+        formatStr = (_formatStr + ("/" + localeStr));
+      }
+      _xblockexpression = this.generateText(outlineFormatElement, "format", formatStr);
+    }
+    return _xblockexpression;
+  }
+  
+  public Object text(final Object o) {
+    Object _switchResult = null;
+    boolean _matched = false;
+    if (!_matched) {
+      if (o instanceof DataInterchange) {
+        _matched=true;
+        String _name = ((DataInterchange) o).getName();
+        _switchResult = this.generateText(o, "data interchange", _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeFileXML) {
+        _matched=true;
+        String _fileURL = ((DataInterchangeFileXML) o).getFileURL();
+        _switchResult = this.generateText(o, "XML file", _fileURL);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeFileCSV) {
+        _matched=true;
+        String _fileURL = ((DataInterchangeFileCSV) o).getFileURL();
+        _switchResult = this.generateText(o, "CSV file", _fileURL);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeFileEDI) {
+        _matched=true;
+        String _fileURL = ((DataInterchangeFileEDI) o).getFileURL();
+        _switchResult = this.generateText(o, "EDI file", _fileURL);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeBean) {
+        _matched=true;
+        _switchResult = this.generateText(o, "bean");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeExpression) {
+        _matched=true;
+        _switchResult = this.generateText(o, "expression");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeMarkerEntity) {
+        _matched=true;
+        _switchResult = this.generateText(o, "marker entity");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeMarkerPath) {
+        _matched=true;
+        _switchResult = this.generateText(o, "marker path");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeLookup) {
+        _matched=true;
+        _switchResult = this.generateText(o, "lookup");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeFormat) {
+        _matched=true;
+        _switchResult = this.generateFormatText(((DataInterchangeFormat) o));
+      }
+    }
+    if (!_matched) {
+      _switchResult = super.text(o);
+    }
+    return _switchResult;
+  }
+  
+  public Object image(final Object o) {
+    Object _switchResult = null;
+    boolean _matched = false;
+    if (!_matched) {
+      if (o instanceof DataInterchangeModel) {
+        _matched=true;
+        Class<? extends BasicDSLLabelProvider> _class = super.getClass();
+        _switchResult = this.getInternalImage("model.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchange) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("dsl_datainterchange.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeFileXML) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("xml.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeFileCSV) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("csv.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeFileEDI) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("edi.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeBean) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("dsl_entity.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeExpression) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("dsl_expression.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeFormat) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("dsl_format.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeMarkerEntity) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("dsl_entity.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeMarkerPath) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("dsl_path.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DataInterchangeLookup) {
+        _matched=true;
+        Class<? extends DataDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("data_lookup.gif", _class);
+      }
+    }
+    if (!_matched) {
+      _switchResult = super.image(o);
+    }
+    return _switchResult;
+  }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/outline/DataDSLOutlineTreeProvider.java b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/outline/DataDSLOutlineTreeProvider.java
new file mode 100644
index 0000000..95bd71d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/outline/DataDSLOutlineTreeProvider.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * Customization of the default outline structure.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#outline
+ */
+@SuppressWarnings("all")
+public class DataDSLOutlineTreeProvider extends DefaultOutlineTreeProvider {
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/quickfix/DataDSLQuickfixProvider.java b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/quickfix/DataDSLQuickfixProvider.java
new file mode 100644
index 0000000..653803d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange.ui/xtend-gen/org/eclipse/osbp/xtext/datainterchange/ui/quickfix/DataDSLQuickfixProvider.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.ui.quickfix;
+
+import org.eclipse.xtext.xbase.annotations.ui.quickfix.XbaseWithAnnotationsQuickfixProvider;
+
+/**
+ * Custom quickfixes.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#quickfixes
+ */
+@SuppressWarnings("all")
+public class DataDSLQuickfixProvider extends XbaseWithAnnotationsQuickfixProvider {
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/.project b/org.eclipse.osbp.xtext.datainterchange/.project
new file mode 100644
index 0000000..0c6af09
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.datainterchange</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.xtext.datainterchange/LICENSE.txt b/org.eclipse.osbp.xtext.datainterchange/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.datainterchange/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..81d3b13
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/META-INF/MANIFEST.MF
@@ -0,0 +1,89 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.datainterchange
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-SymbolicName: org.eclipse.osbp.xtext.datainterchange;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.slf4j.api,
+ org.apache.xerces;bundle-version="2.9.0",
+ org.eclipse.osgi.services;bundle-version="3.4.0",
+ org.eclipse.xtext.generator;bundle-version="[2.7.3,2.8.0)";resolution:=optional,
+ org.eclipse.xtext.xbase;bundle-version="[2.7.3,2.8.0)";resolution:=optional;visibility:=reexport,
+ org.eclipse.xtext;bundle-version="[2.7.3,2.8.0)",
+ org.apache.commons.logging;resolution:=optional,
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.xtext.util;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.common,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types;bundle-version="[2.7.3,2.8.0)";visibility:=reexport,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.emf.ecore.xcore.lib,
+ javax.persistence;bundle-version="2.1.0",
+ com.vaadin.shared;bundle-version="[7.5.7,7.7.0)",
+ com.vaadin.server;bundle-version="[7.5.7,7.7.0)",
+ com.vaadin.client;bundle-version="[7.5.7,7.7.0)",
+ org.eclipse.e4.core.contexts;bundle-version="1.3.0",
+ org.eclipse.e4.ui.model.workbench;bundle-version="1.0.0",
+ org.eclipse.e4.core.services;bundle-version="1.1.0",
+ org.eclipse.emf.ecore.xcore,
+ org.eclipse.persistence.core;bundle-version="2.6.0",
+ org.eclipse.osbp.runtime.web.vaadin.databinding;bundle-version="[0.9.0,0.10.0)",
+ org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional,
+ org.milyn.smooks.osgi;bundle-version="1.5.1",
+ org.eclipse.core.databinding,
+ org.eclipse.core.databinding.beans,
+ org.eclipse.osbp.dsl.entity.xtext;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.dsl.common.xtext;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.dsl.xtext.lazyresolver;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.dsl.xtext.lazyresolver.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.preferences;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.datainterchange.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.osgi.hybrid.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.dsl.mwe;bundle-version="[0.9.0,0.10.0)";resolution:=optional,
+ org.eclipse.emf.mwe2.launch;bundle-version="2.7.1";resolution:=optional,
+ org.eclipse.osbp.gitinfo;bundle-version="[0.9.0,0.10.0)",
+ org.apache.commons.lang;bundle-version="2.6.0",
+ org.eclipse.persistence.jpa;bundle-version="2.6.0",
+ org.eclipse.osbp.xtext.addons;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.basic;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.builder.types.bundles;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.builder.types.loader.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.builder.types.loader.runtime;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.builder.xbase.setups;bundle-version="[0.9.0,0.10.0)"
+Import-Package: javax.transaction.xa;version="[1.0.1,2.0.0)",
+ javax.validation,
+ javax.validation.constraints,
+ org.apache.log4j,
+ org.eclipse.e4.core.di.extensions,
+ org.eclipse.jdt.core,
+ org.eclipse.osbp.eventbroker;version="0.9.0",
+ org.eclipse.osbp.persistence;version="0.9.0",
+ org.eclipse.osbp.ui.api.datamart;version="0.9.0",
+ org.eclipse.osbp.ui.api.metadata;version="0.9.0",
+ org.eclipse.osbp.ui.api.user;version="0.9.0",
+ org.eclipse.osbp.utils.constants;version="0.9.0",
+ org.eclipse.osbp.utils.entityhelper;version="0.9.0",
+ org.eclipse.osbp.utils.entitymock;version="0.9.0",
+ org.eclipse.osbp.utils.xtext;version="0.9.0",
+ org.eclipse.osbp.xtext.basic.generator;version="0.9.0";resolution:=optional,
+ org.eclipse.osbp.xtext.i18n;version="0.9.0"
+Export-Package: org.eclipse.osbp.xtext.datainterchange;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.formatting;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.impl;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.jvmmodel;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.parser.antlr;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.scoping;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.serializer;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.services;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.util;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.validation;version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.valueconverter;version="0.9.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osbp.xtext.datainterchange/about.html b/org.eclipse.osbp.xtext.datainterchange/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange/about.ini b/org.eclipse.osbp.xtext.datainterchange/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.xtext.datainterchange/about.mappings b/org.eclipse.osbp.xtext.datainterchange/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.xtext.datainterchange/about.properties b/org.eclipse.osbp.xtext.datainterchange/about.properties
new file mode 100644
index 0000000..faed02c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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:
+#    Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.xtext.datainterchange
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.xtext.datainterchange/build.properties b/org.eclipse.osbp.xtext.datainterchange/build.properties
new file mode 100644
index 0000000..7044052
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/build.properties
@@ -0,0 +1,32 @@
+# Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+#  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 
+# 
+#  Based on ideas from Xtext, Xtend, Xcore
+#   
+#  Contributors{  
+#  		Joerg Riegel - Initial implementation 
+#  
+
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html			   
+jars.compile.order = .
+source.. = emf-gen/,\
+           src-gen/,\
+           src/,\
+           xtend-gen/
+output.. = target/classes/
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLFactory.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLFactory.java
new file mode 100644
index 0000000..a43c63c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLFactory.java
@@ -0,0 +1,188 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+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.osbp.xtext.datainterchange.DataDSLPackage
+ * @generated
+ */
+public interface DataDSLFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DataDSLFactory eINSTANCE = org.eclipse.osbp.xtext.datainterchange.impl.DataDSLFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Model</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Model</em>'.
+	 * @generated
+	 */
+	DataInterchangeModel createDataInterchangeModel();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Lazy Resolver</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Lazy Resolver</em>'.
+	 * @generated
+	 */
+	DataInterchangeLazyResolver createDataInterchangeLazyResolver();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Package</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Package</em>'.
+	 * @generated
+	 */
+	DataInterchangePackage createDataInterchangePackage();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Base</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Base</em>'.
+	 * @generated
+	 */
+	DataInterchangeBase createDataInterchangeBase();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange</em>'.
+	 * @generated
+	 */
+	DataInterchange createDataInterchange();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange File XML</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange File XML</em>'.
+	 * @generated
+	 */
+	DataInterchangeFileXML createDataInterchangeFileXML();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange File CSV</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange File CSV</em>'.
+	 * @generated
+	 */
+	DataInterchangeFileCSV createDataInterchangeFileCSV();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange File EDI</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange File EDI</em>'.
+	 * @generated
+	 */
+	DataInterchangeFileEDI createDataInterchangeFileEDI();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Bean</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Bean</em>'.
+	 * @generated
+	 */
+	DataInterchangeBean createDataInterchangeBean();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Format</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Format</em>'.
+	 * @generated
+	 */
+	DataInterchangeFormat createDataInterchangeFormat();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Entity Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Entity Expression</em>'.
+	 * @generated
+	 */
+	DataInterchangeEntityExpression createDataInterchangeEntityExpression();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Predefined Expression</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Predefined Expression</em>'.
+	 * @generated
+	 */
+	DataInterchangePredefinedExpression createDataInterchangePredefinedExpression();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Lookup</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Lookup</em>'.
+	 * @generated
+	 */
+	DataInterchangeLookup createDataInterchangeLookup();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Marker Path</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Marker Path</em>'.
+	 * @generated
+	 */
+	DataInterchangeMarkerPath createDataInterchangeMarkerPath();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Marker Entity</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Marker Entity</em>'.
+	 * @generated
+	 */
+	DataInterchangeMarkerEntity createDataInterchangeMarkerEntity();
+
+	/**
+	 * Returns a new object of class '<em>Data Interchange Mapping</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Data Interchange Mapping</em>'.
+	 * @generated
+	 */
+	DataInterchangeMapping createDataInterchangeMapping();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	DataDSLPackage getDataDSLPackage();
+
+} //DataDSLFactory
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLPackage.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLPackage.java
new file mode 100644
index 0000000..6bc11d6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLPackage.java
@@ -0,0 +1,2956 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.osbp.dsl.semantic.common.types.OSBPTypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLFactory
+ * @model kind="package"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='data' modelName='DataDSL' prefix='DataDSL' updateClasspath='false' copyrightText='Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)\r\n All rights reserved. This program and the accompanying materials \r\n are made available under the terms of the Eclipse Public License v1.0 \r\n which accompanies this distribution, and is available at \r\n http{//www.eclipse.org/legal/epl-v10.html \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors{  \r\n \t\tChristophe Loetz (Loetz GmbH&Co.KG) - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
+ *        annotation="http://www.eclipse.org/emf/2002/Ecore rootPackage='datadsl'"
+ * @generated
+ */
+public interface DataDSLPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "datainterchange";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/xtext/datainterchange/DataDSL";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "datadsl";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	DataDSLPackage eINSTANCE = org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeModelImpl <em>Data Interchange Model</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeModelImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeModel()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_MODEL = 0;
+
+	/**
+	 * The feature id for the '<em><b>Packages</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MODEL__PACKAGES = 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Model</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MODEL_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Model</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MODEL_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLazyResolverImpl <em>Data Interchange Lazy Resolver</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLazyResolverImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeLazyResolver()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_LAZY_RESOLVER = 1;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Lazy Resolver</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT = 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT = 0;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Lazy Resolver</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePackageImpl <em>Data Interchange Package</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePackageImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangePackage()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_PACKAGE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PACKAGE__NAME = OSBPTypesPackage.LPACKAGE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Imports</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PACKAGE__IMPORTS = OSBPTypesPackage.LPACKAGE__IMPORTS;
+
+	/**
+	 * The feature id for the '<em><b>Title</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PACKAGE__TITLE = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Dat Ints</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PACKAGE__DAT_INTS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Package</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PACKAGE_FEATURE_COUNT = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Package</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PACKAGE_OPERATION_COUNT = OSBPTypesPackage.LPACKAGE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBaseImpl <em>Data Interchange Base</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBaseImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeBase()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_BASE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BASE__NAME = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Base</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BASE_FEATURE_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BASE___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Base</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BASE_OPERATION_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl <em>Data Interchange</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchange()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE = 4;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__NAME = DATA_INTERCHANGE_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__DESCRIPTION = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Description Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__DESCRIPTION_VALUE = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Create Report</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__CREATE_REPORT = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Element Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__ELEMENT_SIZE = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Progress Bar Style</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__PROGRESS_BAR_STYLE = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>File Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__FILE_ENDPOINT = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Path</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__PATH = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Refresh Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__REFRESH_ENABLED = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Refresh</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE__REFRESH = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 8;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FEATURE_COUNT = DATA_INTERCHANGE_BASE_FEATURE_COUNT + 9;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_OPERATION_COUNT = DATA_INTERCHANGE_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile <em>Data Interchange File</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFile()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_FILE = 5;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange File</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_FEATURE_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange File</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_OPERATION_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileXMLImpl <em>Data Interchange File XML</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileXMLImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFileXML()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_FILE_XML = 6;
+
+	/**
+	 * The feature id for the '<em><b>File URL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_XML__FILE_URL = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange File XML</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_XML_FEATURE_COUNT = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_XML___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_FILE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange File XML</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_XML_OPERATION_COUNT = DATA_INTERCHANGE_FILE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl <em>Data Interchange File CSV</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFileCSV()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_FILE_CSV = 7;
+
+	/**
+	 * The feature id for the '<em><b>File URL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV__FILE_URL = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Delimiter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV__DELIMITER = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Quote Character</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV__QUOTE_CHARACTER = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Skip Lines</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV__SKIP_LINES = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Indent</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV__INDENT = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Encoding</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV__ENCODING = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Strict</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV__STRICT = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Validate Header</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV__VALIDATE_HEADER = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 7;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange File CSV</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV_FEATURE_COUNT = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 8;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_FILE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange File CSV</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_CSV_OPERATION_COUNT = DATA_INTERCHANGE_FILE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileEDIImpl <em>Data Interchange File EDI</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileEDIImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFileEDI()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_FILE_EDI = 8;
+
+	/**
+	 * The feature id for the '<em><b>File URL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_EDI__FILE_URL = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Mapping Model</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_EDI__MAPPING_MODEL = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Validate</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_EDI__VALIDATE = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange File EDI</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_EDI_FEATURE_COUNT = DATA_INTERCHANGE_FILE_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_EDI___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_FILE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange File EDI</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FILE_EDI_OPERATION_COUNT = DATA_INTERCHANGE_FILE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl <em>Data Interchange Bean</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeBean()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_BEAN = 9;
+
+	/**
+	 * The feature id for the '<em><b>Entity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__ENTITY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Mark Latest</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__MARK_LATEST = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Latest Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__LATEST_PROPERTY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Record Element</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__RECORD_ELEMENT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Record List</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__RECORD_LIST = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Element Map</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__ELEMENT_MAP = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Lookup</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__LOOKUP = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Format</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__FORMAT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Expression</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__EXPRESSION = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Mappings</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN__MAPPINGS = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 9;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Bean</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN_FEATURE_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Bean</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_BEAN_OPERATION_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFormatImpl <em>Data Interchange Format</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFormatImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFormat()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_FORMAT = 10;
+
+	/**
+	 * The feature id for the '<em><b>Target Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Locale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FORMAT__LOCALE = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Format</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FORMAT__FORMAT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FORMAT_FEATURE_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_FORMAT_OPERATION_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression <em>Data Interchange Expression</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeExpression()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_EXPRESSION = 11;
+
+	/**
+	 * The feature id for the '<em><b>Target Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_EXPRESSION_FEATURE_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_EXPRESSION___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_EXPRESSION_OPERATION_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeEntityExpressionImpl <em>Data Interchange Entity Expression</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeEntityExpressionImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeEntityExpression()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_ENTITY_EXPRESSION = 12;
+
+	/**
+	 * The feature id for the '<em><b>Target Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_ENTITY_EXPRESSION__TARGET_PROPERTY = DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY;
+
+	/**
+	 * The feature id for the '<em><b>Entity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY = DATA_INTERCHANGE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY = DATA_INTERCHANGE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Entity Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_ENTITY_EXPRESSION_FEATURE_COUNT = DATA_INTERCHANGE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_ENTITY_EXPRESSION___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_EXPRESSION___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Entity Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_ENTITY_EXPRESSION_OPERATION_COUNT = DATA_INTERCHANGE_EXPRESSION_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePredefinedExpressionImpl <em>Data Interchange Predefined Expression</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePredefinedExpressionImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangePredefinedExpression()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_PREDEFINED_EXPRESSION = 13;
+
+	/**
+	 * The feature id for the '<em><b>Target Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PREDEFINED_EXPRESSION__TARGET_PROPERTY = DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY;
+
+	/**
+	 * The feature id for the '<em><b>Bean</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN = DATA_INTERCHANGE_EXPRESSION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Bean Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE = DATA_INTERCHANGE_EXPRESSION_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Predefined Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PREDEFINED_EXPRESSION_FEATURE_COUNT = DATA_INTERCHANGE_EXPRESSION_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PREDEFINED_EXPRESSION___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_EXPRESSION___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Predefined Expression</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_PREDEFINED_EXPRESSION_OPERATION_COUNT = DATA_INTERCHANGE_EXPRESSION_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl <em>Data Interchange Lookup</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeLookup()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_LOOKUP = 14;
+
+	/**
+	 * The feature id for the '<em><b>Entity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__ENTITY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Target Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Query Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Element Map</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__ELEMENT_MAP = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Data Map</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__DATA_MAP = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Allow No Result</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__ALLOW_NO_RESULT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Allow Nonunique Result</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__ALLOW_NONUNIQUE_RESULT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Cached</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__CACHED = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Cache Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__CACHE_SIZE = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Marker Path</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP__MARKER_PATH = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 9;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP_FEATURE_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_LOOKUP_OPERATION_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerPathImpl <em>Data Interchange Marker Path</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerPathImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeMarkerPath()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_MARKER_PATH = 15;
+
+	/**
+	 * The feature id for the '<em><b>Path</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_PATH__PATH = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Marker Path</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_PATH_FEATURE_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_PATH___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Marker Path</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_PATH_OPERATION_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerEntityImpl <em>Data Interchange Marker Entity</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerEntityImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeMarkerEntity()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_MARKER_ENTITY = 16;
+
+	/**
+	 * The feature id for the '<em><b>Mark Latest</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_ENTITY__MARK_LATEST = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Marker Entity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Marker Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Marker Entity</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_ENTITY_FEATURE_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_ENTITY___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Marker Entity</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MARKER_ENTITY_OPERATION_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMappingImpl <em>Data Interchange Mapping</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMappingImpl
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeMapping()
+	 * @generated
+	 */
+	int DATA_INTERCHANGE_MAPPING = 17;
+
+	/**
+	 * The feature id for the '<em><b>Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MAPPING__PROPERTY = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MAPPING__DATA = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Data Interchange Mapping</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MAPPING_FEATURE_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MAPPING___ERESOLVE_PROXY__INTERNALEOBJECT = DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Data Interchange Mapping</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_INTERCHANGE_MAPPING_OPERATION_COUNT = DATA_INTERCHANGE_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum <em>Predefined Bean Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getPredefinedBeanEnum()
+	 * @generated
+	 */
+	int PREDEFINED_BEAN_ENUM = 18;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum <em>Predefined Bean Type Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getPredefinedBeanTypeEnum()
+	 * @generated
+	 */
+	int PREDEFINED_BEAN_TYPE_ENUM = 19;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum <em>Progress Bar Styles Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getProgressBarStylesEnum()
+	 * @generated
+	 */
+	int PROGRESS_BAR_STYLES_ENUM = 20;
+
+	/**
+	 * The meta object id for the '<em>Internal EObject</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.InternalEObject
+	 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getInternalEObject()
+	 * @generated
+	 */
+	int INTERNAL_EOBJECT = 21;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel <em>Data Interchange Model</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Model</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel
+	 * @generated
+	 */
+	EClass getDataInterchangeModel();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel#getPackages <em>Packages</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Packages</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel#getPackages()
+	 * @see #getDataInterchangeModel()
+	 * @generated
+	 */
+	EReference getDataInterchangeModel_Packages();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLazyResolver <em>Data Interchange Lazy Resolver</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Lazy Resolver</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLazyResolver
+	 * @generated
+	 */
+	EClass getDataInterchangeLazyResolver();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLazyResolver#eResolveProxy(org.eclipse.emf.ecore.InternalEObject) <em>EResolve Proxy</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>EResolve Proxy</em>' operation.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLazyResolver#eResolveProxy(org.eclipse.emf.ecore.InternalEObject)
+	 * @generated
+	 */
+	EOperation getDataInterchangeLazyResolver__EResolveProxy__InternalEObject();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage <em>Data Interchange Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Package</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage
+	 * @generated
+	 */
+	EClass getDataInterchangePackage();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage#getTitle <em>Title</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Title</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage#getTitle()
+	 * @see #getDataInterchangePackage()
+	 * @generated
+	 */
+	EAttribute getDataInterchangePackage_Title();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage#getDatInts <em>Dat Ints</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Dat Ints</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage#getDatInts()
+	 * @see #getDataInterchangePackage()
+	 * @generated
+	 */
+	EReference getDataInterchangePackage_DatInts();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBase <em>Data Interchange Base</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Base</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBase
+	 * @generated
+	 */
+	EClass getDataInterchangeBase();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBase#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBase#getName()
+	 * @see #getDataInterchangeBase()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeBase_Name();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange <em>Data Interchange</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange
+	 * @generated
+	 */
+	EClass getDataInterchange();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#isDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange#isDescription()
+	 * @see #getDataInterchange()
+	 * @generated
+	 */
+	EAttribute getDataInterchange_Description();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getDescriptionValue <em>Description Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description Value</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange#getDescriptionValue()
+	 * @see #getDataInterchange()
+	 * @generated
+	 */
+	EAttribute getDataInterchange_DescriptionValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#isCreateReport <em>Create Report</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Create Report</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange#isCreateReport()
+	 * @see #getDataInterchange()
+	 * @generated
+	 */
+	EAttribute getDataInterchange_CreateReport();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getElementSize <em>Element Size</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Element Size</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange#getElementSize()
+	 * @see #getDataInterchange()
+	 * @generated
+	 */
+	EAttribute getDataInterchange_ElementSize();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getProgressBarStyle <em>Progress Bar Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Progress Bar Style</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange#getProgressBarStyle()
+	 * @see #getDataInterchange()
+	 * @generated
+	 */
+	EAttribute getDataInterchange_ProgressBarStyle();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getFileEndpoint <em>File Endpoint</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>File Endpoint</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange#getFileEndpoint()
+	 * @see #getDataInterchange()
+	 * @generated
+	 */
+	EReference getDataInterchange_FileEndpoint();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getPath <em>Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Path</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange#getPath()
+	 * @see #getDataInterchange()
+	 * @generated
+	 */
+	EReference getDataInterchange_Path();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#isRefreshEnabled <em>Refresh Enabled</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Refresh Enabled</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange#isRefreshEnabled()
+	 * @see #getDataInterchange()
+	 * @generated
+	 */
+	EAttribute getDataInterchange_RefreshEnabled();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getRefresh <em>Refresh</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Refresh</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchange#getRefresh()
+	 * @see #getDataInterchange()
+	 * @generated
+	 */
+	EAttribute getDataInterchange_Refresh();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile <em>Data Interchange File</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange File</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile
+	 * @generated
+	 */
+	EClass getDataInterchangeFile();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML <em>Data Interchange File XML</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange File XML</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML
+	 * @generated
+	 */
+	EClass getDataInterchangeFileXML();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML#getFileURL <em>File URL</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>File URL</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML#getFileURL()
+	 * @see #getDataInterchangeFileXML()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileXML_FileURL();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV <em>Data Interchange File CSV</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange File CSV</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV
+	 * @generated
+	 */
+	EClass getDataInterchangeFileCSV();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getFileURL <em>File URL</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>File URL</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getFileURL()
+	 * @see #getDataInterchangeFileCSV()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileCSV_FileURL();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getDelimiter <em>Delimiter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Delimiter</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getDelimiter()
+	 * @see #getDataInterchangeFileCSV()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileCSV_Delimiter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getQuoteCharacter <em>Quote Character</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Quote Character</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getQuoteCharacter()
+	 * @see #getDataInterchangeFileCSV()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileCSV_QuoteCharacter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getSkipLines <em>Skip Lines</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Skip Lines</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getSkipLines()
+	 * @see #getDataInterchangeFileCSV()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileCSV_SkipLines();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isIndent <em>Indent</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Indent</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isIndent()
+	 * @see #getDataInterchangeFileCSV()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileCSV_Indent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getEncoding <em>Encoding</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Encoding</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getEncoding()
+	 * @see #getDataInterchangeFileCSV()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileCSV_Encoding();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isStrict <em>Strict</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Strict</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isStrict()
+	 * @see #getDataInterchangeFileCSV()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileCSV_Strict();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isValidateHeader <em>Validate Header</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Validate Header</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isValidateHeader()
+	 * @see #getDataInterchangeFileCSV()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileCSV_ValidateHeader();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI <em>Data Interchange File EDI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange File EDI</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI
+	 * @generated
+	 */
+	EClass getDataInterchangeFileEDI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#getFileURL <em>File URL</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>File URL</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#getFileURL()
+	 * @see #getDataInterchangeFileEDI()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileEDI_FileURL();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#getMappingModel <em>Mapping Model</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Mapping Model</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#getMappingModel()
+	 * @see #getDataInterchangeFileEDI()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileEDI_MappingModel();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#isValidate <em>Validate</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Validate</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#isValidate()
+	 * @see #getDataInterchangeFileEDI()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFileEDI_Validate();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean <em>Data Interchange Bean</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Bean</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean
+	 * @generated
+	 */
+	EClass getDataInterchangeBean();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getEntity <em>Entity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Entity</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getEntity()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EReference getDataInterchangeBean_Entity();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isMarkLatest <em>Mark Latest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Mark Latest</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isMarkLatest()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeBean_MarkLatest();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getLatestProperty <em>Latest Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Latest Property</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getLatestProperty()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EReference getDataInterchangeBean_LatestProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isRecordElement <em>Record Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Record Element</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isRecordElement()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeBean_RecordElement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isRecordList <em>Record List</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Record List</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isRecordList()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeBean_RecordList();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getElementMap <em>Element Map</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Element Map</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getElementMap()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeBean_ElementMap();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getLookup <em>Lookup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Lookup</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getLookup()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EReference getDataInterchangeBean_Lookup();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getFormat <em>Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Format</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getFormat()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EReference getDataInterchangeBean_Format();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getExpression <em>Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Expression</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getExpression()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EReference getDataInterchangeBean_Expression();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getMappings <em>Mappings</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Mappings</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getMappings()
+	 * @see #getDataInterchangeBean()
+	 * @generated
+	 */
+	EReference getDataInterchangeBean_Mappings();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat <em>Data Interchange Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Format</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat
+	 * @generated
+	 */
+	EClass getDataInterchangeFormat();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getTargetProperty <em>Target Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target Property</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getTargetProperty()
+	 * @see #getDataInterchangeFormat()
+	 * @generated
+	 */
+	EReference getDataInterchangeFormat_TargetProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getLocale <em>Locale</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Locale</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getLocale()
+	 * @see #getDataInterchangeFormat()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFormat_Locale();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getFormat <em>Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Format</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getFormat()
+	 * @see #getDataInterchangeFormat()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeFormat_Format();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression <em>Data Interchange Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Expression</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression
+	 * @generated
+	 */
+	EClass getDataInterchangeExpression();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression#getTargetProperty <em>Target Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target Property</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression#getTargetProperty()
+	 * @see #getDataInterchangeExpression()
+	 * @generated
+	 */
+	EReference getDataInterchangeExpression_TargetProperty();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression <em>Data Interchange Entity Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Entity Expression</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression
+	 * @generated
+	 */
+	EClass getDataInterchangeEntityExpression();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression#getEntity <em>Entity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Entity</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression#getEntity()
+	 * @see #getDataInterchangeEntityExpression()
+	 * @generated
+	 */
+	EReference getDataInterchangeEntityExpression_Entity();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression#getProperty <em>Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Property</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression#getProperty()
+	 * @see #getDataInterchangeEntityExpression()
+	 * @generated
+	 */
+	EReference getDataInterchangeEntityExpression_Property();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression <em>Data Interchange Predefined Expression</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Predefined Expression</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression
+	 * @generated
+	 */
+	EClass getDataInterchangePredefinedExpression();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression#getBean <em>Bean</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bean</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression#getBean()
+	 * @see #getDataInterchangePredefinedExpression()
+	 * @generated
+	 */
+	EAttribute getDataInterchangePredefinedExpression_Bean();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression#getBeanType <em>Bean Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bean Type</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression#getBeanType()
+	 * @see #getDataInterchangePredefinedExpression()
+	 * @generated
+	 */
+	EAttribute getDataInterchangePredefinedExpression_BeanType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup <em>Data Interchange Lookup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Lookup</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup
+	 * @generated
+	 */
+	EClass getDataInterchangeLookup();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getEntity <em>Entity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Entity</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getEntity()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EReference getDataInterchangeLookup_Entity();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getTargetProperty <em>Target Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Target Property</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getTargetProperty()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EReference getDataInterchangeLookup_TargetProperty();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getQueryProperty <em>Query Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Query Property</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getQueryProperty()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EReference getDataInterchangeLookup_QueryProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getElementMap <em>Element Map</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Element Map</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getElementMap()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeLookup_ElementMap();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getDataMap <em>Data Map</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Data Map</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getDataMap()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeLookup_DataMap();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isAllowNoResult <em>Allow No Result</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Allow No Result</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isAllowNoResult()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeLookup_AllowNoResult();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isAllowNonuniqueResult <em>Allow Nonunique Result</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Allow Nonunique Result</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isAllowNonuniqueResult()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeLookup_AllowNonuniqueResult();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isCached <em>Cached</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cached</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isCached()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeLookup_Cached();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getCacheSize <em>Cache Size</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Cache Size</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getCacheSize()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeLookup_CacheSize();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getMarkerPath <em>Marker Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Marker Path</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getMarkerPath()
+	 * @see #getDataInterchangeLookup()
+	 * @generated
+	 */
+	EReference getDataInterchangeLookup_MarkerPath();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath <em>Data Interchange Marker Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Marker Path</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath
+	 * @generated
+	 */
+	EClass getDataInterchangeMarkerPath();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath#getPath <em>Path</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Path</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath#getPath()
+	 * @see #getDataInterchangeMarkerPath()
+	 * @generated
+	 */
+	EReference getDataInterchangeMarkerPath_Path();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity <em>Data Interchange Marker Entity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Marker Entity</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity
+	 * @generated
+	 */
+	EClass getDataInterchangeMarkerEntity();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#isMarkLatest <em>Mark Latest</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Mark Latest</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#isMarkLatest()
+	 * @see #getDataInterchangeMarkerEntity()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeMarkerEntity_MarkLatest();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#getMarkerEntity <em>Marker Entity</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Marker Entity</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#getMarkerEntity()
+	 * @see #getDataInterchangeMarkerEntity()
+	 * @generated
+	 */
+	EReference getDataInterchangeMarkerEntity_MarkerEntity();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#getMarkerProperty <em>Marker Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Marker Property</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#getMarkerProperty()
+	 * @see #getDataInterchangeMarkerEntity()
+	 * @generated
+	 */
+	EReference getDataInterchangeMarkerEntity_MarkerProperty();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping <em>Data Interchange Mapping</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Data Interchange Mapping</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping
+	 * @generated
+	 */
+	EClass getDataInterchangeMapping();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping#getProperty <em>Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Property</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping#getProperty()
+	 * @see #getDataInterchangeMapping()
+	 * @generated
+	 */
+	EReference getDataInterchangeMapping_Property();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping#getData <em>Data</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Data</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping#getData()
+	 * @see #getDataInterchangeMapping()
+	 * @generated
+	 */
+	EAttribute getDataInterchangeMapping_Data();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum <em>Predefined Bean Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Predefined Bean Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum
+	 * @generated
+	 */
+	EEnum getPredefinedBeanEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum <em>Predefined Bean Type Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Predefined Bean Type Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum
+	 * @generated
+	 */
+	EEnum getPredefinedBeanTypeEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum <em>Progress Bar Styles Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Progress Bar Styles Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum
+	 * @generated
+	 */
+	EEnum getProgressBarStylesEnum();
+
+	/**
+	 * Returns the meta object for data type '{@link org.eclipse.emf.ecore.InternalEObject <em>Internal EObject</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Internal EObject</em>'.
+	 * @see org.eclipse.emf.ecore.InternalEObject
+	 * @model instanceClass="org.eclipse.emf.ecore.InternalEObject"
+	 * @generated
+	 */
+	EDataType getInternalEObject();
+
+	/**
+	 * 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
+	 */
+	DataDSLFactory getDataDSLFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeModelImpl <em>Data Interchange Model</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeModelImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeModel()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_MODEL = eINSTANCE.getDataInterchangeModel();
+
+		/**
+		 * The meta object literal for the '<em><b>Packages</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_MODEL__PACKAGES = eINSTANCE.getDataInterchangeModel_Packages();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLazyResolverImpl <em>Data Interchange Lazy Resolver</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLazyResolverImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeLazyResolver()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_LAZY_RESOLVER = eINSTANCE.getDataInterchangeLazyResolver();
+
+		/**
+		 * The meta object literal for the '<em><b>EResolve Proxy</b></em>' operation.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EOperation DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT = eINSTANCE.getDataInterchangeLazyResolver__EResolveProxy__InternalEObject();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePackageImpl <em>Data Interchange Package</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePackageImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangePackage()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_PACKAGE = eINSTANCE.getDataInterchangePackage();
+
+		/**
+		 * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_PACKAGE__TITLE = eINSTANCE.getDataInterchangePackage_Title();
+
+		/**
+		 * The meta object literal for the '<em><b>Dat Ints</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_PACKAGE__DAT_INTS = eINSTANCE.getDataInterchangePackage_DatInts();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBaseImpl <em>Data Interchange Base</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBaseImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeBase()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_BASE = eINSTANCE.getDataInterchangeBase();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_BASE__NAME = eINSTANCE.getDataInterchangeBase_Name();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl <em>Data Interchange</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchange()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE = eINSTANCE.getDataInterchange();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE__DESCRIPTION = eINSTANCE.getDataInterchange_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>Description Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE__DESCRIPTION_VALUE = eINSTANCE.getDataInterchange_DescriptionValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Create Report</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE__CREATE_REPORT = eINSTANCE.getDataInterchange_CreateReport();
+
+		/**
+		 * The meta object literal for the '<em><b>Element Size</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE__ELEMENT_SIZE = eINSTANCE.getDataInterchange_ElementSize();
+
+		/**
+		 * The meta object literal for the '<em><b>Progress Bar Style</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE__PROGRESS_BAR_STYLE = eINSTANCE.getDataInterchange_ProgressBarStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>File Endpoint</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE__FILE_ENDPOINT = eINSTANCE.getDataInterchange_FileEndpoint();
+
+		/**
+		 * The meta object literal for the '<em><b>Path</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE__PATH = eINSTANCE.getDataInterchange_Path();
+
+		/**
+		 * The meta object literal for the '<em><b>Refresh Enabled</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE__REFRESH_ENABLED = eINSTANCE.getDataInterchange_RefreshEnabled();
+
+		/**
+		 * The meta object literal for the '<em><b>Refresh</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE__REFRESH = eINSTANCE.getDataInterchange_Refresh();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile <em>Data Interchange File</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFile()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_FILE = eINSTANCE.getDataInterchangeFile();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileXMLImpl <em>Data Interchange File XML</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileXMLImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFileXML()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_FILE_XML = eINSTANCE.getDataInterchangeFileXML();
+
+		/**
+		 * The meta object literal for the '<em><b>File URL</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_XML__FILE_URL = eINSTANCE.getDataInterchangeFileXML_FileURL();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl <em>Data Interchange File CSV</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFileCSV()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_FILE_CSV = eINSTANCE.getDataInterchangeFileCSV();
+
+		/**
+		 * The meta object literal for the '<em><b>File URL</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_CSV__FILE_URL = eINSTANCE.getDataInterchangeFileCSV_FileURL();
+
+		/**
+		 * The meta object literal for the '<em><b>Delimiter</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_CSV__DELIMITER = eINSTANCE.getDataInterchangeFileCSV_Delimiter();
+
+		/**
+		 * The meta object literal for the '<em><b>Quote Character</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_CSV__QUOTE_CHARACTER = eINSTANCE.getDataInterchangeFileCSV_QuoteCharacter();
+
+		/**
+		 * The meta object literal for the '<em><b>Skip Lines</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_CSV__SKIP_LINES = eINSTANCE.getDataInterchangeFileCSV_SkipLines();
+
+		/**
+		 * The meta object literal for the '<em><b>Indent</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_CSV__INDENT = eINSTANCE.getDataInterchangeFileCSV_Indent();
+
+		/**
+		 * The meta object literal for the '<em><b>Encoding</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_CSV__ENCODING = eINSTANCE.getDataInterchangeFileCSV_Encoding();
+
+		/**
+		 * The meta object literal for the '<em><b>Strict</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_CSV__STRICT = eINSTANCE.getDataInterchangeFileCSV_Strict();
+
+		/**
+		 * The meta object literal for the '<em><b>Validate Header</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_CSV__VALIDATE_HEADER = eINSTANCE.getDataInterchangeFileCSV_ValidateHeader();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileEDIImpl <em>Data Interchange File EDI</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileEDIImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFileEDI()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_FILE_EDI = eINSTANCE.getDataInterchangeFileEDI();
+
+		/**
+		 * The meta object literal for the '<em><b>File URL</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_EDI__FILE_URL = eINSTANCE.getDataInterchangeFileEDI_FileURL();
+
+		/**
+		 * The meta object literal for the '<em><b>Mapping Model</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_EDI__MAPPING_MODEL = eINSTANCE.getDataInterchangeFileEDI_MappingModel();
+
+		/**
+		 * The meta object literal for the '<em><b>Validate</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FILE_EDI__VALIDATE = eINSTANCE.getDataInterchangeFileEDI_Validate();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl <em>Data Interchange Bean</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeBean()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_BEAN = eINSTANCE.getDataInterchangeBean();
+
+		/**
+		 * The meta object literal for the '<em><b>Entity</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_BEAN__ENTITY = eINSTANCE.getDataInterchangeBean_Entity();
+
+		/**
+		 * The meta object literal for the '<em><b>Mark Latest</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_BEAN__MARK_LATEST = eINSTANCE.getDataInterchangeBean_MarkLatest();
+
+		/**
+		 * The meta object literal for the '<em><b>Latest Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_BEAN__LATEST_PROPERTY = eINSTANCE.getDataInterchangeBean_LatestProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Record Element</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_BEAN__RECORD_ELEMENT = eINSTANCE.getDataInterchangeBean_RecordElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Record List</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_BEAN__RECORD_LIST = eINSTANCE.getDataInterchangeBean_RecordList();
+
+		/**
+		 * The meta object literal for the '<em><b>Element Map</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_BEAN__ELEMENT_MAP = eINSTANCE.getDataInterchangeBean_ElementMap();
+
+		/**
+		 * The meta object literal for the '<em><b>Lookup</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_BEAN__LOOKUP = eINSTANCE.getDataInterchangeBean_Lookup();
+
+		/**
+		 * The meta object literal for the '<em><b>Format</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_BEAN__FORMAT = eINSTANCE.getDataInterchangeBean_Format();
+
+		/**
+		 * The meta object literal for the '<em><b>Expression</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_BEAN__EXPRESSION = eINSTANCE.getDataInterchangeBean_Expression();
+
+		/**
+		 * The meta object literal for the '<em><b>Mappings</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_BEAN__MAPPINGS = eINSTANCE.getDataInterchangeBean_Mappings();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFormatImpl <em>Data Interchange Format</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFormatImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeFormat()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_FORMAT = eINSTANCE.getDataInterchangeFormat();
+
+		/**
+		 * The meta object literal for the '<em><b>Target Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY = eINSTANCE.getDataInterchangeFormat_TargetProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Locale</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FORMAT__LOCALE = eINSTANCE.getDataInterchangeFormat_Locale();
+
+		/**
+		 * The meta object literal for the '<em><b>Format</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_FORMAT__FORMAT = eINSTANCE.getDataInterchangeFormat_Format();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression <em>Data Interchange Expression</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeExpression()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_EXPRESSION = eINSTANCE.getDataInterchangeExpression();
+
+		/**
+		 * The meta object literal for the '<em><b>Target Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY = eINSTANCE.getDataInterchangeExpression_TargetProperty();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeEntityExpressionImpl <em>Data Interchange Entity Expression</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeEntityExpressionImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeEntityExpression()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_ENTITY_EXPRESSION = eINSTANCE.getDataInterchangeEntityExpression();
+
+		/**
+		 * The meta object literal for the '<em><b>Entity</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY = eINSTANCE.getDataInterchangeEntityExpression_Entity();
+
+		/**
+		 * The meta object literal for the '<em><b>Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY = eINSTANCE.getDataInterchangeEntityExpression_Property();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePredefinedExpressionImpl <em>Data Interchange Predefined Expression</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePredefinedExpressionImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangePredefinedExpression()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_PREDEFINED_EXPRESSION = eINSTANCE.getDataInterchangePredefinedExpression();
+
+		/**
+		 * The meta object literal for the '<em><b>Bean</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN = eINSTANCE.getDataInterchangePredefinedExpression_Bean();
+
+		/**
+		 * The meta object literal for the '<em><b>Bean Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE = eINSTANCE.getDataInterchangePredefinedExpression_BeanType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl <em>Data Interchange Lookup</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeLookup()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_LOOKUP = eINSTANCE.getDataInterchangeLookup();
+
+		/**
+		 * The meta object literal for the '<em><b>Entity</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_LOOKUP__ENTITY = eINSTANCE.getDataInterchangeLookup_Entity();
+
+		/**
+		 * The meta object literal for the '<em><b>Target Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY = eINSTANCE.getDataInterchangeLookup_TargetProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Query Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY = eINSTANCE.getDataInterchangeLookup_QueryProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Element Map</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_LOOKUP__ELEMENT_MAP = eINSTANCE.getDataInterchangeLookup_ElementMap();
+
+		/**
+		 * The meta object literal for the '<em><b>Data Map</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_LOOKUP__DATA_MAP = eINSTANCE.getDataInterchangeLookup_DataMap();
+
+		/**
+		 * The meta object literal for the '<em><b>Allow No Result</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_LOOKUP__ALLOW_NO_RESULT = eINSTANCE.getDataInterchangeLookup_AllowNoResult();
+
+		/**
+		 * The meta object literal for the '<em><b>Allow Nonunique Result</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_LOOKUP__ALLOW_NONUNIQUE_RESULT = eINSTANCE.getDataInterchangeLookup_AllowNonuniqueResult();
+
+		/**
+		 * The meta object literal for the '<em><b>Cached</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_LOOKUP__CACHED = eINSTANCE.getDataInterchangeLookup_Cached();
+
+		/**
+		 * The meta object literal for the '<em><b>Cache Size</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_LOOKUP__CACHE_SIZE = eINSTANCE.getDataInterchangeLookup_CacheSize();
+
+		/**
+		 * The meta object literal for the '<em><b>Marker Path</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_LOOKUP__MARKER_PATH = eINSTANCE.getDataInterchangeLookup_MarkerPath();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerPathImpl <em>Data Interchange Marker Path</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerPathImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeMarkerPath()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_MARKER_PATH = eINSTANCE.getDataInterchangeMarkerPath();
+
+		/**
+		 * The meta object literal for the '<em><b>Path</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_MARKER_PATH__PATH = eINSTANCE.getDataInterchangeMarkerPath_Path();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerEntityImpl <em>Data Interchange Marker Entity</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerEntityImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeMarkerEntity()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_MARKER_ENTITY = eINSTANCE.getDataInterchangeMarkerEntity();
+
+		/**
+		 * The meta object literal for the '<em><b>Mark Latest</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_MARKER_ENTITY__MARK_LATEST = eINSTANCE.getDataInterchangeMarkerEntity_MarkLatest();
+
+		/**
+		 * The meta object literal for the '<em><b>Marker Entity</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY = eINSTANCE.getDataInterchangeMarkerEntity_MarkerEntity();
+
+		/**
+		 * The meta object literal for the '<em><b>Marker Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY = eINSTANCE.getDataInterchangeMarkerEntity_MarkerProperty();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMappingImpl <em>Data Interchange Mapping</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMappingImpl
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getDataInterchangeMapping()
+		 * @generated
+		 */
+		EClass DATA_INTERCHANGE_MAPPING = eINSTANCE.getDataInterchangeMapping();
+
+		/**
+		 * The meta object literal for the '<em><b>Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATA_INTERCHANGE_MAPPING__PROPERTY = eINSTANCE.getDataInterchangeMapping_Property();
+
+		/**
+		 * The meta object literal for the '<em><b>Data</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATA_INTERCHANGE_MAPPING__DATA = eINSTANCE.getDataInterchangeMapping_Data();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum <em>Predefined Bean Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getPredefinedBeanEnum()
+		 * @generated
+		 */
+		EEnum PREDEFINED_BEAN_ENUM = eINSTANCE.getPredefinedBeanEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum <em>Predefined Bean Type Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getPredefinedBeanTypeEnum()
+		 * @generated
+		 */
+		EEnum PREDEFINED_BEAN_TYPE_ENUM = eINSTANCE.getPredefinedBeanTypeEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum <em>Progress Bar Styles Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getProgressBarStylesEnum()
+		 * @generated
+		 */
+		EEnum PROGRESS_BAR_STYLES_ENUM = eINSTANCE.getProgressBarStylesEnum();
+
+		/**
+		 * The meta object literal for the '<em>Internal EObject</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.emf.ecore.InternalEObject
+		 * @see org.eclipse.osbp.xtext.datainterchange.impl.DataDSLPackageImpl#getInternalEObject()
+		 * @generated
+		 */
+		EDataType INTERNAL_EOBJECT = eINSTANCE.getInternalEObject();
+
+	}
+
+} //DataDSLPackage
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchange.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchange.java
new file mode 100644
index 0000000..2c93345
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchange.java
@@ -0,0 +1,270 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#isDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getDescriptionValue <em>Description Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#isCreateReport <em>Create Report</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getElementSize <em>Element Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getProgressBarStyle <em>Progress Bar Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getFileEndpoint <em>File Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getPath <em>Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#isRefreshEnabled <em>Refresh Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getRefresh <em>Refresh</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange()
+ * @model
+ * @generated
+ */
+public interface DataInterchange extends DataInterchangeBase {
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange_Description()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#isDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #isDescription()
+	 * @generated
+	 */
+	void setDescription(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Description Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description Value</em>' attribute.
+	 * @see #setDescriptionValue(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange_DescriptionValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getDescriptionValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getDescriptionValue <em>Description Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description Value</em>' attribute.
+	 * @see #getDescriptionValue()
+	 * @generated
+	 */
+	void setDescriptionValue(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Create Report</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Create Report</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Create Report</em>' attribute.
+	 * @see #setCreateReport(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange_CreateReport()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isCreateReport();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#isCreateReport <em>Create Report</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Create Report</em>' attribute.
+	 * @see #isCreateReport()
+	 * @generated
+	 */
+	void setCreateReport(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Element Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element Size</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element Size</em>' attribute.
+	 * @see #setElementSize(int)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange_ElementSize()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getElementSize();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getElementSize <em>Element Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element Size</em>' attribute.
+	 * @see #getElementSize()
+	 * @generated
+	 */
+	void setElementSize(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Progress Bar Style</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Progress Bar Style</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Progress Bar Style</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum
+	 * @see #setProgressBarStyle(ProgressBarStylesEnum)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange_ProgressBarStyle()
+	 * @model unique="false"
+	 * @generated
+	 */
+	ProgressBarStylesEnum getProgressBarStyle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getProgressBarStyle <em>Progress Bar Style</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Progress Bar Style</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum
+	 * @see #getProgressBarStyle()
+	 * @generated
+	 */
+	void setProgressBarStyle(ProgressBarStylesEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>File Endpoint</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>File Endpoint</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>File Endpoint</em>' containment reference.
+	 * @see #setFileEndpoint(DataInterchangeFile)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange_FileEndpoint()
+	 * @model containment="true"
+	 * @generated
+	 */
+	DataInterchangeFile getFileEndpoint();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getFileEndpoint <em>File Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>File Endpoint</em>' containment reference.
+	 * @see #getFileEndpoint()
+	 * @generated
+	 */
+	void setFileEndpoint(DataInterchangeFile value);
+
+	/**
+	 * Returns the value of the '<em><b>Path</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Path</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Path</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange_Path()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DataInterchangeBean> getPath();
+
+	/**
+	 * Returns the value of the '<em><b>Refresh Enabled</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Refresh Enabled</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Refresh Enabled</em>' attribute.
+	 * @see #setRefreshEnabled(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange_RefreshEnabled()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isRefreshEnabled();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#isRefreshEnabled <em>Refresh Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Refresh Enabled</em>' attribute.
+	 * @see #isRefreshEnabled()
+	 * @generated
+	 */
+	void setRefreshEnabled(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Refresh</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Refresh</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Refresh</em>' attribute.
+	 * @see #setRefresh(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchange_Refresh()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getRefresh();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange#getRefresh <em>Refresh</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Refresh</em>' attribute.
+	 * @see #getRefresh()
+	 * @generated
+	 */
+	void setRefresh(String value);
+
+} // DataInterchange
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeBase.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeBase.java
new file mode 100644
index 0000000..3738471
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeBase.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Base</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBase#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBase()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeBase extends DataInterchangeLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBase_Name()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBase#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // DataInterchangeBase
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeBean.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeBean.java
new file mode 100644
index 0000000..b561e18
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeBean.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Bean</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getEntity <em>Entity</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isMarkLatest <em>Mark Latest</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getLatestProperty <em>Latest Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isRecordElement <em>Record Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isRecordList <em>Record List</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getElementMap <em>Element Map</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getLookup <em>Lookup</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getFormat <em>Format</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getExpression <em>Expression</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getMappings <em>Mappings</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeBean extends DataInterchangeLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Entity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Entity</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Entity</em>' reference.
+	 * @see #setEntity(LEntity)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_Entity()
+	 * @model
+	 * @generated
+	 */
+	LEntity getEntity();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getEntity <em>Entity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Entity</em>' reference.
+	 * @see #getEntity()
+	 * @generated
+	 */
+	void setEntity(LEntity value);
+
+	/**
+	 * Returns the value of the '<em><b>Mark Latest</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Mark Latest</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Mark Latest</em>' attribute.
+	 * @see #setMarkLatest(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_MarkLatest()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isMarkLatest();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isMarkLatest <em>Mark Latest</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Mark Latest</em>' attribute.
+	 * @see #isMarkLatest()
+	 * @generated
+	 */
+	void setMarkLatest(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Latest Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Latest Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Latest Property</em>' reference.
+	 * @see #setLatestProperty(LEntityAttribute)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_LatestProperty()
+	 * @model
+	 * @generated
+	 */
+	LEntityAttribute getLatestProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getLatestProperty <em>Latest Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Latest Property</em>' reference.
+	 * @see #getLatestProperty()
+	 * @generated
+	 */
+	void setLatestProperty(LEntityAttribute value);
+
+	/**
+	 * Returns the value of the '<em><b>Record Element</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Record Element</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Record Element</em>' attribute.
+	 * @see #setRecordElement(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_RecordElement()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isRecordElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isRecordElement <em>Record Element</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Record Element</em>' attribute.
+	 * @see #isRecordElement()
+	 * @generated
+	 */
+	void setRecordElement(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Record List</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Record List</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Record List</em>' attribute.
+	 * @see #setRecordList(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_RecordList()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isRecordList();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#isRecordList <em>Record List</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Record List</em>' attribute.
+	 * @see #isRecordList()
+	 * @generated
+	 */
+	void setRecordList(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Element Map</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element Map</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element Map</em>' attribute.
+	 * @see #setElementMap(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_ElementMap()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getElementMap();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean#getElementMap <em>Element Map</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element Map</em>' attribute.
+	 * @see #getElementMap()
+	 * @generated
+	 */
+	void setElementMap(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Lookup</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Lookup</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Lookup</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_Lookup()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DataInterchangeLookup> getLookup();
+
+	/**
+	 * Returns the value of the '<em><b>Format</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Format</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Format</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_Format()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DataInterchangeFormat> getFormat();
+
+	/**
+	 * Returns the value of the '<em><b>Expression</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Expression</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Expression</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_Expression()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DataInterchangeExpression> getExpression();
+
+	/**
+	 * Returns the value of the '<em><b>Mappings</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Mappings</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Mappings</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeBean_Mappings()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DataInterchangeMapping> getMappings();
+
+} // DataInterchangeBean
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeEntityExpression.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeEntityExpression.java
new file mode 100644
index 0000000..70ee73a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeEntityExpression.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Entity Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression#getEntity <em>Entity</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression#getProperty <em>Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeEntityExpression()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeEntityExpression extends DataInterchangeExpression {
+	/**
+	 * Returns the value of the '<em><b>Entity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Entity</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Entity</em>' reference.
+	 * @see #setEntity(LEntity)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeEntityExpression_Entity()
+	 * @model
+	 * @generated
+	 */
+	LEntity getEntity();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression#getEntity <em>Entity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Entity</em>' reference.
+	 * @see #getEntity()
+	 * @generated
+	 */
+	void setEntity(LEntity value);
+
+	/**
+	 * Returns the value of the '<em><b>Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property</em>' reference.
+	 * @see #setProperty(LEntityAttribute)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeEntityExpression_Property()
+	 * @model
+	 * @generated
+	 */
+	LEntityAttribute getProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression#getProperty <em>Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property</em>' reference.
+	 * @see #getProperty()
+	 * @generated
+	 */
+	void setProperty(LEntityAttribute value);
+
+} // DataInterchangeEntityExpression
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeExpression.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeExpression.java
new file mode 100644
index 0000000..12d1eb6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeExpression.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression#getTargetProperty <em>Target Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeExpression()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface DataInterchangeExpression extends DataInterchangeLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Target Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target Property</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 Property</em>' reference.
+	 * @see #setTargetProperty(LEntityAttribute)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeExpression_TargetProperty()
+	 * @model
+	 * @generated
+	 */
+	LEntityAttribute getTargetProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression#getTargetProperty <em>Target Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target Property</em>' reference.
+	 * @see #getTargetProperty()
+	 * @generated
+	 */
+	void setTargetProperty(LEntityAttribute value);
+
+} // DataInterchangeExpression
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFile.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFile.java
new file mode 100644
index 0000000..6e7c9eb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFile.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange File</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFile()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface DataInterchangeFile extends DataInterchangeLazyResolver {
+} // DataInterchangeFile
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFileCSV.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFileCSV.java
new file mode 100644
index 0000000..9cff8db
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFileCSV.java
@@ -0,0 +1,249 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange File CSV</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getFileURL <em>File URL</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getDelimiter <em>Delimiter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getQuoteCharacter <em>Quote Character</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getSkipLines <em>Skip Lines</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isIndent <em>Indent</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getEncoding <em>Encoding</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isStrict <em>Strict</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isValidateHeader <em>Validate Header</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileCSV()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeFileCSV extends DataInterchangeFile {
+	/**
+	 * Returns the value of the '<em><b>File URL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>File URL</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>File URL</em>' attribute.
+	 * @see #setFileURL(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileCSV_FileURL()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getFileURL();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getFileURL <em>File URL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>File URL</em>' attribute.
+	 * @see #getFileURL()
+	 * @generated
+	 */
+	void setFileURL(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Delimiter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Delimiter</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Delimiter</em>' attribute.
+	 * @see #setDelimiter(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileCSV_Delimiter()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getDelimiter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getDelimiter <em>Delimiter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Delimiter</em>' attribute.
+	 * @see #getDelimiter()
+	 * @generated
+	 */
+	void setDelimiter(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Quote Character</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Quote Character</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Quote Character</em>' attribute.
+	 * @see #setQuoteCharacter(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileCSV_QuoteCharacter()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getQuoteCharacter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getQuoteCharacter <em>Quote Character</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Quote Character</em>' attribute.
+	 * @see #getQuoteCharacter()
+	 * @generated
+	 */
+	void setQuoteCharacter(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Skip Lines</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Skip Lines</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Skip Lines</em>' attribute.
+	 * @see #setSkipLines(int)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileCSV_SkipLines()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getSkipLines();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getSkipLines <em>Skip Lines</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Skip Lines</em>' attribute.
+	 * @see #getSkipLines()
+	 * @generated
+	 */
+	void setSkipLines(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Indent</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Indent</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Indent</em>' attribute.
+	 * @see #setIndent(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileCSV_Indent()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isIndent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isIndent <em>Indent</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Indent</em>' attribute.
+	 * @see #isIndent()
+	 * @generated
+	 */
+	void setIndent(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Encoding</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Encoding</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Encoding</em>' attribute.
+	 * @see #setEncoding(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileCSV_Encoding()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getEncoding();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#getEncoding <em>Encoding</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Encoding</em>' attribute.
+	 * @see #getEncoding()
+	 * @generated
+	 */
+	void setEncoding(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Strict</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Strict</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Strict</em>' attribute.
+	 * @see #setStrict(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileCSV_Strict()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isStrict();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isStrict <em>Strict</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Strict</em>' attribute.
+	 * @see #isStrict()
+	 * @generated
+	 */
+	void setStrict(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Validate Header</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Validate Header</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Validate Header</em>' attribute.
+	 * @see #setValidateHeader(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileCSV_ValidateHeader()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isValidateHeader();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV#isValidateHeader <em>Validate Header</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Validate Header</em>' attribute.
+	 * @see #isValidateHeader()
+	 * @generated
+	 */
+	void setValidateHeader(boolean value);
+
+} // DataInterchangeFileCSV
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFileEDI.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFileEDI.java
new file mode 100644
index 0000000..8d58a2f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFileEDI.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange File EDI</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#getFileURL <em>File URL</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#getMappingModel <em>Mapping Model</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#isValidate <em>Validate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileEDI()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeFileEDI extends DataInterchangeFile {
+	/**
+	 * Returns the value of the '<em><b>File URL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>File URL</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>File URL</em>' attribute.
+	 * @see #setFileURL(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileEDI_FileURL()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getFileURL();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#getFileURL <em>File URL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>File URL</em>' attribute.
+	 * @see #getFileURL()
+	 * @generated
+	 */
+	void setFileURL(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Mapping Model</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Mapping Model</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Mapping Model</em>' attribute.
+	 * @see #setMappingModel(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileEDI_MappingModel()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getMappingModel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#getMappingModel <em>Mapping Model</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Mapping Model</em>' attribute.
+	 * @see #getMappingModel()
+	 * @generated
+	 */
+	void setMappingModel(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Validate</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Validate</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Validate</em>' attribute.
+	 * @see #setValidate(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileEDI_Validate()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isValidate();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI#isValidate <em>Validate</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Validate</em>' attribute.
+	 * @see #isValidate()
+	 * @generated
+	 */
+	void setValidate(boolean value);
+
+} // DataInterchangeFileEDI
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFileXML.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFileXML.java
new file mode 100644
index 0000000..4a43672
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFileXML.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange File XML</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML#getFileURL <em>File URL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileXML()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeFileXML extends DataInterchangeFile {
+	/**
+	 * Returns the value of the '<em><b>File URL</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>File URL</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>File URL</em>' attribute.
+	 * @see #setFileURL(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFileXML_FileURL()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getFileURL();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML#getFileURL <em>File URL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>File URL</em>' attribute.
+	 * @see #getFileURL()
+	 * @generated
+	 */
+	void setFileURL(String value);
+
+} // DataInterchangeFileXML
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFormat.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFormat.java
new file mode 100644
index 0000000..f3b2b12
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeFormat.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Format</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getTargetProperty <em>Target Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getLocale <em>Locale</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getFormat <em>Format</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFormat()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeFormat extends DataInterchangeLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Target Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target Property</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 Property</em>' reference.
+	 * @see #setTargetProperty(LEntityAttribute)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFormat_TargetProperty()
+	 * @model
+	 * @generated
+	 */
+	LEntityAttribute getTargetProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getTargetProperty <em>Target Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target Property</em>' reference.
+	 * @see #getTargetProperty()
+	 * @generated
+	 */
+	void setTargetProperty(LEntityAttribute value);
+
+	/**
+	 * Returns the value of the '<em><b>Locale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Locale</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Locale</em>' attribute.
+	 * @see #setLocale(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFormat_Locale()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getLocale();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getLocale <em>Locale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Locale</em>' attribute.
+	 * @see #getLocale()
+	 * @generated
+	 */
+	void setLocale(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Format</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Format</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Format</em>' attribute.
+	 * @see #setFormat(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeFormat_Format()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getFormat();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat#getFormat <em>Format</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Format</em>' attribute.
+	 * @see #getFormat()
+	 * @generated
+	 */
+	void setFormat(String value);
+
+} // DataInterchangeFormat
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeLazyResolver.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeLazyResolver.java
new file mode 100644
index 0000000..89385b4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeLazyResolver.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Lazy Resolver</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLazyResolver()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeLazyResolver extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model unique="false" proxyDataType="org.eclipse.osbp.xtext.datainterchange.InternalEObject" proxyUnique="false"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='<%org.eclipse.emf.ecore.resource.Resource%> _eResource = this.eResource();\n<%org.eclipse.emf.ecore.resource.ResourceSet%> _resourceSet = _eResource.getResourceSet();\nreturn <%org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3%>.resolve(proxy, _resourceSet);'"
+	 * @generated
+	 */
+	EObject eResolveProxy(InternalEObject proxy);
+
+} // DataInterchangeLazyResolver
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeLookup.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeLookup.java
new file mode 100644
index 0000000..1be25f3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeLookup.java
@@ -0,0 +1,306 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getEntity <em>Entity</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getTargetProperty <em>Target Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getQueryProperty <em>Query Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getElementMap <em>Element Map</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getDataMap <em>Data Map</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isAllowNoResult <em>Allow No Result</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isAllowNonuniqueResult <em>Allow Nonunique Result</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isCached <em>Cached</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getCacheSize <em>Cache Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getMarkerPath <em>Marker Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeLookup extends DataInterchangeLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Entity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Entity</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Entity</em>' reference.
+	 * @see #setEntity(LEntity)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_Entity()
+	 * @model
+	 * @generated
+	 */
+	LEntity getEntity();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getEntity <em>Entity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Entity</em>' reference.
+	 * @see #getEntity()
+	 * @generated
+	 */
+	void setEntity(LEntity value);
+
+	/**
+	 * Returns the value of the '<em><b>Target Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target Property</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 Property</em>' reference.
+	 * @see #setTargetProperty(LEntityReference)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_TargetProperty()
+	 * @model
+	 * @generated
+	 */
+	LEntityReference getTargetProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getTargetProperty <em>Target Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target Property</em>' reference.
+	 * @see #getTargetProperty()
+	 * @generated
+	 */
+	void setTargetProperty(LEntityReference value);
+
+	/**
+	 * Returns the value of the '<em><b>Query Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Query Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Query Property</em>' reference.
+	 * @see #setQueryProperty(LEntityAttribute)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_QueryProperty()
+	 * @model
+	 * @generated
+	 */
+	LEntityAttribute getQueryProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getQueryProperty <em>Query Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Query Property</em>' reference.
+	 * @see #getQueryProperty()
+	 * @generated
+	 */
+	void setQueryProperty(LEntityAttribute value);
+
+	/**
+	 * Returns the value of the '<em><b>Element Map</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Element Map</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Element Map</em>' attribute.
+	 * @see #setElementMap(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_ElementMap()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getElementMap();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getElementMap <em>Element Map</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Element Map</em>' attribute.
+	 * @see #getElementMap()
+	 * @generated
+	 */
+	void setElementMap(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Data Map</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data Map</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data Map</em>' attribute.
+	 * @see #setDataMap(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_DataMap()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getDataMap();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getDataMap <em>Data Map</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Data Map</em>' attribute.
+	 * @see #getDataMap()
+	 * @generated
+	 */
+	void setDataMap(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Allow No Result</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Allow No Result</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Allow No Result</em>' attribute.
+	 * @see #setAllowNoResult(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_AllowNoResult()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isAllowNoResult();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isAllowNoResult <em>Allow No Result</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Allow No Result</em>' attribute.
+	 * @see #isAllowNoResult()
+	 * @generated
+	 */
+	void setAllowNoResult(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Allow Nonunique Result</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Allow Nonunique Result</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Allow Nonunique Result</em>' attribute.
+	 * @see #setAllowNonuniqueResult(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_AllowNonuniqueResult()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isAllowNonuniqueResult();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isAllowNonuniqueResult <em>Allow Nonunique Result</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Allow Nonunique Result</em>' attribute.
+	 * @see #isAllowNonuniqueResult()
+	 * @generated
+	 */
+	void setAllowNonuniqueResult(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Cached</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cached</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cached</em>' attribute.
+	 * @see #setCached(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_Cached()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isCached();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#isCached <em>Cached</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cached</em>' attribute.
+	 * @see #isCached()
+	 * @generated
+	 */
+	void setCached(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Cache Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cache Size</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Cache Size</em>' attribute.
+	 * @see #setCacheSize(int)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_CacheSize()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getCacheSize();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getCacheSize <em>Cache Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Cache Size</em>' attribute.
+	 * @see #getCacheSize()
+	 * @generated
+	 */
+	void setCacheSize(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Marker Path</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Marker Path</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Marker Path</em>' containment reference.
+	 * @see #setMarkerPath(DataInterchangeMarkerPath)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeLookup_MarkerPath()
+	 * @model containment="true"
+	 * @generated
+	 */
+	DataInterchangeMarkerPath getMarkerPath();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup#getMarkerPath <em>Marker Path</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Marker Path</em>' containment reference.
+	 * @see #getMarkerPath()
+	 * @generated
+	 */
+	void setMarkerPath(DataInterchangeMarkerPath value);
+
+} // DataInterchangeLookup
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeMapping.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeMapping.java
new file mode 100644
index 0000000..a078240
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeMapping.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping#getProperty <em>Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping#getData <em>Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeMapping()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeMapping extends DataInterchangeLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Property</em>' reference.
+	 * @see #setProperty(LEntityAttribute)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeMapping_Property()
+	 * @model
+	 * @generated
+	 */
+	LEntityAttribute getProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping#getProperty <em>Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Property</em>' reference.
+	 * @see #getProperty()
+	 * @generated
+	 */
+	void setProperty(LEntityAttribute value);
+
+	/**
+	 * Returns the value of the '<em><b>Data</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Data</em>' attribute.
+	 * @see #setData(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeMapping_Data()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getData();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping#getData <em>Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Data</em>' attribute.
+	 * @see #getData()
+	 * @generated
+	 */
+	void setData(String value);
+
+} // DataInterchangeMapping
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeMarkerEntity.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeMarkerEntity.java
new file mode 100644
index 0000000..4f05600
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeMarkerEntity.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Marker Entity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#isMarkLatest <em>Mark Latest</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#getMarkerEntity <em>Marker Entity</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#getMarkerProperty <em>Marker Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeMarkerEntity()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeMarkerEntity extends DataInterchangeLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Mark Latest</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Mark Latest</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Mark Latest</em>' attribute.
+	 * @see #setMarkLatest(boolean)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeMarkerEntity_MarkLatest()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isMarkLatest();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#isMarkLatest <em>Mark Latest</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Mark Latest</em>' attribute.
+	 * @see #isMarkLatest()
+	 * @generated
+	 */
+	void setMarkLatest(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Marker Entity</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Marker Entity</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Marker Entity</em>' reference.
+	 * @see #setMarkerEntity(LEntity)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeMarkerEntity_MarkerEntity()
+	 * @model
+	 * @generated
+	 */
+	LEntity getMarkerEntity();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#getMarkerEntity <em>Marker Entity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Marker Entity</em>' reference.
+	 * @see #getMarkerEntity()
+	 * @generated
+	 */
+	void setMarkerEntity(LEntity value);
+
+	/**
+	 * Returns the value of the '<em><b>Marker Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Marker Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Marker Property</em>' reference.
+	 * @see #setMarkerProperty(LEntityAttribute)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeMarkerEntity_MarkerProperty()
+	 * @model
+	 * @generated
+	 */
+	LEntityAttribute getMarkerProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity#getMarkerProperty <em>Marker Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Marker Property</em>' reference.
+	 * @see #getMarkerProperty()
+	 * @generated
+	 */
+	void setMarkerProperty(LEntityAttribute value);
+
+} // DataInterchangeMarkerEntity
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeMarkerPath.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeMarkerPath.java
new file mode 100644
index 0000000..662f2f8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeMarkerPath.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Marker Path</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath#getPath <em>Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeMarkerPath()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeMarkerPath extends DataInterchangeLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Path</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Path</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Path</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeMarkerPath_Path()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DataInterchangeMarkerEntity> getPath();
+
+} // DataInterchangeMarkerPath
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeModel.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeModel.java
new file mode 100644
index 0000000..36a8640
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangeModel.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel#getPackages <em>Packages</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeModel()
+ * @model
+ * @generated
+ */
+public interface DataInterchangeModel extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Packages</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Packages</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Packages</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangeModel_Packages()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DataInterchangePackage> getPackages();
+
+} // DataInterchangeModel
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangePackage.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangePackage.java
new file mode 100644
index 0000000..28b731f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangePackage.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Package</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage#getTitle <em>Title</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage#getDatInts <em>Dat Ints</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangePackage()
+ * @model
+ * @generated
+ */
+public interface DataInterchangePackage extends LPackage {
+	/**
+	 * Returns the value of the '<em><b>Title</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Title</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Title</em>' attribute.
+	 * @see #setTitle(String)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangePackage_Title()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getTitle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage#getTitle <em>Title</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Title</em>' attribute.
+	 * @see #getTitle()
+	 * @generated
+	 */
+	void setTitle(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Dat Ints</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.datainterchange.DataInterchange}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Dat Ints</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Dat Ints</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangePackage_DatInts()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DataInterchange> getDatInts();
+
+} // DataInterchangePackage
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangePredefinedExpression.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangePredefinedExpression.java
new file mode 100644
index 0000000..bc6b974
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/DataInterchangePredefinedExpression.java
@@ -0,0 +1,93 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Interchange Predefined Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression#getBean <em>Bean</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression#getBeanType <em>Bean Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangePredefinedExpression()
+ * @model
+ * @generated
+ */
+public interface DataInterchangePredefinedExpression extends DataInterchangeExpression {
+	/**
+	 * Returns the value of the '<em><b>Bean</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bean</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bean</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum
+	 * @see #setBean(PredefinedBeanEnum)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangePredefinedExpression_Bean()
+	 * @model unique="false"
+	 * @generated
+	 */
+	PredefinedBeanEnum getBean();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression#getBean <em>Bean</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bean</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum
+	 * @see #getBean()
+	 * @generated
+	 */
+	void setBean(PredefinedBeanEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Bean Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bean Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bean Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum
+	 * @see #setBeanType(PredefinedBeanTypeEnum)
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getDataInterchangePredefinedExpression_BeanType()
+	 * @model unique="false"
+	 * @generated
+	 */
+	PredefinedBeanTypeEnum getBeanType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression#getBeanType <em>Bean Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bean Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum
+	 * @see #getBeanType()
+	 * @generated
+	 */
+	void setBeanType(PredefinedBeanTypeEnum value);
+
+} // DataInterchangePredefinedExpression
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/PredefinedBeanEnum.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/PredefinedBeanEnum.java
new file mode 100644
index 0000000..8f67e31
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/PredefinedBeanEnum.java
@@ -0,0 +1,244 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Predefined Bean Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getPredefinedBeanEnum()
+ * @model
+ * @generated
+ */
+public enum PredefinedBeanEnum implements Enumerator {
+	/**
+	 * The '<em><b>Now</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NOW_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NOW(0, "now", "NowDate"),
+
+	/**
+	 * The '<em><b>Start</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #START_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	START(0, "start", "StartDate"),
+
+	/**
+	 * The '<em><b>UUID</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UUID_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UUID(0, "UUID", "UniversallyUniqueIdentifier");
+
+	/**
+	 * The '<em><b>Now</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Now</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NOW
+	 * @model name="now" literal="NowDate"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NOW_VALUE = 0;
+
+	/**
+	 * The '<em><b>Start</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Start</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #START
+	 * @model name="start" literal="StartDate"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int START_VALUE = 0;
+
+	/**
+	 * The '<em><b>UUID</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>UUID</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #UUID
+	 * @model literal="UniversallyUniqueIdentifier"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UUID_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Predefined Bean Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final PredefinedBeanEnum[] VALUES_ARRAY =
+		new PredefinedBeanEnum[] {
+			NOW,
+			START,
+			UUID,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Predefined Bean Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<PredefinedBeanEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Predefined Bean Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PredefinedBeanEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PredefinedBeanEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Predefined Bean Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PredefinedBeanEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PredefinedBeanEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Predefined Bean Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PredefinedBeanEnum get(int value) {
+		switch (value) {
+			case NOW_VALUE: return NOW;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private PredefinedBeanEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //PredefinedBeanEnum
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/PredefinedBeanTypeEnum.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/PredefinedBeanTypeEnum.java
new file mode 100644
index 0000000..5c17e1d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/PredefinedBeanTypeEnum.java
@@ -0,0 +1,296 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Predefined Bean Type Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getPredefinedBeanTypeEnum()
+ * @model
+ * @generated
+ */
+public enum PredefinedBeanTypeEnum implements Enumerator {
+	/**
+	 * The '<em><b>Date</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DATE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DATE(0, "Date", "Date"),
+
+	/**
+	 * The '<em><b>Millis</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MILLIS_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MILLIS(0, "Millis", "Milliseconds"),
+
+	/**
+	 * The '<em><b>Nanos</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NANOS_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NANOS(0, "Nanos", "Nanoseconds"),
+
+	/**
+	 * The '<em><b>Random</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RANDOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RANDOM(0, "random", "Random"),
+
+	/**
+	 * The '<em><b>Exec Context</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EXEC_CONTEXT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	EXEC_CONTEXT(0, "execContext", "ExecuteContext");
+
+	/**
+	 * The '<em><b>Date</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Date</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DATE
+	 * @model name="Date"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DATE_VALUE = 0;
+
+	/**
+	 * The '<em><b>Millis</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Millis</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MILLIS
+	 * @model name="Millis" literal="Milliseconds"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MILLIS_VALUE = 0;
+
+	/**
+	 * The '<em><b>Nanos</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Nanos</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NANOS
+	 * @model name="Nanos" literal="Nanoseconds"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NANOS_VALUE = 0;
+
+	/**
+	 * The '<em><b>Random</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Random</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RANDOM
+	 * @model name="random" literal="Random"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RANDOM_VALUE = 0;
+
+	/**
+	 * The '<em><b>Exec Context</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Exec Context</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #EXEC_CONTEXT
+	 * @model name="execContext" literal="ExecuteContext"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EXEC_CONTEXT_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Predefined Bean Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final PredefinedBeanTypeEnum[] VALUES_ARRAY =
+		new PredefinedBeanTypeEnum[] {
+			DATE,
+			MILLIS,
+			NANOS,
+			RANDOM,
+			EXEC_CONTEXT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Predefined Bean Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<PredefinedBeanTypeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Predefined Bean Type Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PredefinedBeanTypeEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PredefinedBeanTypeEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Predefined Bean Type Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PredefinedBeanTypeEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PredefinedBeanTypeEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Predefined Bean Type Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PredefinedBeanTypeEnum get(int value) {
+		switch (value) {
+			case DATE_VALUE: return DATE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private PredefinedBeanTypeEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //PredefinedBeanTypeEnum
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/ProgressBarStylesEnum.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/ProgressBarStylesEnum.java
new file mode 100644
index 0000000..d112200
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/ProgressBarStylesEnum.java
@@ -0,0 +1,244 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Progress Bar Styles Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.datainterchange.DataDSLPackage#getProgressBarStylesEnum()
+ * @model
+ * @generated
+ */
+public enum ProgressBarStylesEnum implements Enumerator {
+	/**
+	 * The '<em><b>None</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NONE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NONE(0, "none", "none"),
+
+	/**
+	 * The '<em><b>Normal</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NORMAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NORMAL(0, "normal", "normal"),
+
+	/**
+	 * The '<em><b>Important</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #IMPORTANT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	IMPORTANT(0, "important", "important");
+
+	/**
+	 * The '<em><b>None</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>None</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @model name="none"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE_VALUE = 0;
+
+	/**
+	 * The '<em><b>Normal</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Normal</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NORMAL
+	 * @model name="normal"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NORMAL_VALUE = 0;
+
+	/**
+	 * The '<em><b>Important</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Important</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #IMPORTANT
+	 * @model name="important"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int IMPORTANT_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Progress Bar Styles Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ProgressBarStylesEnum[] VALUES_ARRAY =
+		new ProgressBarStylesEnum[] {
+			NONE,
+			NORMAL,
+			IMPORTANT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Progress Bar Styles Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<ProgressBarStylesEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Progress Bar Styles Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ProgressBarStylesEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ProgressBarStylesEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Progress Bar Styles Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ProgressBarStylesEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ProgressBarStylesEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Progress Bar Styles Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ProgressBarStylesEnum get(int value) {
+		switch (value) {
+			case NONE_VALUE: return NONE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ProgressBarStylesEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //ProgressBarStylesEnum
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataDSLFactoryImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataDSLFactoryImpl.java
new file mode 100644
index 0000000..b6fc386
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataDSLFactoryImpl.java
@@ -0,0 +1,393 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.osbp.xtext.datainterchange.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DataDSLFactoryImpl extends EFactoryImpl implements DataDSLFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DataDSLFactory init() {
+		try {
+			DataDSLFactory theDataDSLFactory = (DataDSLFactory)EPackage.Registry.INSTANCE.getEFactory(DataDSLPackage.eNS_URI);
+			if (theDataDSLFactory != null) {
+				return theDataDSLFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new DataDSLFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataDSLFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case DataDSLPackage.DATA_INTERCHANGE_MODEL: return createDataInterchangeModel();
+			case DataDSLPackage.DATA_INTERCHANGE_LAZY_RESOLVER: return createDataInterchangeLazyResolver();
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE: return createDataInterchangePackage();
+			case DataDSLPackage.DATA_INTERCHANGE_BASE: return createDataInterchangeBase();
+			case DataDSLPackage.DATA_INTERCHANGE: return createDataInterchange();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_XML: return createDataInterchangeFileXML();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV: return createDataInterchangeFileCSV();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI: return createDataInterchangeFileEDI();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN: return createDataInterchangeBean();
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT: return createDataInterchangeFormat();
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION: return createDataInterchangeEntityExpression();
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION: return createDataInterchangePredefinedExpression();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP: return createDataInterchangeLookup();
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_PATH: return createDataInterchangeMarkerPath();
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY: return createDataInterchangeMarkerEntity();
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING: return createDataInterchangeMapping();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case DataDSLPackage.PREDEFINED_BEAN_ENUM:
+				return createPredefinedBeanEnumFromString(eDataType, initialValue);
+			case DataDSLPackage.PREDEFINED_BEAN_TYPE_ENUM:
+				return createPredefinedBeanTypeEnumFromString(eDataType, initialValue);
+			case DataDSLPackage.PROGRESS_BAR_STYLES_ENUM:
+				return createProgressBarStylesEnumFromString(eDataType, initialValue);
+			case DataDSLPackage.INTERNAL_EOBJECT:
+				return createInternalEObjectFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case DataDSLPackage.PREDEFINED_BEAN_ENUM:
+				return convertPredefinedBeanEnumToString(eDataType, instanceValue);
+			case DataDSLPackage.PREDEFINED_BEAN_TYPE_ENUM:
+				return convertPredefinedBeanTypeEnumToString(eDataType, instanceValue);
+			case DataDSLPackage.PROGRESS_BAR_STYLES_ENUM:
+				return convertProgressBarStylesEnumToString(eDataType, instanceValue);
+			case DataDSLPackage.INTERNAL_EOBJECT:
+				return convertInternalEObjectToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeModel createDataInterchangeModel() {
+		DataInterchangeModelImpl dataInterchangeModel = new DataInterchangeModelImpl();
+		return dataInterchangeModel;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeLazyResolver createDataInterchangeLazyResolver() {
+		DataInterchangeLazyResolverImpl dataInterchangeLazyResolver = new DataInterchangeLazyResolverImpl();
+		return dataInterchangeLazyResolver;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangePackage createDataInterchangePackage() {
+		DataInterchangePackageImpl dataInterchangePackage = new DataInterchangePackageImpl();
+		return dataInterchangePackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeBase createDataInterchangeBase() {
+		DataInterchangeBaseImpl dataInterchangeBase = new DataInterchangeBaseImpl();
+		return dataInterchangeBase;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchange createDataInterchange() {
+		DataInterchangeImpl dataInterchange = new DataInterchangeImpl();
+		return dataInterchange;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeFileXML createDataInterchangeFileXML() {
+		DataInterchangeFileXMLImpl dataInterchangeFileXML = new DataInterchangeFileXMLImpl();
+		return dataInterchangeFileXML;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeFileCSV createDataInterchangeFileCSV() {
+		DataInterchangeFileCSVImpl dataInterchangeFileCSV = new DataInterchangeFileCSVImpl();
+		return dataInterchangeFileCSV;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeFileEDI createDataInterchangeFileEDI() {
+		DataInterchangeFileEDIImpl dataInterchangeFileEDI = new DataInterchangeFileEDIImpl();
+		return dataInterchangeFileEDI;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeBean createDataInterchangeBean() {
+		DataInterchangeBeanImpl dataInterchangeBean = new DataInterchangeBeanImpl();
+		return dataInterchangeBean;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeFormat createDataInterchangeFormat() {
+		DataInterchangeFormatImpl dataInterchangeFormat = new DataInterchangeFormatImpl();
+		return dataInterchangeFormat;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeEntityExpression createDataInterchangeEntityExpression() {
+		DataInterchangeEntityExpressionImpl dataInterchangeEntityExpression = new DataInterchangeEntityExpressionImpl();
+		return dataInterchangeEntityExpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangePredefinedExpression createDataInterchangePredefinedExpression() {
+		DataInterchangePredefinedExpressionImpl dataInterchangePredefinedExpression = new DataInterchangePredefinedExpressionImpl();
+		return dataInterchangePredefinedExpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeLookup createDataInterchangeLookup() {
+		DataInterchangeLookupImpl dataInterchangeLookup = new DataInterchangeLookupImpl();
+		return dataInterchangeLookup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeMarkerPath createDataInterchangeMarkerPath() {
+		DataInterchangeMarkerPathImpl dataInterchangeMarkerPath = new DataInterchangeMarkerPathImpl();
+		return dataInterchangeMarkerPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeMarkerEntity createDataInterchangeMarkerEntity() {
+		DataInterchangeMarkerEntityImpl dataInterchangeMarkerEntity = new DataInterchangeMarkerEntityImpl();
+		return dataInterchangeMarkerEntity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeMapping createDataInterchangeMapping() {
+		DataInterchangeMappingImpl dataInterchangeMapping = new DataInterchangeMappingImpl();
+		return dataInterchangeMapping;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PredefinedBeanEnum createPredefinedBeanEnumFromString(EDataType eDataType, String initialValue) {
+		PredefinedBeanEnum result = PredefinedBeanEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertPredefinedBeanEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PredefinedBeanTypeEnum createPredefinedBeanTypeEnumFromString(EDataType eDataType, String initialValue) {
+		PredefinedBeanTypeEnum result = PredefinedBeanTypeEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertPredefinedBeanTypeEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ProgressBarStylesEnum createProgressBarStylesEnumFromString(EDataType eDataType, String initialValue) {
+		ProgressBarStylesEnum result = ProgressBarStylesEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertProgressBarStylesEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public InternalEObject createInternalEObjectFromString(EDataType eDataType, String initialValue) {
+		return (InternalEObject)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertInternalEObjectToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataDSLPackage getDataDSLPackage() {
+		return (DataDSLPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static DataDSLPackage getPackage() {
+		return DataDSLPackage.eINSTANCE;
+	}
+
+} //DataDSLFactoryImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataDSLPackageImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataDSLPackageImpl.java
new file mode 100644
index 0000000..6417761
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataDSLPackageImpl.java
@@ -0,0 +1,1346 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.osbp.dsl.semantic.common.types.OSBPTypesPackage;
+
+import org.eclipse.osbp.dsl.semantic.entity.OSBPEntityPackage;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLFactory;
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBase;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLazyResolver;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression;
+import org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum;
+import org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum;
+import org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DataDSLPackageImpl extends EPackageImpl implements DataDSLPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeModelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeLazyResolverEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangePackageEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeBaseEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeFileEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeFileXMLEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeFileCSVEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeFileEDIEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeBeanEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeFormatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeExpressionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeEntityExpressionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangePredefinedExpressionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeLookupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeMarkerPathEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeMarkerEntityEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dataInterchangeMappingEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum predefinedBeanEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum predefinedBeanTypeEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum progressBarStylesEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType internalEObjectEDataType = 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.osbp.xtext.datainterchange.DataDSLPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private DataDSLPackageImpl() {
+		super(eNS_URI, DataDSLFactory.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 DataDSLPackage#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 DataDSLPackage init() {
+		if (isInited) return (DataDSLPackage)EPackage.Registry.INSTANCE.getEPackage(DataDSLPackage.eNS_URI);
+
+		// Obtain or create and register package
+		DataDSLPackageImpl theDataDSLPackage = (DataDSLPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DataDSLPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new DataDSLPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		OSBPEntityPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theDataDSLPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theDataDSLPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theDataDSLPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(DataDSLPackage.eNS_URI, theDataDSLPackage);
+		return theDataDSLPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeModel() {
+		return dataInterchangeModelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeModel_Packages() {
+		return (EReference)dataInterchangeModelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeLazyResolver() {
+		return dataInterchangeLazyResolverEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getDataInterchangeLazyResolver__EResolveProxy__InternalEObject() {
+		return dataInterchangeLazyResolverEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangePackage() {
+		return dataInterchangePackageEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangePackage_Title() {
+		return (EAttribute)dataInterchangePackageEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangePackage_DatInts() {
+		return (EReference)dataInterchangePackageEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeBase() {
+		return dataInterchangeBaseEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeBase_Name() {
+		return (EAttribute)dataInterchangeBaseEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchange() {
+		return dataInterchangeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchange_Description() {
+		return (EAttribute)dataInterchangeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchange_DescriptionValue() {
+		return (EAttribute)dataInterchangeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchange_CreateReport() {
+		return (EAttribute)dataInterchangeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchange_ElementSize() {
+		return (EAttribute)dataInterchangeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchange_ProgressBarStyle() {
+		return (EAttribute)dataInterchangeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchange_FileEndpoint() {
+		return (EReference)dataInterchangeEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchange_Path() {
+		return (EReference)dataInterchangeEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchange_RefreshEnabled() {
+		return (EAttribute)dataInterchangeEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchange_Refresh() {
+		return (EAttribute)dataInterchangeEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeFile() {
+		return dataInterchangeFileEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeFileXML() {
+		return dataInterchangeFileXMLEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileXML_FileURL() {
+		return (EAttribute)dataInterchangeFileXMLEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeFileCSV() {
+		return dataInterchangeFileCSVEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileCSV_FileURL() {
+		return (EAttribute)dataInterchangeFileCSVEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileCSV_Delimiter() {
+		return (EAttribute)dataInterchangeFileCSVEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileCSV_QuoteCharacter() {
+		return (EAttribute)dataInterchangeFileCSVEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileCSV_SkipLines() {
+		return (EAttribute)dataInterchangeFileCSVEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileCSV_Indent() {
+		return (EAttribute)dataInterchangeFileCSVEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileCSV_Encoding() {
+		return (EAttribute)dataInterchangeFileCSVEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileCSV_Strict() {
+		return (EAttribute)dataInterchangeFileCSVEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileCSV_ValidateHeader() {
+		return (EAttribute)dataInterchangeFileCSVEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeFileEDI() {
+		return dataInterchangeFileEDIEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileEDI_FileURL() {
+		return (EAttribute)dataInterchangeFileEDIEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileEDI_MappingModel() {
+		return (EAttribute)dataInterchangeFileEDIEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFileEDI_Validate() {
+		return (EAttribute)dataInterchangeFileEDIEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeBean() {
+		return dataInterchangeBeanEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeBean_Entity() {
+		return (EReference)dataInterchangeBeanEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeBean_MarkLatest() {
+		return (EAttribute)dataInterchangeBeanEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeBean_LatestProperty() {
+		return (EReference)dataInterchangeBeanEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeBean_RecordElement() {
+		return (EAttribute)dataInterchangeBeanEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeBean_RecordList() {
+		return (EAttribute)dataInterchangeBeanEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeBean_ElementMap() {
+		return (EAttribute)dataInterchangeBeanEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeBean_Lookup() {
+		return (EReference)dataInterchangeBeanEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeBean_Format() {
+		return (EReference)dataInterchangeBeanEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeBean_Expression() {
+		return (EReference)dataInterchangeBeanEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeBean_Mappings() {
+		return (EReference)dataInterchangeBeanEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeFormat() {
+		return dataInterchangeFormatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeFormat_TargetProperty() {
+		return (EReference)dataInterchangeFormatEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFormat_Locale() {
+		return (EAttribute)dataInterchangeFormatEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeFormat_Format() {
+		return (EAttribute)dataInterchangeFormatEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeExpression() {
+		return dataInterchangeExpressionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeExpression_TargetProperty() {
+		return (EReference)dataInterchangeExpressionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeEntityExpression() {
+		return dataInterchangeEntityExpressionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeEntityExpression_Entity() {
+		return (EReference)dataInterchangeEntityExpressionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeEntityExpression_Property() {
+		return (EReference)dataInterchangeEntityExpressionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangePredefinedExpression() {
+		return dataInterchangePredefinedExpressionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangePredefinedExpression_Bean() {
+		return (EAttribute)dataInterchangePredefinedExpressionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangePredefinedExpression_BeanType() {
+		return (EAttribute)dataInterchangePredefinedExpressionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeLookup() {
+		return dataInterchangeLookupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeLookup_Entity() {
+		return (EReference)dataInterchangeLookupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeLookup_TargetProperty() {
+		return (EReference)dataInterchangeLookupEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeLookup_QueryProperty() {
+		return (EReference)dataInterchangeLookupEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeLookup_ElementMap() {
+		return (EAttribute)dataInterchangeLookupEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeLookup_DataMap() {
+		return (EAttribute)dataInterchangeLookupEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeLookup_AllowNoResult() {
+		return (EAttribute)dataInterchangeLookupEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeLookup_AllowNonuniqueResult() {
+		return (EAttribute)dataInterchangeLookupEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeLookup_Cached() {
+		return (EAttribute)dataInterchangeLookupEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeLookup_CacheSize() {
+		return (EAttribute)dataInterchangeLookupEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeLookup_MarkerPath() {
+		return (EReference)dataInterchangeLookupEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeMarkerPath() {
+		return dataInterchangeMarkerPathEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeMarkerPath_Path() {
+		return (EReference)dataInterchangeMarkerPathEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeMarkerEntity() {
+		return dataInterchangeMarkerEntityEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeMarkerEntity_MarkLatest() {
+		return (EAttribute)dataInterchangeMarkerEntityEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeMarkerEntity_MarkerEntity() {
+		return (EReference)dataInterchangeMarkerEntityEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeMarkerEntity_MarkerProperty() {
+		return (EReference)dataInterchangeMarkerEntityEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDataInterchangeMapping() {
+		return dataInterchangeMappingEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDataInterchangeMapping_Property() {
+		return (EReference)dataInterchangeMappingEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDataInterchangeMapping_Data() {
+		return (EAttribute)dataInterchangeMappingEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getPredefinedBeanEnum() {
+		return predefinedBeanEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getPredefinedBeanTypeEnum() {
+		return predefinedBeanTypeEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getProgressBarStylesEnum() {
+		return progressBarStylesEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getInternalEObject() {
+		return internalEObjectEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataDSLFactory getDataDSLFactory() {
+		return (DataDSLFactory)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
+		dataInterchangeModelEClass = createEClass(DATA_INTERCHANGE_MODEL);
+		createEReference(dataInterchangeModelEClass, DATA_INTERCHANGE_MODEL__PACKAGES);
+
+		dataInterchangeLazyResolverEClass = createEClass(DATA_INTERCHANGE_LAZY_RESOLVER);
+		createEOperation(dataInterchangeLazyResolverEClass, DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT);
+
+		dataInterchangePackageEClass = createEClass(DATA_INTERCHANGE_PACKAGE);
+		createEAttribute(dataInterchangePackageEClass, DATA_INTERCHANGE_PACKAGE__TITLE);
+		createEReference(dataInterchangePackageEClass, DATA_INTERCHANGE_PACKAGE__DAT_INTS);
+
+		dataInterchangeBaseEClass = createEClass(DATA_INTERCHANGE_BASE);
+		createEAttribute(dataInterchangeBaseEClass, DATA_INTERCHANGE_BASE__NAME);
+
+		dataInterchangeEClass = createEClass(DATA_INTERCHANGE);
+		createEAttribute(dataInterchangeEClass, DATA_INTERCHANGE__DESCRIPTION);
+		createEAttribute(dataInterchangeEClass, DATA_INTERCHANGE__DESCRIPTION_VALUE);
+		createEAttribute(dataInterchangeEClass, DATA_INTERCHANGE__CREATE_REPORT);
+		createEAttribute(dataInterchangeEClass, DATA_INTERCHANGE__ELEMENT_SIZE);
+		createEAttribute(dataInterchangeEClass, DATA_INTERCHANGE__PROGRESS_BAR_STYLE);
+		createEReference(dataInterchangeEClass, DATA_INTERCHANGE__FILE_ENDPOINT);
+		createEReference(dataInterchangeEClass, DATA_INTERCHANGE__PATH);
+		createEAttribute(dataInterchangeEClass, DATA_INTERCHANGE__REFRESH_ENABLED);
+		createEAttribute(dataInterchangeEClass, DATA_INTERCHANGE__REFRESH);
+
+		dataInterchangeFileEClass = createEClass(DATA_INTERCHANGE_FILE);
+
+		dataInterchangeFileXMLEClass = createEClass(DATA_INTERCHANGE_FILE_XML);
+		createEAttribute(dataInterchangeFileXMLEClass, DATA_INTERCHANGE_FILE_XML__FILE_URL);
+
+		dataInterchangeFileCSVEClass = createEClass(DATA_INTERCHANGE_FILE_CSV);
+		createEAttribute(dataInterchangeFileCSVEClass, DATA_INTERCHANGE_FILE_CSV__FILE_URL);
+		createEAttribute(dataInterchangeFileCSVEClass, DATA_INTERCHANGE_FILE_CSV__DELIMITER);
+		createEAttribute(dataInterchangeFileCSVEClass, DATA_INTERCHANGE_FILE_CSV__QUOTE_CHARACTER);
+		createEAttribute(dataInterchangeFileCSVEClass, DATA_INTERCHANGE_FILE_CSV__SKIP_LINES);
+		createEAttribute(dataInterchangeFileCSVEClass, DATA_INTERCHANGE_FILE_CSV__INDENT);
+		createEAttribute(dataInterchangeFileCSVEClass, DATA_INTERCHANGE_FILE_CSV__ENCODING);
+		createEAttribute(dataInterchangeFileCSVEClass, DATA_INTERCHANGE_FILE_CSV__STRICT);
+		createEAttribute(dataInterchangeFileCSVEClass, DATA_INTERCHANGE_FILE_CSV__VALIDATE_HEADER);
+
+		dataInterchangeFileEDIEClass = createEClass(DATA_INTERCHANGE_FILE_EDI);
+		createEAttribute(dataInterchangeFileEDIEClass, DATA_INTERCHANGE_FILE_EDI__FILE_URL);
+		createEAttribute(dataInterchangeFileEDIEClass, DATA_INTERCHANGE_FILE_EDI__MAPPING_MODEL);
+		createEAttribute(dataInterchangeFileEDIEClass, DATA_INTERCHANGE_FILE_EDI__VALIDATE);
+
+		dataInterchangeBeanEClass = createEClass(DATA_INTERCHANGE_BEAN);
+		createEReference(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__ENTITY);
+		createEAttribute(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__MARK_LATEST);
+		createEReference(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__LATEST_PROPERTY);
+		createEAttribute(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__RECORD_ELEMENT);
+		createEAttribute(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__RECORD_LIST);
+		createEAttribute(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__ELEMENT_MAP);
+		createEReference(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__LOOKUP);
+		createEReference(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__FORMAT);
+		createEReference(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__EXPRESSION);
+		createEReference(dataInterchangeBeanEClass, DATA_INTERCHANGE_BEAN__MAPPINGS);
+
+		dataInterchangeFormatEClass = createEClass(DATA_INTERCHANGE_FORMAT);
+		createEReference(dataInterchangeFormatEClass, DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY);
+		createEAttribute(dataInterchangeFormatEClass, DATA_INTERCHANGE_FORMAT__LOCALE);
+		createEAttribute(dataInterchangeFormatEClass, DATA_INTERCHANGE_FORMAT__FORMAT);
+
+		dataInterchangeExpressionEClass = createEClass(DATA_INTERCHANGE_EXPRESSION);
+		createEReference(dataInterchangeExpressionEClass, DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY);
+
+		dataInterchangeEntityExpressionEClass = createEClass(DATA_INTERCHANGE_ENTITY_EXPRESSION);
+		createEReference(dataInterchangeEntityExpressionEClass, DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY);
+		createEReference(dataInterchangeEntityExpressionEClass, DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY);
+
+		dataInterchangePredefinedExpressionEClass = createEClass(DATA_INTERCHANGE_PREDEFINED_EXPRESSION);
+		createEAttribute(dataInterchangePredefinedExpressionEClass, DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN);
+		createEAttribute(dataInterchangePredefinedExpressionEClass, DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE);
+
+		dataInterchangeLookupEClass = createEClass(DATA_INTERCHANGE_LOOKUP);
+		createEReference(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__ENTITY);
+		createEReference(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY);
+		createEReference(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY);
+		createEAttribute(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__ELEMENT_MAP);
+		createEAttribute(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__DATA_MAP);
+		createEAttribute(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__ALLOW_NO_RESULT);
+		createEAttribute(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__ALLOW_NONUNIQUE_RESULT);
+		createEAttribute(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__CACHED);
+		createEAttribute(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__CACHE_SIZE);
+		createEReference(dataInterchangeLookupEClass, DATA_INTERCHANGE_LOOKUP__MARKER_PATH);
+
+		dataInterchangeMarkerPathEClass = createEClass(DATA_INTERCHANGE_MARKER_PATH);
+		createEReference(dataInterchangeMarkerPathEClass, DATA_INTERCHANGE_MARKER_PATH__PATH);
+
+		dataInterchangeMarkerEntityEClass = createEClass(DATA_INTERCHANGE_MARKER_ENTITY);
+		createEAttribute(dataInterchangeMarkerEntityEClass, DATA_INTERCHANGE_MARKER_ENTITY__MARK_LATEST);
+		createEReference(dataInterchangeMarkerEntityEClass, DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY);
+		createEReference(dataInterchangeMarkerEntityEClass, DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY);
+
+		dataInterchangeMappingEClass = createEClass(DATA_INTERCHANGE_MAPPING);
+		createEReference(dataInterchangeMappingEClass, DATA_INTERCHANGE_MAPPING__PROPERTY);
+		createEAttribute(dataInterchangeMappingEClass, DATA_INTERCHANGE_MAPPING__DATA);
+
+		// Create enums
+		predefinedBeanEnumEEnum = createEEnum(PREDEFINED_BEAN_ENUM);
+		predefinedBeanTypeEnumEEnum = createEEnum(PREDEFINED_BEAN_TYPE_ENUM);
+		progressBarStylesEnumEEnum = createEEnum(PROGRESS_BAR_STYLES_ENUM);
+
+		// Create data types
+		internalEObjectEDataType = createEDataType(INTERNAL_EOBJECT);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+		OSBPTypesPackage theOSBPTypesPackage = (OSBPTypesPackage)EPackage.Registry.INSTANCE.getEPackage(OSBPTypesPackage.eNS_URI);
+		OSBPEntityPackage theOSBPEntityPackage = (OSBPEntityPackage)EPackage.Registry.INSTANCE.getEPackage(OSBPEntityPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		dataInterchangePackageEClass.getESuperTypes().add(theOSBPTypesPackage.getLPackage());
+		dataInterchangeBaseEClass.getESuperTypes().add(this.getDataInterchangeLazyResolver());
+		dataInterchangeEClass.getESuperTypes().add(this.getDataInterchangeBase());
+		dataInterchangeFileEClass.getESuperTypes().add(this.getDataInterchangeLazyResolver());
+		dataInterchangeFileXMLEClass.getESuperTypes().add(this.getDataInterchangeFile());
+		dataInterchangeFileCSVEClass.getESuperTypes().add(this.getDataInterchangeFile());
+		dataInterchangeFileEDIEClass.getESuperTypes().add(this.getDataInterchangeFile());
+		dataInterchangeBeanEClass.getESuperTypes().add(this.getDataInterchangeLazyResolver());
+		dataInterchangeFormatEClass.getESuperTypes().add(this.getDataInterchangeLazyResolver());
+		dataInterchangeExpressionEClass.getESuperTypes().add(this.getDataInterchangeLazyResolver());
+		dataInterchangeEntityExpressionEClass.getESuperTypes().add(this.getDataInterchangeExpression());
+		dataInterchangePredefinedExpressionEClass.getESuperTypes().add(this.getDataInterchangeExpression());
+		dataInterchangeLookupEClass.getESuperTypes().add(this.getDataInterchangeLazyResolver());
+		dataInterchangeMarkerPathEClass.getESuperTypes().add(this.getDataInterchangeLazyResolver());
+		dataInterchangeMarkerEntityEClass.getESuperTypes().add(this.getDataInterchangeLazyResolver());
+		dataInterchangeMappingEClass.getESuperTypes().add(this.getDataInterchangeLazyResolver());
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(dataInterchangeModelEClass, DataInterchangeModel.class, "DataInterchangeModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataInterchangeModel_Packages(), this.getDataInterchangePackage(), null, "packages", null, 0, -1, DataInterchangeModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeLazyResolverEClass, DataInterchangeLazyResolver.class, "DataInterchangeLazyResolver", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		EOperation op = initEOperation(getDataInterchangeLazyResolver__EResolveProxy__InternalEObject(), theEcorePackage.getEObject(), "eResolveProxy", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getInternalEObject(), "proxy", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+		initEClass(dataInterchangePackageEClass, DataInterchangePackage.class, "DataInterchangePackage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDataInterchangePackage_Title(), theEcorePackage.getEString(), "title", null, 0, 1, DataInterchangePackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangePackage_DatInts(), this.getDataInterchange(), null, "datInts", null, 0, -1, DataInterchangePackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeBaseEClass, DataInterchangeBase.class, "DataInterchangeBase", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDataInterchangeBase_Name(), theEcorePackage.getEString(), "name", null, 0, 1, DataInterchangeBase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeEClass, DataInterchange.class, "DataInterchange", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDataInterchange_Description(), theEcorePackage.getEBoolean(), "description", null, 0, 1, DataInterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchange_DescriptionValue(), theEcorePackage.getEString(), "descriptionValue", null, 0, 1, DataInterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchange_CreateReport(), theEcorePackage.getEBoolean(), "createReport", null, 0, 1, DataInterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchange_ElementSize(), theEcorePackage.getEInt(), "elementSize", null, 0, 1, DataInterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchange_ProgressBarStyle(), this.getProgressBarStylesEnum(), "progressBarStyle", null, 0, 1, DataInterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchange_FileEndpoint(), this.getDataInterchangeFile(), null, "fileEndpoint", null, 0, 1, DataInterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchange_Path(), this.getDataInterchangeBean(), null, "path", null, 0, -1, DataInterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchange_RefreshEnabled(), theEcorePackage.getEBoolean(), "refreshEnabled", null, 0, 1, DataInterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchange_Refresh(), theEcorePackage.getEString(), "refresh", null, 0, 1, DataInterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeFileEClass, DataInterchangeFile.class, "DataInterchangeFile", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(dataInterchangeFileXMLEClass, DataInterchangeFileXML.class, "DataInterchangeFileXML", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDataInterchangeFileXML_FileURL(), theEcorePackage.getEString(), "fileURL", null, 0, 1, DataInterchangeFileXML.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeFileCSVEClass, DataInterchangeFileCSV.class, "DataInterchangeFileCSV", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDataInterchangeFileCSV_FileURL(), theEcorePackage.getEString(), "fileURL", null, 0, 1, DataInterchangeFileCSV.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFileCSV_Delimiter(), theEcorePackage.getEString(), "delimiter", null, 0, 1, DataInterchangeFileCSV.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFileCSV_QuoteCharacter(), theEcorePackage.getEString(), "quoteCharacter", null, 0, 1, DataInterchangeFileCSV.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFileCSV_SkipLines(), theEcorePackage.getEInt(), "skipLines", null, 0, 1, DataInterchangeFileCSV.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFileCSV_Indent(), theEcorePackage.getEBoolean(), "indent", null, 0, 1, DataInterchangeFileCSV.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFileCSV_Encoding(), theEcorePackage.getEString(), "encoding", null, 0, 1, DataInterchangeFileCSV.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFileCSV_Strict(), theEcorePackage.getEBoolean(), "strict", null, 0, 1, DataInterchangeFileCSV.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFileCSV_ValidateHeader(), theEcorePackage.getEBoolean(), "validateHeader", null, 0, 1, DataInterchangeFileCSV.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeFileEDIEClass, DataInterchangeFileEDI.class, "DataInterchangeFileEDI", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDataInterchangeFileEDI_FileURL(), theEcorePackage.getEString(), "fileURL", null, 0, 1, DataInterchangeFileEDI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFileEDI_MappingModel(), theEcorePackage.getEString(), "mappingModel", null, 0, 1, DataInterchangeFileEDI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFileEDI_Validate(), theEcorePackage.getEBoolean(), "validate", null, 0, 1, DataInterchangeFileEDI.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeBeanEClass, DataInterchangeBean.class, "DataInterchangeBean", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataInterchangeBean_Entity(), theOSBPEntityPackage.getLEntity(), null, "entity", null, 0, 1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeBean_MarkLatest(), theEcorePackage.getEBoolean(), "markLatest", null, 0, 1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeBean_LatestProperty(), theOSBPEntityPackage.getLEntityAttribute(), null, "latestProperty", null, 0, 1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeBean_RecordElement(), theEcorePackage.getEBoolean(), "recordElement", null, 0, 1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeBean_RecordList(), theEcorePackage.getEBoolean(), "recordList", null, 0, 1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeBean_ElementMap(), theEcorePackage.getEString(), "elementMap", null, 0, 1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeBean_Lookup(), this.getDataInterchangeLookup(), null, "lookup", null, 0, -1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeBean_Format(), this.getDataInterchangeFormat(), null, "format", null, 0, -1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeBean_Expression(), this.getDataInterchangeExpression(), null, "expression", null, 0, -1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeBean_Mappings(), this.getDataInterchangeMapping(), null, "mappings", null, 0, -1, DataInterchangeBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeFormatEClass, DataInterchangeFormat.class, "DataInterchangeFormat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataInterchangeFormat_TargetProperty(), theOSBPEntityPackage.getLEntityAttribute(), null, "targetProperty", null, 0, 1, DataInterchangeFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFormat_Locale(), theEcorePackage.getEString(), "locale", null, 0, 1, DataInterchangeFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeFormat_Format(), theEcorePackage.getEString(), "format", null, 0, 1, DataInterchangeFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeExpressionEClass, DataInterchangeExpression.class, "DataInterchangeExpression", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataInterchangeExpression_TargetProperty(), theOSBPEntityPackage.getLEntityAttribute(), null, "targetProperty", null, 0, 1, DataInterchangeExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeEntityExpressionEClass, DataInterchangeEntityExpression.class, "DataInterchangeEntityExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataInterchangeEntityExpression_Entity(), theOSBPEntityPackage.getLEntity(), null, "entity", null, 0, 1, DataInterchangeEntityExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeEntityExpression_Property(), theOSBPEntityPackage.getLEntityAttribute(), null, "property", null, 0, 1, DataInterchangeEntityExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangePredefinedExpressionEClass, DataInterchangePredefinedExpression.class, "DataInterchangePredefinedExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDataInterchangePredefinedExpression_Bean(), this.getPredefinedBeanEnum(), "bean", null, 0, 1, DataInterchangePredefinedExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangePredefinedExpression_BeanType(), this.getPredefinedBeanTypeEnum(), "beanType", null, 0, 1, DataInterchangePredefinedExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeLookupEClass, DataInterchangeLookup.class, "DataInterchangeLookup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataInterchangeLookup_Entity(), theOSBPEntityPackage.getLEntity(), null, "entity", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeLookup_TargetProperty(), theOSBPEntityPackage.getLEntityReference(), null, "targetProperty", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeLookup_QueryProperty(), theOSBPEntityPackage.getLEntityAttribute(), null, "queryProperty", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeLookup_ElementMap(), theEcorePackage.getEString(), "elementMap", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeLookup_DataMap(), theEcorePackage.getEString(), "dataMap", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeLookup_AllowNoResult(), theEcorePackage.getEBoolean(), "allowNoResult", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeLookup_AllowNonuniqueResult(), theEcorePackage.getEBoolean(), "allowNonuniqueResult", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeLookup_Cached(), theEcorePackage.getEBoolean(), "cached", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeLookup_CacheSize(), theEcorePackage.getEInt(), "cacheSize", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeLookup_MarkerPath(), this.getDataInterchangeMarkerPath(), null, "markerPath", null, 0, 1, DataInterchangeLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeMarkerPathEClass, DataInterchangeMarkerPath.class, "DataInterchangeMarkerPath", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataInterchangeMarkerPath_Path(), this.getDataInterchangeMarkerEntity(), null, "path", null, 0, -1, DataInterchangeMarkerPath.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeMarkerEntityEClass, DataInterchangeMarkerEntity.class, "DataInterchangeMarkerEntity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDataInterchangeMarkerEntity_MarkLatest(), theEcorePackage.getEBoolean(), "markLatest", null, 0, 1, DataInterchangeMarkerEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeMarkerEntity_MarkerEntity(), theOSBPEntityPackage.getLEntity(), null, "markerEntity", null, 0, 1, DataInterchangeMarkerEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDataInterchangeMarkerEntity_MarkerProperty(), theOSBPEntityPackage.getLEntityAttribute(), null, "markerProperty", null, 0, 1, DataInterchangeMarkerEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dataInterchangeMappingEClass, DataInterchangeMapping.class, "DataInterchangeMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDataInterchangeMapping_Property(), theOSBPEntityPackage.getLEntityAttribute(), null, "property", null, 0, 1, DataInterchangeMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDataInterchangeMapping_Data(), theEcorePackage.getEString(), "data", null, 0, 1, DataInterchangeMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(predefinedBeanEnumEEnum, PredefinedBeanEnum.class, "PredefinedBeanEnum");
+		addEEnumLiteral(predefinedBeanEnumEEnum, PredefinedBeanEnum.NOW);
+		addEEnumLiteral(predefinedBeanEnumEEnum, PredefinedBeanEnum.START);
+		addEEnumLiteral(predefinedBeanEnumEEnum, PredefinedBeanEnum.UUID);
+
+		initEEnum(predefinedBeanTypeEnumEEnum, PredefinedBeanTypeEnum.class, "PredefinedBeanTypeEnum");
+		addEEnumLiteral(predefinedBeanTypeEnumEEnum, PredefinedBeanTypeEnum.DATE);
+		addEEnumLiteral(predefinedBeanTypeEnumEEnum, PredefinedBeanTypeEnum.MILLIS);
+		addEEnumLiteral(predefinedBeanTypeEnumEEnum, PredefinedBeanTypeEnum.NANOS);
+		addEEnumLiteral(predefinedBeanTypeEnumEEnum, PredefinedBeanTypeEnum.RANDOM);
+		addEEnumLiteral(predefinedBeanTypeEnumEEnum, PredefinedBeanTypeEnum.EXEC_CONTEXT);
+
+		initEEnum(progressBarStylesEnumEEnum, ProgressBarStylesEnum.class, "ProgressBarStylesEnum");
+		addEEnumLiteral(progressBarStylesEnumEEnum, ProgressBarStylesEnum.NONE);
+		addEEnumLiteral(progressBarStylesEnumEEnum, ProgressBarStylesEnum.NORMAL);
+		addEEnumLiteral(progressBarStylesEnumEEnum, ProgressBarStylesEnum.IMPORTANT);
+
+		// Initialize data types
+		initEDataType(internalEObjectEDataType, InternalEObject.class, "InternalEObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+		// Create resource
+		createResource(eNS_URI);
+
+		// Create annotations
+		// http://www.eclipse.org/emf/2002/Ecore
+		createEcoreAnnotations();
+	}
+
+	/**
+	 * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createEcoreAnnotations() {
+		String source = "http://www.eclipse.org/emf/2002/Ecore";	
+		addAnnotation
+		  (this, 
+		   source, 
+		   new String[] {
+			 "rootPackage", "datadsl"
+		   });
+	}
+
+} //DataDSLPackageImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeBaseImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeBaseImpl.java
new file mode 100644
index 0000000..7184074
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeBaseImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Base</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBaseImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeBaseImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeBase {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeBaseImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_BASE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BASE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_BASE__NAME:
+				return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_BASE__NAME:
+				setName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_BASE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_BASE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		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(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeBaseImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeBeanImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeBeanImpl.java
new file mode 100644
index 0000000..a4f8ba1
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeBeanImpl.java
@@ -0,0 +1,628 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.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.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Bean</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getEntity <em>Entity</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#isMarkLatest <em>Mark Latest</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getLatestProperty <em>Latest Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#isRecordElement <em>Record Element</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#isRecordList <em>Record List</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getElementMap <em>Element Map</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getLookup <em>Lookup</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getFormat <em>Format</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getExpression <em>Expression</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeBeanImpl#getMappings <em>Mappings</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeBeanImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeBean {
+	/**
+	 * The cached value of the '{@link #getEntity() <em>Entity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEntity()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntity entity;
+
+	/**
+	 * The default value of the '{@link #isMarkLatest() <em>Mark Latest</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMarkLatest()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARK_LATEST_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isMarkLatest() <em>Mark Latest</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMarkLatest()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean markLatest = MARK_LATEST_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getLatestProperty() <em>Latest Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLatestProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityAttribute latestProperty;
+
+	/**
+	 * The default value of the '{@link #isRecordElement() <em>Record Element</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRecordElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean RECORD_ELEMENT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRecordElement() <em>Record Element</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRecordElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean recordElement = RECORD_ELEMENT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isRecordList() <em>Record List</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRecordList()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean RECORD_LIST_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRecordList() <em>Record List</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRecordList()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean recordList = RECORD_LIST_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getElementMap() <em>Element Map</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElementMap()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ELEMENT_MAP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getElementMap() <em>Element Map</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElementMap()
+	 * @generated
+	 * @ordered
+	 */
+	protected String elementMap = ELEMENT_MAP_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getLookup() <em>Lookup</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLookup()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DataInterchangeLookup> lookup;
+
+	/**
+	 * The cached value of the '{@link #getFormat() <em>Format</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormat()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DataInterchangeFormat> format;
+
+	/**
+	 * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExpression()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DataInterchangeExpression> expression;
+
+	/**
+	 * The cached value of the '{@link #getMappings() <em>Mappings</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMappings()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DataInterchangeMapping> mappings;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeBeanImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_BEAN;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntity getEntity() {
+		if (entity != null && entity.eIsProxy()) {
+			InternalEObject oldEntity = (InternalEObject)entity;
+			entity = (LEntity)eResolveProxy(oldEntity);
+			if (entity != oldEntity) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY, oldEntity, entity));
+			}
+		}
+		return entity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntity basicGetEntity() {
+		return entity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEntity(LEntity newEntity) {
+		LEntity oldEntity = entity;
+		entity = newEntity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY, oldEntity, entity));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMarkLatest() {
+		return markLatest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarkLatest(boolean newMarkLatest) {
+		boolean oldMarkLatest = markLatest;
+		markLatest = newMarkLatest;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST, oldMarkLatest, markLatest));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute getLatestProperty() {
+		if (latestProperty != null && latestProperty.eIsProxy()) {
+			InternalEObject oldLatestProperty = (InternalEObject)latestProperty;
+			latestProperty = (LEntityAttribute)eResolveProxy(oldLatestProperty);
+			if (latestProperty != oldLatestProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY, oldLatestProperty, latestProperty));
+			}
+		}
+		return latestProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute basicGetLatestProperty() {
+		return latestProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLatestProperty(LEntityAttribute newLatestProperty) {
+		LEntityAttribute oldLatestProperty = latestProperty;
+		latestProperty = newLatestProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY, oldLatestProperty, latestProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRecordElement() {
+		return recordElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRecordElement(boolean newRecordElement) {
+		boolean oldRecordElement = recordElement;
+		recordElement = newRecordElement;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT, oldRecordElement, recordElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRecordList() {
+		return recordList;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRecordList(boolean newRecordList) {
+		boolean oldRecordList = recordList;
+		recordList = newRecordList;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST, oldRecordList, recordList));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getElementMap() {
+		return elementMap;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setElementMap(String newElementMap) {
+		String oldElementMap = elementMap;
+		elementMap = newElementMap;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP, oldElementMap, elementMap));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DataInterchangeLookup> getLookup() {
+		if (lookup == null) {
+			lookup = new EObjectContainmentEList<DataInterchangeLookup>(DataInterchangeLookup.class, this, DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP);
+		}
+		return lookup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DataInterchangeFormat> getFormat() {
+		if (format == null) {
+			format = new EObjectContainmentEList<DataInterchangeFormat>(DataInterchangeFormat.class, this, DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT);
+		}
+		return format;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DataInterchangeExpression> getExpression() {
+		if (expression == null) {
+			expression = new EObjectContainmentEList<DataInterchangeExpression>(DataInterchangeExpression.class, this, DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION);
+		}
+		return expression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DataInterchangeMapping> getMappings() {
+		if (mappings == null) {
+			mappings = new EObjectContainmentEList<DataInterchangeMapping>(DataInterchangeMapping.class, this, DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS);
+		}
+		return mappings;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
+				return ((InternalEList<?>)getLookup()).basicRemove(otherEnd, msgs);
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
+				return ((InternalEList<?>)getFormat()).basicRemove(otherEnd, msgs);
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
+				return ((InternalEList<?>)getExpression()).basicRemove(otherEnd, msgs);
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
+				return ((InternalEList<?>)getMappings()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY:
+				if (resolve) return getEntity();
+				return basicGetEntity();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST:
+				return isMarkLatest();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY:
+				if (resolve) return getLatestProperty();
+				return basicGetLatestProperty();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT:
+				return isRecordElement();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST:
+				return isRecordList();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP:
+				return getElementMap();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
+				return getLookup();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
+				return getFormat();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
+				return getExpression();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
+				return getMappings();
+		}
+		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 DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY:
+				setEntity((LEntity)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST:
+				setMarkLatest((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY:
+				setLatestProperty((LEntityAttribute)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT:
+				setRecordElement((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST:
+				setRecordList((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP:
+				setElementMap((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
+				getLookup().clear();
+				getLookup().addAll((Collection<? extends DataInterchangeLookup>)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
+				getFormat().clear();
+				getFormat().addAll((Collection<? extends DataInterchangeFormat>)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
+				getExpression().clear();
+				getExpression().addAll((Collection<? extends DataInterchangeExpression>)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
+				getMappings().clear();
+				getMappings().addAll((Collection<? extends DataInterchangeMapping>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY:
+				setEntity((LEntity)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST:
+				setMarkLatest(MARK_LATEST_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY:
+				setLatestProperty((LEntityAttribute)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT:
+				setRecordElement(RECORD_ELEMENT_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST:
+				setRecordList(RECORD_LIST_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP:
+				setElementMap(ELEMENT_MAP_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
+				getLookup().clear();
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
+				getFormat().clear();
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
+				getExpression().clear();
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
+				getMappings().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__ENTITY:
+				return entity != null;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__MARK_LATEST:
+				return markLatest != MARK_LATEST_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY:
+				return latestProperty != null;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_ELEMENT:
+				return recordElement != RECORD_ELEMENT_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__RECORD_LIST:
+				return recordList != RECORD_LIST_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__ELEMENT_MAP:
+				return ELEMENT_MAP_EDEFAULT == null ? elementMap != null : !ELEMENT_MAP_EDEFAULT.equals(elementMap);
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__LOOKUP:
+				return lookup != null && !lookup.isEmpty();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__FORMAT:
+				return format != null && !format.isEmpty();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__EXPRESSION:
+				return expression != null && !expression.isEmpty();
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN__MAPPINGS:
+				return mappings != null && !mappings.isEmpty();
+		}
+		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(" (markLatest: ");
+		result.append(markLatest);
+		result.append(", recordElement: ");
+		result.append(recordElement);
+		result.append(", recordList: ");
+		result.append(recordList);
+		result.append(", elementMap: ");
+		result.append(elementMap);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeBeanImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeEntityExpressionImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeEntityExpressionImpl.java
new file mode 100644
index 0000000..ff87128
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeEntityExpressionImpl.java
@@ -0,0 +1,289 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Entity Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeEntityExpressionImpl#getTargetProperty <em>Target Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeEntityExpressionImpl#getEntity <em>Entity</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeEntityExpressionImpl#getProperty <em>Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeEntityExpressionImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeEntityExpression {
+	/**
+	 * The cached value of the '{@link #getTargetProperty() <em>Target Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityAttribute targetProperty;
+
+	/**
+	 * The cached value of the '{@link #getEntity() <em>Entity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEntity()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntity entity;
+
+	/**
+	 * The cached value of the '{@link #getProperty() <em>Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityAttribute property;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeEntityExpressionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_ENTITY_EXPRESSION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute getTargetProperty() {
+		if (targetProperty != null && targetProperty.eIsProxy()) {
+			InternalEObject oldTargetProperty = (InternalEObject)targetProperty;
+			targetProperty = (LEntityAttribute)eResolveProxy(oldTargetProperty);
+			if (targetProperty != oldTargetProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__TARGET_PROPERTY, oldTargetProperty, targetProperty));
+			}
+		}
+		return targetProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute basicGetTargetProperty() {
+		return targetProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTargetProperty(LEntityAttribute newTargetProperty) {
+		LEntityAttribute oldTargetProperty = targetProperty;
+		targetProperty = newTargetProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__TARGET_PROPERTY, oldTargetProperty, targetProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntity getEntity() {
+		if (entity != null && entity.eIsProxy()) {
+			InternalEObject oldEntity = (InternalEObject)entity;
+			entity = (LEntity)eResolveProxy(oldEntity);
+			if (entity != oldEntity) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY, oldEntity, entity));
+			}
+		}
+		return entity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntity basicGetEntity() {
+		return entity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEntity(LEntity newEntity) {
+		LEntity oldEntity = entity;
+		entity = newEntity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY, oldEntity, entity));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute getProperty() {
+		if (property != null && property.eIsProxy()) {
+			InternalEObject oldProperty = (InternalEObject)property;
+			property = (LEntityAttribute)eResolveProxy(oldProperty);
+			if (property != oldProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY, oldProperty, property));
+			}
+		}
+		return property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute basicGetProperty() {
+		return property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProperty(LEntityAttribute newProperty) {
+		LEntityAttribute oldProperty = property;
+		property = newProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY, oldProperty, property));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__TARGET_PROPERTY:
+				if (resolve) return getTargetProperty();
+				return basicGetTargetProperty();
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY:
+				if (resolve) return getEntity();
+				return basicGetEntity();
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY:
+				if (resolve) return getProperty();
+				return basicGetProperty();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__TARGET_PROPERTY:
+				setTargetProperty((LEntityAttribute)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY:
+				setEntity((LEntity)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY:
+				setProperty((LEntityAttribute)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__TARGET_PROPERTY:
+				setTargetProperty((LEntityAttribute)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY:
+				setEntity((LEntity)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY:
+				setProperty((LEntityAttribute)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__TARGET_PROPERTY:
+				return targetProperty != null;
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY:
+				return entity != null;
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY:
+				return property != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DataInterchangeEntityExpressionImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFileCSVImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFileCSVImpl.java
new file mode 100644
index 0000000..62a8cad
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFileCSVImpl.java
@@ -0,0 +1,551 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange File CSV</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl#getFileURL <em>File URL</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl#getDelimiter <em>Delimiter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl#getQuoteCharacter <em>Quote Character</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl#getSkipLines <em>Skip Lines</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl#isIndent <em>Indent</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl#getEncoding <em>Encoding</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl#isStrict <em>Strict</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileCSVImpl#isValidateHeader <em>Validate Header</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeFileCSVImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeFileCSV {
+	/**
+	 * The default value of the '{@link #getFileURL() <em>File URL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFileURL()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FILE_URL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFileURL() <em>File URL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFileURL()
+	 * @generated
+	 * @ordered
+	 */
+	protected String fileURL = FILE_URL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDelimiter() <em>Delimiter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDelimiter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DELIMITER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDelimiter() <em>Delimiter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDelimiter()
+	 * @generated
+	 * @ordered
+	 */
+	protected String delimiter = DELIMITER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getQuoteCharacter() <em>Quote Character</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQuoteCharacter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUOTE_CHARACTER_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getQuoteCharacter() <em>Quote Character</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQuoteCharacter()
+	 * @generated
+	 * @ordered
+	 */
+	protected String quoteCharacter = QUOTE_CHARACTER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSkipLines() <em>Skip Lines</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSkipLines()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int SKIP_LINES_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getSkipLines() <em>Skip Lines</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSkipLines()
+	 * @generated
+	 * @ordered
+	 */
+	protected int skipLines = SKIP_LINES_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isIndent() <em>Indent</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIndent()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean INDENT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isIndent() <em>Indent</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isIndent()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean indent = INDENT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getEncoding() <em>Encoding</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEncoding()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ENCODING_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getEncoding() <em>Encoding</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEncoding()
+	 * @generated
+	 * @ordered
+	 */
+	protected String encoding = ENCODING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isStrict() <em>Strict</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStrict()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean STRICT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isStrict() <em>Strict</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isStrict()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean strict = STRICT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isValidateHeader() <em>Validate Header</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isValidateHeader()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VALIDATE_HEADER_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isValidateHeader() <em>Validate Header</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isValidateHeader()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean validateHeader = VALIDATE_HEADER_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeFileCSVImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_FILE_CSV;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFileURL() {
+		return fileURL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFileURL(String newFileURL) {
+		String oldFileURL = fileURL;
+		fileURL = newFileURL;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__FILE_URL, oldFileURL, fileURL));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDelimiter() {
+		return delimiter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDelimiter(String newDelimiter) {
+		String oldDelimiter = delimiter;
+		delimiter = newDelimiter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__DELIMITER, oldDelimiter, delimiter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getQuoteCharacter() {
+		return quoteCharacter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setQuoteCharacter(String newQuoteCharacter) {
+		String oldQuoteCharacter = quoteCharacter;
+		quoteCharacter = newQuoteCharacter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__QUOTE_CHARACTER, oldQuoteCharacter, quoteCharacter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getSkipLines() {
+		return skipLines;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSkipLines(int newSkipLines) {
+		int oldSkipLines = skipLines;
+		skipLines = newSkipLines;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__SKIP_LINES, oldSkipLines, skipLines));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isIndent() {
+		return indent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIndent(boolean newIndent) {
+		boolean oldIndent = indent;
+		indent = newIndent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__INDENT, oldIndent, indent));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getEncoding() {
+		return encoding;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEncoding(String newEncoding) {
+		String oldEncoding = encoding;
+		encoding = newEncoding;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__ENCODING, oldEncoding, encoding));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isStrict() {
+		return strict;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStrict(boolean newStrict) {
+		boolean oldStrict = strict;
+		strict = newStrict;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__STRICT, oldStrict, strict));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isValidateHeader() {
+		return validateHeader;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValidateHeader(boolean newValidateHeader) {
+		boolean oldValidateHeader = validateHeader;
+		validateHeader = newValidateHeader;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__VALIDATE_HEADER, oldValidateHeader, validateHeader));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__FILE_URL:
+				return getFileURL();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__DELIMITER:
+				return getDelimiter();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__QUOTE_CHARACTER:
+				return getQuoteCharacter();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__SKIP_LINES:
+				return getSkipLines();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__INDENT:
+				return isIndent();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__ENCODING:
+				return getEncoding();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__STRICT:
+				return isStrict();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__VALIDATE_HEADER:
+				return isValidateHeader();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__FILE_URL:
+				setFileURL((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__DELIMITER:
+				setDelimiter((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__QUOTE_CHARACTER:
+				setQuoteCharacter((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__SKIP_LINES:
+				setSkipLines((Integer)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__INDENT:
+				setIndent((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__ENCODING:
+				setEncoding((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__STRICT:
+				setStrict((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__VALIDATE_HEADER:
+				setValidateHeader((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__FILE_URL:
+				setFileURL(FILE_URL_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__DELIMITER:
+				setDelimiter(DELIMITER_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__QUOTE_CHARACTER:
+				setQuoteCharacter(QUOTE_CHARACTER_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__SKIP_LINES:
+				setSkipLines(SKIP_LINES_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__INDENT:
+				setIndent(INDENT_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__ENCODING:
+				setEncoding(ENCODING_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__STRICT:
+				setStrict(STRICT_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__VALIDATE_HEADER:
+				setValidateHeader(VALIDATE_HEADER_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__FILE_URL:
+				return FILE_URL_EDEFAULT == null ? fileURL != null : !FILE_URL_EDEFAULT.equals(fileURL);
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__DELIMITER:
+				return DELIMITER_EDEFAULT == null ? delimiter != null : !DELIMITER_EDEFAULT.equals(delimiter);
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__QUOTE_CHARACTER:
+				return QUOTE_CHARACTER_EDEFAULT == null ? quoteCharacter != null : !QUOTE_CHARACTER_EDEFAULT.equals(quoteCharacter);
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__SKIP_LINES:
+				return skipLines != SKIP_LINES_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__INDENT:
+				return indent != INDENT_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__ENCODING:
+				return ENCODING_EDEFAULT == null ? encoding != null : !ENCODING_EDEFAULT.equals(encoding);
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__STRICT:
+				return strict != STRICT_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV__VALIDATE_HEADER:
+				return validateHeader != VALIDATE_HEADER_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(" (fileURL: ");
+		result.append(fileURL);
+		result.append(", delimiter: ");
+		result.append(delimiter);
+		result.append(", quoteCharacter: ");
+		result.append(quoteCharacter);
+		result.append(", skipLines: ");
+		result.append(skipLines);
+		result.append(", indent: ");
+		result.append(indent);
+		result.append(", encoding: ");
+		result.append(encoding);
+		result.append(", strict: ");
+		result.append(strict);
+		result.append(", validateHeader: ");
+		result.append(validateHeader);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeFileCSVImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFileEDIImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFileEDIImpl.java
new file mode 100644
index 0000000..9b78c48
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFileEDIImpl.java
@@ -0,0 +1,281 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange File EDI</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileEDIImpl#getFileURL <em>File URL</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileEDIImpl#getMappingModel <em>Mapping Model</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileEDIImpl#isValidate <em>Validate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeFileEDIImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeFileEDI {
+	/**
+	 * The default value of the '{@link #getFileURL() <em>File URL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFileURL()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FILE_URL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFileURL() <em>File URL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFileURL()
+	 * @generated
+	 * @ordered
+	 */
+	protected String fileURL = FILE_URL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMappingModel() <em>Mapping Model</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMappingModel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String MAPPING_MODEL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getMappingModel() <em>Mapping Model</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMappingModel()
+	 * @generated
+	 * @ordered
+	 */
+	protected String mappingModel = MAPPING_MODEL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isValidate() <em>Validate</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isValidate()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VALIDATE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isValidate() <em>Validate</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isValidate()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean validate = VALIDATE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeFileEDIImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_FILE_EDI;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFileURL() {
+		return fileURL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFileURL(String newFileURL) {
+		String oldFileURL = fileURL;
+		fileURL = newFileURL;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__FILE_URL, oldFileURL, fileURL));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getMappingModel() {
+		return mappingModel;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMappingModel(String newMappingModel) {
+		String oldMappingModel = mappingModel;
+		mappingModel = newMappingModel;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__MAPPING_MODEL, oldMappingModel, mappingModel));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isValidate() {
+		return validate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValidate(boolean newValidate) {
+		boolean oldValidate = validate;
+		validate = newValidate;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__VALIDATE, oldValidate, validate));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__FILE_URL:
+				return getFileURL();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__MAPPING_MODEL:
+				return getMappingModel();
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__VALIDATE:
+				return isValidate();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__FILE_URL:
+				setFileURL((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__MAPPING_MODEL:
+				setMappingModel((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__VALIDATE:
+				setValidate((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__FILE_URL:
+				setFileURL(FILE_URL_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__MAPPING_MODEL:
+				setMappingModel(MAPPING_MODEL_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__VALIDATE:
+				setValidate(VALIDATE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__FILE_URL:
+				return FILE_URL_EDEFAULT == null ? fileURL != null : !FILE_URL_EDEFAULT.equals(fileURL);
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__MAPPING_MODEL:
+				return MAPPING_MODEL_EDEFAULT == null ? mappingModel != null : !MAPPING_MODEL_EDEFAULT.equals(mappingModel);
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI__VALIDATE:
+				return validate != VALIDATE_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(" (fileURL: ");
+		result.append(fileURL);
+		result.append(", mappingModel: ");
+		result.append(mappingModel);
+		result.append(", validate: ");
+		result.append(validate);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeFileEDIImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFileXMLImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFileXMLImpl.java
new file mode 100644
index 0000000..a9aef43
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFileXMLImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange File XML</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFileXMLImpl#getFileURL <em>File URL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeFileXMLImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeFileXML {
+	/**
+	 * The default value of the '{@link #getFileURL() <em>File URL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFileURL()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FILE_URL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFileURL() <em>File URL</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFileURL()
+	 * @generated
+	 * @ordered
+	 */
+	protected String fileURL = FILE_URL_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeFileXMLImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_FILE_XML;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFileURL() {
+		return fileURL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFileURL(String newFileURL) {
+		String oldFileURL = fileURL;
+		fileURL = newFileURL;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FILE_XML__FILE_URL, oldFileURL, fileURL));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_XML__FILE_URL:
+				return getFileURL();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_XML__FILE_URL:
+				setFileURL((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_XML__FILE_URL:
+				setFileURL(FILE_URL_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_XML__FILE_URL:
+				return FILE_URL_EDEFAULT == null ? fileURL != null : !FILE_URL_EDEFAULT.equals(fileURL);
+		}
+		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(" (fileURL: ");
+		result.append(fileURL);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeFileXMLImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFormatImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFormatImpl.java
new file mode 100644
index 0000000..6524868
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeFormatImpl.java
@@ -0,0 +1,290 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Format</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFormatImpl#getTargetProperty <em>Target Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFormatImpl#getLocale <em>Locale</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeFormatImpl#getFormat <em>Format</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeFormatImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeFormat {
+	/**
+	 * The cached value of the '{@link #getTargetProperty() <em>Target Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityAttribute targetProperty;
+
+	/**
+	 * The default value of the '{@link #getLocale() <em>Locale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocale()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LOCALE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLocale() <em>Locale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocale()
+	 * @generated
+	 * @ordered
+	 */
+	protected String locale = LOCALE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getFormat() <em>Format</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormat()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FORMAT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFormat() <em>Format</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormat()
+	 * @generated
+	 * @ordered
+	 */
+	protected String format = FORMAT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeFormatImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_FORMAT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute getTargetProperty() {
+		if (targetProperty != null && targetProperty.eIsProxy()) {
+			InternalEObject oldTargetProperty = (InternalEObject)targetProperty;
+			targetProperty = (LEntityAttribute)eResolveProxy(oldTargetProperty);
+			if (targetProperty != oldTargetProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY, oldTargetProperty, targetProperty));
+			}
+		}
+		return targetProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute basicGetTargetProperty() {
+		return targetProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTargetProperty(LEntityAttribute newTargetProperty) {
+		LEntityAttribute oldTargetProperty = targetProperty;
+		targetProperty = newTargetProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY, oldTargetProperty, targetProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLocale() {
+		return locale;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLocale(String newLocale) {
+		String oldLocale = locale;
+		locale = newLocale;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FORMAT__LOCALE, oldLocale, locale));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFormat() {
+		return format;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFormat(String newFormat) {
+		String oldFormat = format;
+		format = newFormat;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_FORMAT__FORMAT, oldFormat, format));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY:
+				if (resolve) return getTargetProperty();
+				return basicGetTargetProperty();
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__LOCALE:
+				return getLocale();
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__FORMAT:
+				return getFormat();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY:
+				setTargetProperty((LEntityAttribute)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__LOCALE:
+				setLocale((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__FORMAT:
+				setFormat((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY:
+				setTargetProperty((LEntityAttribute)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__LOCALE:
+				setLocale(LOCALE_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__FORMAT:
+				setFormat(FORMAT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY:
+				return targetProperty != null;
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__LOCALE:
+				return LOCALE_EDEFAULT == null ? locale != null : !LOCALE_EDEFAULT.equals(locale);
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT__FORMAT:
+				return FORMAT_EDEFAULT == null ? format != null : !FORMAT_EDEFAULT.equals(format);
+		}
+		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(" (locale: ");
+		result.append(locale);
+		result.append(", format: ");
+		result.append(format);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeFormatImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeImpl.java
new file mode 100644
index 0000000..e6a9d1a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeImpl.java
@@ -0,0 +1,624 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.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.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile;
+import org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl#isDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl#getDescriptionValue <em>Description Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl#isCreateReport <em>Create Report</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl#getElementSize <em>Element Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl#getProgressBarStyle <em>Progress Bar Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl#getFileEndpoint <em>File Endpoint</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl#getPath <em>Path</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl#isRefreshEnabled <em>Refresh Enabled</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeImpl#getRefresh <em>Refresh</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeImpl extends DataInterchangeBaseImpl implements DataInterchange {
+	/**
+	 * The default value of the '{@link #isDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DESCRIPTION_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescriptionValue() <em>Description Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescriptionValue() <em>Description Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String descriptionValue = DESCRIPTION_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCreateReport() <em>Create Report</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCreateReport()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CREATE_REPORT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCreateReport() <em>Create Report</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCreateReport()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean createReport = CREATE_REPORT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getElementSize() <em>Element Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElementSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int ELEMENT_SIZE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getElementSize() <em>Element Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElementSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected int elementSize = ELEMENT_SIZE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getProgressBarStyle() <em>Progress Bar Style</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProgressBarStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ProgressBarStylesEnum PROGRESS_BAR_STYLE_EDEFAULT = ProgressBarStylesEnum.NONE;
+
+	/**
+	 * The cached value of the '{@link #getProgressBarStyle() <em>Progress Bar Style</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProgressBarStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected ProgressBarStylesEnum progressBarStyle = PROGRESS_BAR_STYLE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getFileEndpoint() <em>File Endpoint</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFileEndpoint()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataInterchangeFile fileEndpoint;
+
+	/**
+	 * The cached value of the '{@link #getPath() <em>Path</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DataInterchangeBean> path;
+
+	/**
+	 * The default value of the '{@link #isRefreshEnabled() <em>Refresh Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRefreshEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean REFRESH_ENABLED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isRefreshEnabled() <em>Refresh Enabled</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isRefreshEnabled()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean refreshEnabled = REFRESH_ENABLED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRefresh() <em>Refresh</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefresh()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REFRESH_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getRefresh() <em>Refresh</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRefresh()
+	 * @generated
+	 * @ordered
+	 */
+	protected String refresh = REFRESH_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(boolean newDescription) {
+		boolean oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescriptionValue() {
+		return descriptionValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescriptionValue(String newDescriptionValue) {
+		String oldDescriptionValue = descriptionValue;
+		descriptionValue = newDescriptionValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION_VALUE, oldDescriptionValue, descriptionValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCreateReport() {
+		return createReport;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCreateReport(boolean newCreateReport) {
+		boolean oldCreateReport = createReport;
+		createReport = newCreateReport;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE__CREATE_REPORT, oldCreateReport, createReport));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getElementSize() {
+		return elementSize;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setElementSize(int newElementSize) {
+		int oldElementSize = elementSize;
+		elementSize = newElementSize;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE__ELEMENT_SIZE, oldElementSize, elementSize));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ProgressBarStylesEnum getProgressBarStyle() {
+		return progressBarStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProgressBarStyle(ProgressBarStylesEnum newProgressBarStyle) {
+		ProgressBarStylesEnum oldProgressBarStyle = progressBarStyle;
+		progressBarStyle = newProgressBarStyle == null ? PROGRESS_BAR_STYLE_EDEFAULT : newProgressBarStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE__PROGRESS_BAR_STYLE, oldProgressBarStyle, progressBarStyle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeFile getFileEndpoint() {
+		return fileEndpoint;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetFileEndpoint(DataInterchangeFile newFileEndpoint, NotificationChain msgs) {
+		DataInterchangeFile oldFileEndpoint = fileEndpoint;
+		fileEndpoint = newFileEndpoint;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE__FILE_ENDPOINT, oldFileEndpoint, newFileEndpoint);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFileEndpoint(DataInterchangeFile newFileEndpoint) {
+		if (newFileEndpoint != fileEndpoint) {
+			NotificationChain msgs = null;
+			if (fileEndpoint != null)
+				msgs = ((InternalEObject)fileEndpoint).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DataDSLPackage.DATA_INTERCHANGE__FILE_ENDPOINT, null, msgs);
+			if (newFileEndpoint != null)
+				msgs = ((InternalEObject)newFileEndpoint).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DataDSLPackage.DATA_INTERCHANGE__FILE_ENDPOINT, null, msgs);
+			msgs = basicSetFileEndpoint(newFileEndpoint, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE__FILE_ENDPOINT, newFileEndpoint, newFileEndpoint));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DataInterchangeBean> getPath() {
+		if (path == null) {
+			path = new EObjectContainmentEList<DataInterchangeBean>(DataInterchangeBean.class, this, DataDSLPackage.DATA_INTERCHANGE__PATH);
+		}
+		return path;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isRefreshEnabled() {
+		return refreshEnabled;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRefreshEnabled(boolean newRefreshEnabled) {
+		boolean oldRefreshEnabled = refreshEnabled;
+		refreshEnabled = newRefreshEnabled;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE__REFRESH_ENABLED, oldRefreshEnabled, refreshEnabled));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getRefresh() {
+		return refresh;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRefresh(String newRefresh) {
+		String oldRefresh = refresh;
+		refresh = newRefresh;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE__REFRESH, oldRefresh, refresh));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE__FILE_ENDPOINT:
+				return basicSetFileEndpoint(null, msgs);
+			case DataDSLPackage.DATA_INTERCHANGE__PATH:
+				return ((InternalEList<?>)getPath()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION:
+				return isDescription();
+			case DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION_VALUE:
+				return getDescriptionValue();
+			case DataDSLPackage.DATA_INTERCHANGE__CREATE_REPORT:
+				return isCreateReport();
+			case DataDSLPackage.DATA_INTERCHANGE__ELEMENT_SIZE:
+				return getElementSize();
+			case DataDSLPackage.DATA_INTERCHANGE__PROGRESS_BAR_STYLE:
+				return getProgressBarStyle();
+			case DataDSLPackage.DATA_INTERCHANGE__FILE_ENDPOINT:
+				return getFileEndpoint();
+			case DataDSLPackage.DATA_INTERCHANGE__PATH:
+				return getPath();
+			case DataDSLPackage.DATA_INTERCHANGE__REFRESH_ENABLED:
+				return isRefreshEnabled();
+			case DataDSLPackage.DATA_INTERCHANGE__REFRESH:
+				return getRefresh();
+		}
+		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 DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION:
+				setDescription((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION_VALUE:
+				setDescriptionValue((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__CREATE_REPORT:
+				setCreateReport((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__ELEMENT_SIZE:
+				setElementSize((Integer)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__PROGRESS_BAR_STYLE:
+				setProgressBarStyle((ProgressBarStylesEnum)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__FILE_ENDPOINT:
+				setFileEndpoint((DataInterchangeFile)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__PATH:
+				getPath().clear();
+				getPath().addAll((Collection<? extends DataInterchangeBean>)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__REFRESH_ENABLED:
+				setRefreshEnabled((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__REFRESH:
+				setRefresh((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION_VALUE:
+				setDescriptionValue(DESCRIPTION_VALUE_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__CREATE_REPORT:
+				setCreateReport(CREATE_REPORT_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__ELEMENT_SIZE:
+				setElementSize(ELEMENT_SIZE_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__PROGRESS_BAR_STYLE:
+				setProgressBarStyle(PROGRESS_BAR_STYLE_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__FILE_ENDPOINT:
+				setFileEndpoint((DataInterchangeFile)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__PATH:
+				getPath().clear();
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__REFRESH_ENABLED:
+				setRefreshEnabled(REFRESH_ENABLED_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE__REFRESH:
+				setRefresh(REFRESH_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION:
+				return description != DESCRIPTION_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE__DESCRIPTION_VALUE:
+				return DESCRIPTION_VALUE_EDEFAULT == null ? descriptionValue != null : !DESCRIPTION_VALUE_EDEFAULT.equals(descriptionValue);
+			case DataDSLPackage.DATA_INTERCHANGE__CREATE_REPORT:
+				return createReport != CREATE_REPORT_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE__ELEMENT_SIZE:
+				return elementSize != ELEMENT_SIZE_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE__PROGRESS_BAR_STYLE:
+				return progressBarStyle != PROGRESS_BAR_STYLE_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE__FILE_ENDPOINT:
+				return fileEndpoint != null;
+			case DataDSLPackage.DATA_INTERCHANGE__PATH:
+				return path != null && !path.isEmpty();
+			case DataDSLPackage.DATA_INTERCHANGE__REFRESH_ENABLED:
+				return refreshEnabled != REFRESH_ENABLED_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE__REFRESH:
+				return REFRESH_EDEFAULT == null ? refresh != null : !REFRESH_EDEFAULT.equals(refresh);
+		}
+		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(" (description: ");
+		result.append(description);
+		result.append(", descriptionValue: ");
+		result.append(descriptionValue);
+		result.append(", createReport: ");
+		result.append(createReport);
+		result.append(", elementSize: ");
+		result.append(elementSize);
+		result.append(", progressBarStyle: ");
+		result.append(progressBarStyle);
+		result.append(", refreshEnabled: ");
+		result.append(refreshEnabled);
+		result.append(", refresh: ");
+		result.append(refresh);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeLazyResolverImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeLazyResolverImpl.java
new file mode 100644
index 0000000..0dfa400
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeLazyResolverImpl.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLazyResolver;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Lazy Resolver</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeLazyResolverImpl extends MinimalEObjectImpl.Container implements DataInterchangeLazyResolver {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeLazyResolverImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_LAZY_RESOLVER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject eResolveProxy(final InternalEObject proxy) {
+		Resource _eResource = this.eResource();
+		ResourceSet _resourceSet = _eResource.getResourceSet();
+		return EcoreUtil3.resolve(proxy, _resourceSet);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case DataDSLPackage.DATA_INTERCHANGE_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT:
+				return eResolveProxy((InternalEObject)arguments.get(0));
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+} //DataInterchangeLazyResolverImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeLookupImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeLookupImpl.java
new file mode 100644
index 0000000..62b40d6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeLookupImpl.java
@@ -0,0 +1,708 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.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.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityReference;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#getEntity <em>Entity</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#getTargetProperty <em>Target Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#getQueryProperty <em>Query Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#getElementMap <em>Element Map</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#getDataMap <em>Data Map</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#isAllowNoResult <em>Allow No Result</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#isAllowNonuniqueResult <em>Allow Nonunique Result</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#isCached <em>Cached</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#getCacheSize <em>Cache Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeLookupImpl#getMarkerPath <em>Marker Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeLookupImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeLookup {
+	/**
+	 * The cached value of the '{@link #getEntity() <em>Entity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEntity()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntity entity;
+
+	/**
+	 * The cached value of the '{@link #getTargetProperty() <em>Target Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityReference targetProperty;
+
+	/**
+	 * The cached value of the '{@link #getQueryProperty() <em>Query Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQueryProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityAttribute queryProperty;
+
+	/**
+	 * The default value of the '{@link #getElementMap() <em>Element Map</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElementMap()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ELEMENT_MAP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getElementMap() <em>Element Map</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElementMap()
+	 * @generated
+	 * @ordered
+	 */
+	protected String elementMap = ELEMENT_MAP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDataMap() <em>Data Map</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDataMap()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DATA_MAP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDataMap() <em>Data Map</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDataMap()
+	 * @generated
+	 * @ordered
+	 */
+	protected String dataMap = DATA_MAP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAllowNoResult() <em>Allow No Result</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAllowNoResult()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ALLOW_NO_RESULT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isAllowNoResult() <em>Allow No Result</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAllowNoResult()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean allowNoResult = ALLOW_NO_RESULT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAllowNonuniqueResult() <em>Allow Nonunique Result</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAllowNonuniqueResult()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean ALLOW_NONUNIQUE_RESULT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isAllowNonuniqueResult() <em>Allow Nonunique Result</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAllowNonuniqueResult()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean allowNonuniqueResult = ALLOW_NONUNIQUE_RESULT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isCached() <em>Cached</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCached()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean CACHED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isCached() <em>Cached</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isCached()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean cached = CACHED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getCacheSize() <em>Cache Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCacheSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int CACHE_SIZE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getCacheSize() <em>Cache Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCacheSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected int cacheSize = CACHE_SIZE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMarkerPath() <em>Marker Path</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarkerPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataInterchangeMarkerPath markerPath;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeLookupImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_LOOKUP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntity getEntity() {
+		if (entity != null && entity.eIsProxy()) {
+			InternalEObject oldEntity = (InternalEObject)entity;
+			entity = (LEntity)eResolveProxy(oldEntity);
+			if (entity != oldEntity) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ENTITY, oldEntity, entity));
+			}
+		}
+		return entity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntity basicGetEntity() {
+		return entity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEntity(LEntity newEntity) {
+		LEntity oldEntity = entity;
+		entity = newEntity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ENTITY, oldEntity, entity));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityReference getTargetProperty() {
+		if (targetProperty != null && targetProperty.eIsProxy()) {
+			InternalEObject oldTargetProperty = (InternalEObject)targetProperty;
+			targetProperty = (LEntityReference)eResolveProxy(oldTargetProperty);
+			if (targetProperty != oldTargetProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY, oldTargetProperty, targetProperty));
+			}
+		}
+		return targetProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityReference basicGetTargetProperty() {
+		return targetProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTargetProperty(LEntityReference newTargetProperty) {
+		LEntityReference oldTargetProperty = targetProperty;
+		targetProperty = newTargetProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY, oldTargetProperty, targetProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute getQueryProperty() {
+		if (queryProperty != null && queryProperty.eIsProxy()) {
+			InternalEObject oldQueryProperty = (InternalEObject)queryProperty;
+			queryProperty = (LEntityAttribute)eResolveProxy(oldQueryProperty);
+			if (queryProperty != oldQueryProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY, oldQueryProperty, queryProperty));
+			}
+		}
+		return queryProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute basicGetQueryProperty() {
+		return queryProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setQueryProperty(LEntityAttribute newQueryProperty) {
+		LEntityAttribute oldQueryProperty = queryProperty;
+		queryProperty = newQueryProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY, oldQueryProperty, queryProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getElementMap() {
+		return elementMap;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setElementMap(String newElementMap) {
+		String oldElementMap = elementMap;
+		elementMap = newElementMap;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ELEMENT_MAP, oldElementMap, elementMap));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDataMap() {
+		return dataMap;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDataMap(String newDataMap) {
+		String oldDataMap = dataMap;
+		dataMap = newDataMap;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__DATA_MAP, oldDataMap, dataMap));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isAllowNoResult() {
+		return allowNoResult;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAllowNoResult(boolean newAllowNoResult) {
+		boolean oldAllowNoResult = allowNoResult;
+		allowNoResult = newAllowNoResult;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NO_RESULT, oldAllowNoResult, allowNoResult));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isAllowNonuniqueResult() {
+		return allowNonuniqueResult;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAllowNonuniqueResult(boolean newAllowNonuniqueResult) {
+		boolean oldAllowNonuniqueResult = allowNonuniqueResult;
+		allowNonuniqueResult = newAllowNonuniqueResult;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NONUNIQUE_RESULT, oldAllowNonuniqueResult, allowNonuniqueResult));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isCached() {
+		return cached;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCached(boolean newCached) {
+		boolean oldCached = cached;
+		cached = newCached;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHED, oldCached, cached));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getCacheSize() {
+		return cacheSize;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCacheSize(int newCacheSize) {
+		int oldCacheSize = cacheSize;
+		cacheSize = newCacheSize;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHE_SIZE, oldCacheSize, cacheSize));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchangeMarkerPath getMarkerPath() {
+		return markerPath;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetMarkerPath(DataInterchangeMarkerPath newMarkerPath, NotificationChain msgs) {
+		DataInterchangeMarkerPath oldMarkerPath = markerPath;
+		markerPath = newMarkerPath;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__MARKER_PATH, oldMarkerPath, newMarkerPath);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarkerPath(DataInterchangeMarkerPath newMarkerPath) {
+		if (newMarkerPath != markerPath) {
+			NotificationChain msgs = null;
+			if (markerPath != null)
+				msgs = ((InternalEObject)markerPath).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DataDSLPackage.DATA_INTERCHANGE_LOOKUP__MARKER_PATH, null, msgs);
+			if (newMarkerPath != null)
+				msgs = ((InternalEObject)newMarkerPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DataDSLPackage.DATA_INTERCHANGE_LOOKUP__MARKER_PATH, null, msgs);
+			msgs = basicSetMarkerPath(newMarkerPath, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_LOOKUP__MARKER_PATH, newMarkerPath, newMarkerPath));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__MARKER_PATH:
+				return basicSetMarkerPath(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 DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ENTITY:
+				if (resolve) return getEntity();
+				return basicGetEntity();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY:
+				if (resolve) return getTargetProperty();
+				return basicGetTargetProperty();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY:
+				if (resolve) return getQueryProperty();
+				return basicGetQueryProperty();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ELEMENT_MAP:
+				return getElementMap();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__DATA_MAP:
+				return getDataMap();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NO_RESULT:
+				return isAllowNoResult();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NONUNIQUE_RESULT:
+				return isAllowNonuniqueResult();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHED:
+				return isCached();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHE_SIZE:
+				return getCacheSize();
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__MARKER_PATH:
+				return getMarkerPath();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ENTITY:
+				setEntity((LEntity)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY:
+				setTargetProperty((LEntityReference)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY:
+				setQueryProperty((LEntityAttribute)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ELEMENT_MAP:
+				setElementMap((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__DATA_MAP:
+				setDataMap((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NO_RESULT:
+				setAllowNoResult((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NONUNIQUE_RESULT:
+				setAllowNonuniqueResult((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHED:
+				setCached((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHE_SIZE:
+				setCacheSize((Integer)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__MARKER_PATH:
+				setMarkerPath((DataInterchangeMarkerPath)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ENTITY:
+				setEntity((LEntity)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY:
+				setTargetProperty((LEntityReference)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY:
+				setQueryProperty((LEntityAttribute)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ELEMENT_MAP:
+				setElementMap(ELEMENT_MAP_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__DATA_MAP:
+				setDataMap(DATA_MAP_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NO_RESULT:
+				setAllowNoResult(ALLOW_NO_RESULT_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NONUNIQUE_RESULT:
+				setAllowNonuniqueResult(ALLOW_NONUNIQUE_RESULT_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHED:
+				setCached(CACHED_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHE_SIZE:
+				setCacheSize(CACHE_SIZE_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__MARKER_PATH:
+				setMarkerPath((DataInterchangeMarkerPath)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ENTITY:
+				return entity != null;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY:
+				return targetProperty != null;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY:
+				return queryProperty != null;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ELEMENT_MAP:
+				return ELEMENT_MAP_EDEFAULT == null ? elementMap != null : !ELEMENT_MAP_EDEFAULT.equals(elementMap);
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__DATA_MAP:
+				return DATA_MAP_EDEFAULT == null ? dataMap != null : !DATA_MAP_EDEFAULT.equals(dataMap);
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NO_RESULT:
+				return allowNoResult != ALLOW_NO_RESULT_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__ALLOW_NONUNIQUE_RESULT:
+				return allowNonuniqueResult != ALLOW_NONUNIQUE_RESULT_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHED:
+				return cached != CACHED_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__CACHE_SIZE:
+				return cacheSize != CACHE_SIZE_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP__MARKER_PATH:
+				return markerPath != 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(" (elementMap: ");
+		result.append(elementMap);
+		result.append(", dataMap: ");
+		result.append(dataMap);
+		result.append(", allowNoResult: ");
+		result.append(allowNoResult);
+		result.append(", allowNonuniqueResult: ");
+		result.append(allowNonuniqueResult);
+		result.append(", cached: ");
+		result.append(cached);
+		result.append(", cacheSize: ");
+		result.append(cacheSize);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeLookupImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeMappingImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeMappingImpl.java
new file mode 100644
index 0000000..9973b7a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeMappingImpl.java
@@ -0,0 +1,236 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMappingImpl#getProperty <em>Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMappingImpl#getData <em>Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeMappingImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeMapping {
+	/**
+	 * The cached value of the '{@link #getProperty() <em>Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityAttribute property;
+
+	/**
+	 * The default value of the '{@link #getData() <em>Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getData()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DATA_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getData() <em>Data</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getData()
+	 * @generated
+	 * @ordered
+	 */
+	protected String data = DATA_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeMappingImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_MAPPING;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute getProperty() {
+		if (property != null && property.eIsProxy()) {
+			InternalEObject oldProperty = (InternalEObject)property;
+			property = (LEntityAttribute)eResolveProxy(oldProperty);
+			if (property != oldProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_MAPPING__PROPERTY, oldProperty, property));
+			}
+		}
+		return property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute basicGetProperty() {
+		return property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setProperty(LEntityAttribute newProperty) {
+		LEntityAttribute oldProperty = property;
+		property = newProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_MAPPING__PROPERTY, oldProperty, property));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getData() {
+		return data;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setData(String newData) {
+		String oldData = data;
+		data = newData;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_MAPPING__DATA, oldData, data));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING__PROPERTY:
+				if (resolve) return getProperty();
+				return basicGetProperty();
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING__DATA:
+				return getData();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING__PROPERTY:
+				setProperty((LEntityAttribute)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING__DATA:
+				setData((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING__PROPERTY:
+				setProperty((LEntityAttribute)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING__DATA:
+				setData(DATA_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING__PROPERTY:
+				return property != null;
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING__DATA:
+				return DATA_EDEFAULT == null ? data != null : !DATA_EDEFAULT.equals(data);
+		}
+		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(" (data: ");
+		result.append(data);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeMappingImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeMarkerEntityImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeMarkerEntityImpl.java
new file mode 100644
index 0000000..b588ad2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeMarkerEntityImpl.java
@@ -0,0 +1,297 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Marker Entity</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerEntityImpl#isMarkLatest <em>Mark Latest</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerEntityImpl#getMarkerEntity <em>Marker Entity</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerEntityImpl#getMarkerProperty <em>Marker Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeMarkerEntityImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeMarkerEntity {
+	/**
+	 * The default value of the '{@link #isMarkLatest() <em>Mark Latest</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMarkLatest()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean MARK_LATEST_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isMarkLatest() <em>Mark Latest</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isMarkLatest()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean markLatest = MARK_LATEST_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMarkerEntity() <em>Marker Entity</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarkerEntity()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntity markerEntity;
+
+	/**
+	 * The cached value of the '{@link #getMarkerProperty() <em>Marker Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarkerProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityAttribute markerProperty;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeMarkerEntityImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_MARKER_ENTITY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isMarkLatest() {
+		return markLatest;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarkLatest(boolean newMarkLatest) {
+		boolean oldMarkLatest = markLatest;
+		markLatest = newMarkLatest;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARK_LATEST, oldMarkLatest, markLatest));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntity getMarkerEntity() {
+		if (markerEntity != null && markerEntity.eIsProxy()) {
+			InternalEObject oldMarkerEntity = (InternalEObject)markerEntity;
+			markerEntity = (LEntity)eResolveProxy(oldMarkerEntity);
+			if (markerEntity != oldMarkerEntity) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY, oldMarkerEntity, markerEntity));
+			}
+		}
+		return markerEntity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntity basicGetMarkerEntity() {
+		return markerEntity;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarkerEntity(LEntity newMarkerEntity) {
+		LEntity oldMarkerEntity = markerEntity;
+		markerEntity = newMarkerEntity;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY, oldMarkerEntity, markerEntity));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute getMarkerProperty() {
+		if (markerProperty != null && markerProperty.eIsProxy()) {
+			InternalEObject oldMarkerProperty = (InternalEObject)markerProperty;
+			markerProperty = (LEntityAttribute)eResolveProxy(oldMarkerProperty);
+			if (markerProperty != oldMarkerProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY, oldMarkerProperty, markerProperty));
+			}
+		}
+		return markerProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute basicGetMarkerProperty() {
+		return markerProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarkerProperty(LEntityAttribute newMarkerProperty) {
+		LEntityAttribute oldMarkerProperty = markerProperty;
+		markerProperty = newMarkerProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY, oldMarkerProperty, markerProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARK_LATEST:
+				return isMarkLatest();
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY:
+				if (resolve) return getMarkerEntity();
+				return basicGetMarkerEntity();
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY:
+				if (resolve) return getMarkerProperty();
+				return basicGetMarkerProperty();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARK_LATEST:
+				setMarkLatest((Boolean)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY:
+				setMarkerEntity((LEntity)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY:
+				setMarkerProperty((LEntityAttribute)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARK_LATEST:
+				setMarkLatest(MARK_LATEST_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY:
+				setMarkerEntity((LEntity)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY:
+				setMarkerProperty((LEntityAttribute)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARK_LATEST:
+				return markLatest != MARK_LATEST_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY:
+				return markerEntity != null;
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY:
+				return markerProperty != 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(" (markLatest: ");
+		result.append(markLatest);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangeMarkerEntityImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeMarkerPathImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeMarkerPathImpl.java
new file mode 100644
index 0000000..cbc9e8b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeMarkerPathImpl.java
@@ -0,0 +1,161 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Marker Path</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeMarkerPathImpl#getPath <em>Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeMarkerPathImpl extends DataInterchangeLazyResolverImpl implements DataInterchangeMarkerPath {
+	/**
+	 * The cached value of the '{@link #getPath() <em>Path</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DataInterchangeMarkerEntity> path;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeMarkerPathImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_MARKER_PATH;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DataInterchangeMarkerEntity> getPath() {
+		if (path == null) {
+			path = new EObjectContainmentEList<DataInterchangeMarkerEntity>(DataInterchangeMarkerEntity.class, this, DataDSLPackage.DATA_INTERCHANGE_MARKER_PATH__PATH);
+		}
+		return path;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_PATH__PATH:
+				return ((InternalEList<?>)getPath()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_PATH__PATH:
+				return getPath();
+		}
+		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 DataDSLPackage.DATA_INTERCHANGE_MARKER_PATH__PATH:
+				getPath().clear();
+				getPath().addAll((Collection<? extends DataInterchangeMarkerEntity>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_PATH__PATH:
+				getPath().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_PATH__PATH:
+				return path != null && !path.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DataInterchangeMarkerPathImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeModelImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeModelImpl.java
new file mode 100644
index 0000000..383696b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangeModelImpl.java
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import java.util.Collection;
+
+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.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangeModelImpl#getPackages <em>Packages</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangeModelImpl extends MinimalEObjectImpl.Container implements DataInterchangeModel {
+	/**
+	 * The cached value of the '{@link #getPackages() <em>Packages</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPackages()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DataInterchangePackage> packages;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangeModelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_MODEL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DataInterchangePackage> getPackages() {
+		if (packages == null) {
+			packages = new EObjectContainmentEList<DataInterchangePackage>(DataInterchangePackage.class, this, DataDSLPackage.DATA_INTERCHANGE_MODEL__PACKAGES);
+		}
+		return packages;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MODEL__PACKAGES:
+				return ((InternalEList<?>)getPackages()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MODEL__PACKAGES:
+				return getPackages();
+		}
+		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 DataDSLPackage.DATA_INTERCHANGE_MODEL__PACKAGES:
+				getPackages().clear();
+				getPackages().addAll((Collection<? extends DataInterchangePackage>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MODEL__PACKAGES:
+				getPackages().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MODEL__PACKAGES:
+				return packages != null && !packages.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DataInterchangeModelImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangePackageImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangePackageImpl.java
new file mode 100644
index 0000000..a65032a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangePackageImpl.java
@@ -0,0 +1,234 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.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.osbp.dsl.semantic.common.types.impl.LPackageImpl;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Package</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePackageImpl#getTitle <em>Title</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePackageImpl#getDatInts <em>Dat Ints</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangePackageImpl extends LPackageImpl implements DataInterchangePackage {
+	/**
+	 * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTitle()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TITLE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTitle()
+	 * @generated
+	 * @ordered
+	 */
+	protected String title = TITLE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDatInts() <em>Dat Ints</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatInts()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DataInterchange> datInts;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangePackageImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_PACKAGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTitle() {
+		return title;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTitle(String newTitle) {
+		String oldTitle = title;
+		title = newTitle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_PACKAGE__TITLE, oldTitle, title));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DataInterchange> getDatInts() {
+		if (datInts == null) {
+			datInts = new EObjectContainmentEList<DataInterchange>(DataInterchange.class, this, DataDSLPackage.DATA_INTERCHANGE_PACKAGE__DAT_INTS);
+		}
+		return datInts;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE__DAT_INTS:
+				return ((InternalEList<?>)getDatInts()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE__TITLE:
+				return getTitle();
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE__DAT_INTS:
+				return getDatInts();
+		}
+		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 DataDSLPackage.DATA_INTERCHANGE_PACKAGE__TITLE:
+				setTitle((String)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE__DAT_INTS:
+				getDatInts().clear();
+				getDatInts().addAll((Collection<? extends DataInterchange>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE__TITLE:
+				setTitle(TITLE_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE__DAT_INTS:
+				getDatInts().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE__TITLE:
+				return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE__DAT_INTS:
+				return datInts != null && !datInts.isEmpty();
+		}
+		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(" (title: ");
+		result.append(title);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangePackageImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangePredefinedExpressionImpl.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangePredefinedExpressionImpl.java
new file mode 100644
index 0000000..0d10822
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/impl/DataInterchangePredefinedExpressionImpl.java
@@ -0,0 +1,292 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression;
+import org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum;
+import org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Interchange Predefined Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePredefinedExpressionImpl#getTargetProperty <em>Target Property</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePredefinedExpressionImpl#getBean <em>Bean</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.datainterchange.impl.DataInterchangePredefinedExpressionImpl#getBeanType <em>Bean Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataInterchangePredefinedExpressionImpl extends DataInterchangeLazyResolverImpl implements DataInterchangePredefinedExpression {
+	/**
+	 * The cached value of the '{@link #getTargetProperty() <em>Target Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetProperty()
+	 * @generated
+	 * @ordered
+	 */
+	protected LEntityAttribute targetProperty;
+
+	/**
+	 * The default value of the '{@link #getBean() <em>Bean</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBean()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final PredefinedBeanEnum BEAN_EDEFAULT = PredefinedBeanEnum.NOW;
+
+	/**
+	 * The cached value of the '{@link #getBean() <em>Bean</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBean()
+	 * @generated
+	 * @ordered
+	 */
+	protected PredefinedBeanEnum bean = BEAN_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getBeanType() <em>Bean Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBeanType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final PredefinedBeanTypeEnum BEAN_TYPE_EDEFAULT = PredefinedBeanTypeEnum.DATE;
+
+	/**
+	 * The cached value of the '{@link #getBeanType() <em>Bean Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBeanType()
+	 * @generated
+	 * @ordered
+	 */
+	protected PredefinedBeanTypeEnum beanType = BEAN_TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataInterchangePredefinedExpressionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DataDSLPackage.Literals.DATA_INTERCHANGE_PREDEFINED_EXPRESSION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute getTargetProperty() {
+		if (targetProperty != null && targetProperty.eIsProxy()) {
+			InternalEObject oldTargetProperty = (InternalEObject)targetProperty;
+			targetProperty = (LEntityAttribute)eResolveProxy(oldTargetProperty);
+			if (targetProperty != oldTargetProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__TARGET_PROPERTY, oldTargetProperty, targetProperty));
+			}
+		}
+		return targetProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public LEntityAttribute basicGetTargetProperty() {
+		return targetProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTargetProperty(LEntityAttribute newTargetProperty) {
+		LEntityAttribute oldTargetProperty = targetProperty;
+		targetProperty = newTargetProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__TARGET_PROPERTY, oldTargetProperty, targetProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PredefinedBeanEnum getBean() {
+		return bean;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBean(PredefinedBeanEnum newBean) {
+		PredefinedBeanEnum oldBean = bean;
+		bean = newBean == null ? BEAN_EDEFAULT : newBean;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN, oldBean, bean));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PredefinedBeanTypeEnum getBeanType() {
+		return beanType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBeanType(PredefinedBeanTypeEnum newBeanType) {
+		PredefinedBeanTypeEnum oldBeanType = beanType;
+		beanType = newBeanType == null ? BEAN_TYPE_EDEFAULT : newBeanType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE, oldBeanType, beanType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__TARGET_PROPERTY:
+				if (resolve) return getTargetProperty();
+				return basicGetTargetProperty();
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN:
+				return getBean();
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE:
+				return getBeanType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__TARGET_PROPERTY:
+				setTargetProperty((LEntityAttribute)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN:
+				setBean((PredefinedBeanEnum)newValue);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE:
+				setBeanType((PredefinedBeanTypeEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__TARGET_PROPERTY:
+				setTargetProperty((LEntityAttribute)null);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN:
+				setBean(BEAN_EDEFAULT);
+				return;
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE:
+				setBeanType(BEAN_TYPE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__TARGET_PROPERTY:
+				return targetProperty != null;
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN:
+				return bean != BEAN_EDEFAULT;
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE:
+				return beanType != BEAN_TYPE_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(" (bean: ");
+		result.append(bean);
+		result.append(", beanType: ");
+		result.append(beanType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DataInterchangePredefinedExpressionImpl
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/util/DataDSLAdapterFactory.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/util/DataDSLAdapterFactory.java
new file mode 100644
index 0000000..e5f64df
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/util/DataDSLAdapterFactory.java
@@ -0,0 +1,476 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.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.osbp.dsl.semantic.common.types.LLazyResolver;
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+
+import org.eclipse.osbp.xtext.datainterchange.*;
+
+/**
+ * <!-- 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.osbp.xtext.datainterchange.DataDSLPackage
+ * @generated
+ */
+public class DataDSLAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DataDSLPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataDSLAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = DataDSLPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DataDSLSwitch<Adapter> modelSwitch =
+		new DataDSLSwitch<Adapter>() {
+			@Override
+			public Adapter caseDataInterchangeModel(DataInterchangeModel object) {
+				return createDataInterchangeModelAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeLazyResolver(DataInterchangeLazyResolver object) {
+				return createDataInterchangeLazyResolverAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangePackage(DataInterchangePackage object) {
+				return createDataInterchangePackageAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeBase(DataInterchangeBase object) {
+				return createDataInterchangeBaseAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchange(DataInterchange object) {
+				return createDataInterchangeAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeFile(DataInterchangeFile object) {
+				return createDataInterchangeFileAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeFileXML(DataInterchangeFileXML object) {
+				return createDataInterchangeFileXMLAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeFileCSV(DataInterchangeFileCSV object) {
+				return createDataInterchangeFileCSVAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeFileEDI(DataInterchangeFileEDI object) {
+				return createDataInterchangeFileEDIAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeBean(DataInterchangeBean object) {
+				return createDataInterchangeBeanAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeFormat(DataInterchangeFormat object) {
+				return createDataInterchangeFormatAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeExpression(DataInterchangeExpression object) {
+				return createDataInterchangeExpressionAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeEntityExpression(DataInterchangeEntityExpression object) {
+				return createDataInterchangeEntityExpressionAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangePredefinedExpression(DataInterchangePredefinedExpression object) {
+				return createDataInterchangePredefinedExpressionAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeLookup(DataInterchangeLookup object) {
+				return createDataInterchangeLookupAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeMarkerPath(DataInterchangeMarkerPath object) {
+				return createDataInterchangeMarkerPathAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeMarkerEntity(DataInterchangeMarkerEntity object) {
+				return createDataInterchangeMarkerEntityAdapter();
+			}
+			@Override
+			public Adapter caseDataInterchangeMapping(DataInterchangeMapping object) {
+				return createDataInterchangeMappingAdapter();
+			}
+			@Override
+			public Adapter caseLLazyResolver(LLazyResolver object) {
+				return createLLazyResolverAdapter();
+			}
+			@Override
+			public Adapter caseLPackage(LPackage object) {
+				return createLPackageAdapter();
+			}
+			@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.osbp.xtext.datainterchange.DataInterchangeModel <em>Data Interchange Model</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel
+	 * @generated
+	 */
+	public Adapter createDataInterchangeModelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLazyResolver <em>Data Interchange Lazy Resolver</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.osbp.xtext.datainterchange.DataInterchangeLazyResolver
+	 * @generated
+	 */
+	public Adapter createDataInterchangeLazyResolverAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage <em>Data Interchange Package</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.osbp.xtext.datainterchange.DataInterchangePackage
+	 * @generated
+	 */
+	public Adapter createDataInterchangePackageAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBase <em>Data Interchange Base</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.osbp.xtext.datainterchange.DataInterchangeBase
+	 * @generated
+	 */
+	public Adapter createDataInterchangeBaseAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchange <em>Data Interchange</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.osbp.xtext.datainterchange.DataInterchange
+	 * @generated
+	 */
+	public Adapter createDataInterchangeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile <em>Data Interchange File</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.osbp.xtext.datainterchange.DataInterchangeFile
+	 * @generated
+	 */
+	public Adapter createDataInterchangeFileAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML <em>Data Interchange File XML</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.osbp.xtext.datainterchange.DataInterchangeFileXML
+	 * @generated
+	 */
+	public Adapter createDataInterchangeFileXMLAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV <em>Data Interchange File CSV</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.osbp.xtext.datainterchange.DataInterchangeFileCSV
+	 * @generated
+	 */
+	public Adapter createDataInterchangeFileCSVAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI <em>Data Interchange File EDI</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.osbp.xtext.datainterchange.DataInterchangeFileEDI
+	 * @generated
+	 */
+	public Adapter createDataInterchangeFileEDIAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean <em>Data Interchange Bean</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.osbp.xtext.datainterchange.DataInterchangeBean
+	 * @generated
+	 */
+	public Adapter createDataInterchangeBeanAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat <em>Data Interchange Format</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.osbp.xtext.datainterchange.DataInterchangeFormat
+	 * @generated
+	 */
+	public Adapter createDataInterchangeFormatAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression <em>Data Interchange Expression</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.osbp.xtext.datainterchange.DataInterchangeExpression
+	 * @generated
+	 */
+	public Adapter createDataInterchangeExpressionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression <em>Data Interchange Entity Expression</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.osbp.xtext.datainterchange.DataInterchangeEntityExpression
+	 * @generated
+	 */
+	public Adapter createDataInterchangeEntityExpressionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression <em>Data Interchange Predefined Expression</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.osbp.xtext.datainterchange.DataInterchangePredefinedExpression
+	 * @generated
+	 */
+	public Adapter createDataInterchangePredefinedExpressionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup <em>Data Interchange Lookup</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.osbp.xtext.datainterchange.DataInterchangeLookup
+	 * @generated
+	 */
+	public Adapter createDataInterchangeLookupAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath <em>Data Interchange Marker Path</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.osbp.xtext.datainterchange.DataInterchangeMarkerPath
+	 * @generated
+	 */
+	public Adapter createDataInterchangeMarkerPathAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity <em>Data Interchange Marker Entity</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.osbp.xtext.datainterchange.DataInterchangeMarkerEntity
+	 * @generated
+	 */
+	public Adapter createDataInterchangeMarkerEntityAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping <em>Data Interchange Mapping</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping
+	 * @generated
+	 */
+	public Adapter createDataInterchangeMappingAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.dsl.semantic.common.types.LLazyResolver <em>LLazy Resolver</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.osbp.dsl.semantic.common.types.LLazyResolver
+	 * @generated
+	 */
+	public Adapter createLLazyResolverAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.dsl.semantic.common.types.LPackage <em>LPackage</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.osbp.dsl.semantic.common.types.LPackage
+	 * @generated
+	 */
+	public Adapter createLPackageAdapter() {
+		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;
+	}
+
+} //DataDSLAdapterFactory
diff --git a/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/util/DataDSLSwitch.java b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/util/DataDSLSwitch.java
new file mode 100644
index 0000000..b407965
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/emf-gen/org/eclipse/osbp/xtext/datainterchange/util/DataDSLSwitch.java
@@ -0,0 +1,534 @@
+/**
+ * Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ *  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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors{  
+ *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.datainterchange.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.osbp.dsl.semantic.common.types.LLazyResolver;
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+
+import org.eclipse.osbp.xtext.datainterchange.*;
+
+/**
+ * <!-- 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.osbp.xtext.datainterchange.DataDSLPackage
+ * @generated
+ */
+public class DataDSLSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static DataDSLPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataDSLSwitch() {
+		if (modelPackage == null) {
+			modelPackage = DataDSLPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case DataDSLPackage.DATA_INTERCHANGE_MODEL: {
+				DataInterchangeModel dataInterchangeModel = (DataInterchangeModel)theEObject;
+				T result = caseDataInterchangeModel(dataInterchangeModel);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_LAZY_RESOLVER: {
+				DataInterchangeLazyResolver dataInterchangeLazyResolver = (DataInterchangeLazyResolver)theEObject;
+				T result = caseDataInterchangeLazyResolver(dataInterchangeLazyResolver);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE: {
+				DataInterchangePackage dataInterchangePackage = (DataInterchangePackage)theEObject;
+				T result = caseDataInterchangePackage(dataInterchangePackage);
+				if (result == null) result = caseLPackage(dataInterchangePackage);
+				if (result == null) result = caseLLazyResolver(dataInterchangePackage);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_BASE: {
+				DataInterchangeBase dataInterchangeBase = (DataInterchangeBase)theEObject;
+				T result = caseDataInterchangeBase(dataInterchangeBase);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeBase);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE: {
+				DataInterchange dataInterchange = (DataInterchange)theEObject;
+				T result = caseDataInterchange(dataInterchange);
+				if (result == null) result = caseDataInterchangeBase(dataInterchange);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchange);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_FILE: {
+				DataInterchangeFile dataInterchangeFile = (DataInterchangeFile)theEObject;
+				T result = caseDataInterchangeFile(dataInterchangeFile);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeFile);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_XML: {
+				DataInterchangeFileXML dataInterchangeFileXML = (DataInterchangeFileXML)theEObject;
+				T result = caseDataInterchangeFileXML(dataInterchangeFileXML);
+				if (result == null) result = caseDataInterchangeFile(dataInterchangeFileXML);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeFileXML);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV: {
+				DataInterchangeFileCSV dataInterchangeFileCSV = (DataInterchangeFileCSV)theEObject;
+				T result = caseDataInterchangeFileCSV(dataInterchangeFileCSV);
+				if (result == null) result = caseDataInterchangeFile(dataInterchangeFileCSV);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeFileCSV);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI: {
+				DataInterchangeFileEDI dataInterchangeFileEDI = (DataInterchangeFileEDI)theEObject;
+				T result = caseDataInterchangeFileEDI(dataInterchangeFileEDI);
+				if (result == null) result = caseDataInterchangeFile(dataInterchangeFileEDI);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeFileEDI);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN: {
+				DataInterchangeBean dataInterchangeBean = (DataInterchangeBean)theEObject;
+				T result = caseDataInterchangeBean(dataInterchangeBean);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeBean);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT: {
+				DataInterchangeFormat dataInterchangeFormat = (DataInterchangeFormat)theEObject;
+				T result = caseDataInterchangeFormat(dataInterchangeFormat);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeFormat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_EXPRESSION: {
+				DataInterchangeExpression dataInterchangeExpression = (DataInterchangeExpression)theEObject;
+				T result = caseDataInterchangeExpression(dataInterchangeExpression);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeExpression);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION: {
+				DataInterchangeEntityExpression dataInterchangeEntityExpression = (DataInterchangeEntityExpression)theEObject;
+				T result = caseDataInterchangeEntityExpression(dataInterchangeEntityExpression);
+				if (result == null) result = caseDataInterchangeExpression(dataInterchangeEntityExpression);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeEntityExpression);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION: {
+				DataInterchangePredefinedExpression dataInterchangePredefinedExpression = (DataInterchangePredefinedExpression)theEObject;
+				T result = caseDataInterchangePredefinedExpression(dataInterchangePredefinedExpression);
+				if (result == null) result = caseDataInterchangeExpression(dataInterchangePredefinedExpression);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangePredefinedExpression);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP: {
+				DataInterchangeLookup dataInterchangeLookup = (DataInterchangeLookup)theEObject;
+				T result = caseDataInterchangeLookup(dataInterchangeLookup);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeLookup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_PATH: {
+				DataInterchangeMarkerPath dataInterchangeMarkerPath = (DataInterchangeMarkerPath)theEObject;
+				T result = caseDataInterchangeMarkerPath(dataInterchangeMarkerPath);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeMarkerPath);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY: {
+				DataInterchangeMarkerEntity dataInterchangeMarkerEntity = (DataInterchangeMarkerEntity)theEObject;
+				T result = caseDataInterchangeMarkerEntity(dataInterchangeMarkerEntity);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeMarkerEntity);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING: {
+				DataInterchangeMapping dataInterchangeMapping = (DataInterchangeMapping)theEObject;
+				T result = caseDataInterchangeMapping(dataInterchangeMapping);
+				if (result == null) result = caseDataInterchangeLazyResolver(dataInterchangeMapping);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Model</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Interchange Model</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeModel(DataInterchangeModel object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Lazy Resolver</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>Data Interchange Lazy Resolver</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeLazyResolver(DataInterchangeLazyResolver object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Package</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>Data Interchange Package</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangePackage(DataInterchangePackage object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Base</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>Data Interchange Base</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeBase(DataInterchangeBase object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange</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>Data Interchange</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchange(DataInterchange object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange File</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>Data Interchange File</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeFile(DataInterchangeFile object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange File XML</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>Data Interchange File XML</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeFileXML(DataInterchangeFileXML object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange File CSV</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>Data Interchange File CSV</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeFileCSV(DataInterchangeFileCSV object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange File EDI</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>Data Interchange File EDI</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeFileEDI(DataInterchangeFileEDI object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Bean</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>Data Interchange Bean</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeBean(DataInterchangeBean object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Format</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>Data Interchange Format</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeFormat(DataInterchangeFormat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Expression</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>Data Interchange Expression</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeExpression(DataInterchangeExpression object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Entity Expression</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>Data Interchange Entity Expression</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeEntityExpression(DataInterchangeEntityExpression object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Predefined Expression</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>Data Interchange Predefined Expression</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangePredefinedExpression(DataInterchangePredefinedExpression object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Lookup</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>Data Interchange Lookup</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeLookup(DataInterchangeLookup object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Marker Path</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>Data Interchange Marker Path</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeMarkerPath(DataInterchangeMarkerPath object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Marker Entity</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>Data Interchange Marker Entity</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeMarkerEntity(DataInterchangeMarkerEntity object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Data Interchange Mapping</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Data Interchange Mapping</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDataInterchangeMapping(DataInterchangeMapping object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>LLazy Resolver</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>LLazy Resolver</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLLazyResolver(LLazyResolver object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>LPackage</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>LPackage</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLPackage(LPackage object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //DataDSLSwitch
diff --git a/org.eclipse.osbp.xtext.datainterchange/epl-v10.html b/org.eclipse.osbp.xtext.datainterchange/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange/license.html b/org.eclipse.osbp.xtext.datainterchange/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange/model/DataDSL.xcore b/org.eclipse.osbp.xtext.datainterchange/model/DataDSL.xcore
new file mode 100644
index 0000000..f079424
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/model/DataDSL.xcore
@@ -0,0 +1,165 @@
+@GenModel(fileExtensions="data")
+@GenModel(modelName="DataDSL")
+@GenModel(prefix="DataDSL")
+@GenModel(updateClasspath="false")
+@GenModel(copyrightText="Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+ 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 
+
+ Based on ideas from Xtext, Xtend, Xcore
+  
+ Contributors{  
+ 		Joerg Riegel - Initial implementation 
+ ")
+@Ecore(nsURI="http://osbp.eclipse.org/xtext/datainterchange/DataDSL")
+@Ecore(nsPrefix="datadsl")
+@Ecore(rootPackage="datadsl")
+package org.eclipse.osbp.xtext.datainterchange
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.InternalEObject
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage
+import org.eclipse.osbp.dsl.semantic.entity.LEntity
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute
+import org.eclipse.osbp.dsl.semantic.entity.LEntityReference
+import org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3
+
+class DataInterchangeModel{
+	contains DataInterchangePackage[] packages
+}
+
+type InternalEObject wraps InternalEObject
+
+class DataInterchangeLazyResolver {
+	op EObject eResolveProxy(InternalEObject proxy) {
+		return EcoreUtil3.resolve(proxy, this.eResource().resourceSet);
+	}
+}
+
+class DataInterchangePackage extends LPackage{
+	String title
+	contains DataInterchange[] datInts
+}
+
+class DataInterchangeBase extends DataInterchangeLazyResolver{
+	String name
+}
+
+class DataInterchange extends DataInterchangeBase {
+	boolean description
+	String descriptionValue
+	boolean createReport
+	int elementSize
+	ProgressBarStylesEnum progressBarStyle
+	contains DataInterchangeFile fileEndpoint
+	contains DataInterchangeBean[] path
+	boolean refreshEnabled
+	String refresh
+}
+
+interface DataInterchangeFile extends DataInterchangeLazyResolver{
+}
+
+class DataInterchangeFileXML extends DataInterchangeFile {
+	String fileURL
+}
+
+class DataInterchangeFileCSV extends DataInterchangeFile {
+	String fileURL
+	String delimiter
+	String quoteCharacter
+	int skipLines
+	boolean indent
+	String encoding
+	boolean strict
+	boolean validateHeader
+}
+
+class DataInterchangeFileEDI extends DataInterchangeFile {
+	String fileURL
+	String mappingModel
+	boolean validate
+}
+
+class DataInterchangeBean extends DataInterchangeLazyResolver {
+	refers LEntity entity
+	boolean markLatest
+	refers LEntityAttribute latestProperty
+	boolean recordElement
+	boolean recordList
+	String elementMap
+	contains DataInterchangeLookup[] lookup
+	contains DataInterchangeFormat[] format
+	contains DataInterchangeExpression[] expression
+	contains DataInterchangeMapping[] mappings 
+}
+
+class DataInterchangeFormat extends DataInterchangeLazyResolver {
+	refers LEntityAttribute targetProperty
+	String locale
+	String format
+}
+
+interface DataInterchangeExpression extends DataInterchangeLazyResolver {
+	refers LEntityAttribute targetProperty
+}
+
+class DataInterchangeEntityExpression extends DataInterchangeExpression {
+	refers LEntity entity
+	refers LEntityAttribute property
+}
+
+class DataInterchangePredefinedExpression extends DataInterchangeExpression {
+	PredefinedBeanEnum bean
+	PredefinedBeanTypeEnum beanType
+} 
+
+class DataInterchangeLookup extends DataInterchangeLazyResolver {
+	refers LEntity entity
+	refers LEntityReference targetProperty
+	refers LEntityAttribute queryProperty
+	String elementMap
+	String dataMap
+	boolean allowNoResult
+	boolean allowNonuniqueResult
+	boolean cached
+	int cacheSize
+	contains DataInterchangeMarkerPath markerPath
+}
+
+class DataInterchangeMarkerPath extends DataInterchangeLazyResolver {
+	contains DataInterchangeMarkerEntity[] path	
+}
+
+class DataInterchangeMarkerEntity extends DataInterchangeLazyResolver {
+	boolean markLatest
+	refers LEntity markerEntity
+	refers LEntityAttribute markerProperty
+}
+
+class DataInterchangeMapping extends DataInterchangeLazyResolver {
+	refers LEntityAttribute property
+	String data
+}
+
+enum PredefinedBeanEnum{
+	now 	as 'NowDate'
+	start 	as 'StartDate'
+	UUID 	as 'UniversallyUniqueIdentifier'
+}
+
+enum PredefinedBeanTypeEnum{
+	Date 	as 'Date'
+	Millis 	as 'Milliseconds'
+	Nanos 	as 'Nanoseconds'
+	random	as 'Random'
+	execContext	as 'ExecuteContext'
+}
+
+enum ProgressBarStylesEnum{
+	none		as 'none'
+	normal		as 'normal'
+	important	as 'important'
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/plugin.properties b/org.eclipse.osbp.xtext.datainterchange/plugin.properties
new file mode 100644
index 0000000..dfd691a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/plugin.properties
@@ -0,0 +1,14 @@
+# Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+#  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 
+# 
+#  Based on ideas from Xtext, Xtend, Xcore
+#   
+#  Contributors{  
+#  		Joerg Riegel - Initial implementation 
+#  
+
+pluginName = DataDSL Model
+providerName = www.example.org
diff --git a/org.eclipse.osbp.xtext.datainterchange/plugin.xml b/org.eclipse.osbp.xtext.datainterchange/plugin.xml
new file mode 100644
index 0000000..08365f5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/plugin.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
+  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 
+ 
+  Based on ideas from Xtext, Xtend, Xcore
+   
+  Contributors:  
+  		Christophe Loetz (Loetz GmbH&Co) - Initial implementation
+  
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated DataDSL -->
+      <package
+            uri="http://osbp.eclipse.org/xtext/datainterchange/DataDSL"
+            class="org.eclipse.osbp.xtext.datainterchange.DataDSLPackage"
+            genModel="model/DataDSL.xcore"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.datainterchange/pom.xml b/org.eclipse.osbp.xtext.datainterchange/pom.xml
new file mode 100644
index 0000000..942a4aa
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# 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: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - 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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.osbp.xtext.datainterchange</groupId>
+		<artifactId>org.eclipse.osbp.xtext.datainterchange.aggregator</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath>..</relativePath>
+	</parent>
+	<artifactId>org.eclipse.osbp.xtext.datainterchange</artifactId>
+	<packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/README.txt b/org.eclipse.osbp.xtext.datainterchange/src-gen/README.txt
new file mode 100644
index 0000000..bbbe557
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/README.txt
@@ -0,0 +1 @@
+dummy file needed for git for necessary but empty directories!
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/AbstractDataDSLRuntimeModule.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/AbstractDataDSLRuntimeModule.java
new file mode 100644
index 0000000..bf2d631
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/AbstractDataDSLRuntimeModule.java
@@ -0,0 +1,352 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.eclipse.osbp.xtext.datainterchange.DataDSLRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractDataDSLRuntimeModule extends DefaultRuntimeModule {
+
+	protected Properties properties = null;
+
+	@Override
+	public void configure(Binder binder) {
+		properties = tryBindProperties(binder, "org/eclipse/osbp/xtext/datainterchange/DataDSL.properties");
+		super.configure(binder);
+	}
+	
+	public void configureLanguageName(Binder binder) {
+		binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.osbp.xtext.datainterchange.DataDSL");
+	}
+	
+	public void configureFileExtensions(Binder binder) {
+		if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
+			binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("data");
+	}
+	
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+		return org.eclipse.osbp.xtext.datainterchange.serializer.DataDSLSemanticSequencer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+		return org.eclipse.osbp.xtext.datainterchange.serializer.DataDSLSyntacticSequencer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.ISerializer> bindISerializer() {
+		return org.eclipse.xtext.serializer.impl.Serializer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+		return org.eclipse.osbp.xtext.datainterchange.parser.antlr.DataDSLParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+		return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+		return org.eclipse.osbp.xtext.datainterchange.parser.antlr.DataDSLAntlrTokenFileProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+		return org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal.InternalDataDSLLexer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public com.google.inject.Provider<org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal.InternalDataDSLLexer> provideInternalDataDSLLexer() {
+		return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal.InternalDataDSLLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public void configureRuntimeLexer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal.InternalDataDSLLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+		return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper> bindIUnorderedGroupHelper() {
+		return org.eclipse.xtext.parser.antlr.UnorderedGroupHelper.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.validation.ValidatorFragment
+	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.osbp.xtext.datainterchange.validation.DataDSLValidator> bindDataDSLValidator() {
+		return org.eclipse.osbp.xtext.datainterchange.validation.DataDSLValidator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+	public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+		binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() {
+		return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() {
+		return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptions(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+	public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+		return org.eclipse.osbp.xtext.datainterchange.formatting.DataDSLFormatter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public org.eclipse.xtext.common.types.TypesFactory bindTypesFactoryToInstance() {
+		return org.eclipse.xtext.common.types.TypesFactory.eINSTANCE;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+		return org.eclipse.xtext.common.types.access.ClasspathTypeProviderFactory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+		return org.eclipse.xtext.common.types.xtext.ClasspathBasedTypeScopeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.interpreter.IEvaluationContext> bindIEvaluationContext() {
+		return org.eclipse.xtext.xbase.interpreter.impl.DefaultEvaluationContext.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.interpreter.IExpressionInterpreter> bindIExpressionInterpreter() {
+		return org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.naming.IQualifiedNameConverter> bindIQualifiedNameConverter() {
+		return org.eclipse.xtext.xbase.XbaseQualifiedNameConverter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+		return org.eclipse.xtext.xbase.scoping.XbaseQualifiedNameProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.conversion.IValueConverterService> bindIValueConverterService() {
+		return org.eclipse.xtext.xbase.conversion.XbaseValueConverterService.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+		return org.eclipse.xtext.xbase.scoping.batch.IBatchScopeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public void configureLinkingIScopeProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(org.eclipse.xtext.linking.LinkingScopeProviderBinding.class).to(org.eclipse.xtext.xbase.scoping.batch.IBatchScopeProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public void configureSerializerIScopeProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(org.eclipse.xtext.serializer.tokens.SerializerScopeProviderBinding.class).to(org.eclipse.xtext.xbase.serializer.SerializerScopeProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.xbase.scoping.XbaseImportedNamespaceScopeProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.linking.ILinker> bindILinker() {
+		return org.eclipse.xtext.xbase.linking.XbaseLazyLinker.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.resource.XtextResource> bindXtextResource() {
+		return org.eclipse.xtext.xbase.resource.BatchLinkableResource.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.xtext.xbase.validation.JvmTypeReferencesValidator> bindJvmTypeReferencesValidator() {
+		return org.eclipse.xtext.xbase.validation.JvmTypeReferencesValidator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.featurecalls.IdentifiableSimpleNameProvider> bindIdentifiableSimpleNameProvider() {
+		return org.eclipse.xtext.xbase.featurecalls.IdentifiableSimpleNameProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.resource.IDerivedStateComputer> bindIDerivedStateComputer() {
+		return org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.resource.IResourceDescription.Manager> bindIResourceDescription$Manager() {
+		return org.eclipse.xtext.resource.DerivedStateAwareResourceDescriptionManager.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
+		return org.eclipse.xtext.xbase.compiler.JvmModelGenerator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public org.eclipse.xtext.xtype.XtypeFactory bindXtypeFactoryToInstance() {
+		return org.eclipse.xtext.xtype.XtypeFactory.eINSTANCE;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.debug.IStratumBreakpointSupport> bindIStratumBreakpointSupport() {
+		return org.eclipse.xtext.xbase.debug.XbaseStratumBreakpointSupport.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.generator.LineSeparatorHarmonizer> bindLineSeparatorHarmonizer() {
+		return org.eclipse.xtext.xbase.compiler.output.TraceAwarePostProcessor.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy> bindIDefaultResourceDescriptionStrategy() {
+		return org.eclipse.xtext.xbase.resource.XbaseResourceDescriptionStrategy.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.validation.SeverityConverter> bindSeverityConverter() {
+		return org.eclipse.xtext.xbase.validation.XbaseSeverityConverter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.validation.ConfigurableIssueCodesProvider> bindConfigurableIssueCodesProvider() {
+		return org.eclipse.xtext.xbase.validation.XbaseConfigurableIssueCodes.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.resource.EObjectAtOffsetHelper> bindEObjectAtOffsetHelper() {
+		return org.eclipse.xtext.xbase.linking.BrokenConstructorCallAwareEObjectAtOffsetHelper.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.validation.CancelableDiagnostician> bindCancelableDiagnostician() {
+		return org.eclipse.xtext.xbase.validation.XbaseDiagnostician.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.scoping.featurecalls.StaticImplicitMethodsFeatureForTypeProvider.ExtensionClassNameProvider> bindStaticImplicitMethodsFeatureForTypeProvider$ExtensionClassNameProvider() {
+		return org.eclipse.xtext.xbase.scoping.batch.ImplicitlyImportedTypesAdapter.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtend.lib.macro.file.MutableFileSystemSupport> bindMutableFileSystemSupport() {
+		return org.eclipse.xtext.xbase.file.JavaIOFileSystemSupport.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtend.lib.macro.file.FileLocations> bindFileLocations() {
+		return org.eclipse.xtext.xbase.file.FileLocationsImpl.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends com.google.inject.Provider<org.eclipse.xtext.xbase.file.WorkspaceConfig>> provideWorkspaceConfig() {
+		return org.eclipse.xtext.xbase.file.RuntimeWorkspaceConfigProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.typesystem.computation.ITypeComputer> bindITypeComputer() {
+		return org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsTypeComputer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider> bindXbaseBatchScopeProvider() {
+		return org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.linking.ILinkingDiagnosticMessageProvider> bindILinkingDiagnosticMessageProvider() {
+		return org.eclipse.xtext.xbase.annotations.validation.UnresolvedAnnotationTypeAwareMessageProducer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.resource.ILocationInFileProvider> bindILocationInFileProvider() {
+		return org.eclipse.xtext.xbase.jvmmodel.JvmLocationInFileProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+		return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.validation.FeatureNameValidator> bindFeatureNameValidator() {
+		return org.eclipse.xtext.xbase.validation.LogicalContainerAwareFeatureNameValidator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.typesystem.internal.DefaultBatchTypeResolver> bindDefaultBatchTypeResolver() {
+		return org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareBatchTypeResolver.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.typesystem.internal.DefaultReentrantTypeResolver> bindDefaultReentrantTypeResolver() {
+		return org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.validation.IResourceValidator> bindIResourceValidator() {
+		return org.eclipse.xtext.xbase.annotations.validation.DerivedStateAwareResourceValidator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+	public Class<? extends org.eclipse.xtext.xbase.jvmmodel.IJvmModelInferrer> bindIJvmModelInferrer() {
+		return org.eclipse.osbp.xtext.datainterchange.jvmmodel.DataDSLJvmModelInferrer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+	public java.lang.ClassLoader bindClassLoaderToInstance() {
+		return getClass().getClassLoader();
+	}
+
+	// contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+	public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+		return org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess.class;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLStandaloneSetupGenerated.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLStandaloneSetupGenerated.java
new file mode 100644
index 0000000..63579f7
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/DataDSLStandaloneSetupGenerated.java
@@ -0,0 +1,52 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.emf.ecore.resource.Resource;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+@SuppressWarnings("all")
+public class DataDSLStandaloneSetupGenerated implements ISetup {
+
+	public Injector createInjectorAndDoEMFRegistration() {
+		org.eclipse.xtext.xbase.annotations.XbaseWithAnnotationsStandaloneSetup.doSetup();
+
+		Injector injector = createInjector();
+		register(injector);
+		return injector;
+	}
+	
+	public Injector createInjector() {
+		return Guice.createInjector(new org.eclipse.osbp.xtext.datainterchange.DataDSLRuntimeModule());
+	}
+	
+	public void register(Injector injector) {
+
+		org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+		org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
+		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("data", resourceFactory);
+		org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("data", serviceProvider);
+		
+
+
+
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/DataDSLAntlrTokenFileProvider.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/DataDSLAntlrTokenFileProvider.java
new file mode 100644
index 0000000..de290dd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/DataDSLAntlrTokenFileProvider.java
@@ -0,0 +1,25 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class DataDSLAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+	
+	public InputStream getAntlrTokenFile() {
+		ClassLoader classLoader = getClass().getClassLoader();
+    	return classLoader.getResourceAsStream("org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.tokens");
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/DataDSLParser.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/DataDSLParser.java
new file mode 100644
index 0000000..61f7f63
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/DataDSLParser.java
@@ -0,0 +1,49 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess;
+
+public class DataDSLParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+	
+	@Inject
+	private DataDSLGrammarAccess grammarAccess;
+	
+	@Override
+	protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+		tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+	}
+	
+	@Override
+	protected org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal.InternalDataDSLParser createParser(XtextTokenStream stream) {
+		return new org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal.InternalDataDSLParser(stream, getGrammarAccess());
+	}
+	
+	@Override 
+	protected String getDefaultRuleName() {
+		return "DataInterchangeModel";
+	}
+	
+	public DataDSLGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(DataDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g
new file mode 100644
index 0000000..cd47f19
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g
@@ -0,0 +1,8603 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+grammar InternalDataDSL;
+
+options {
+	superClass=AbstractInternalAntlrParser;
+	
+}
+
+@lexer::header {
+package org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal; 
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess;
+
+}
+
+@parser::members {
+
+ 	private DataDSLGrammarAccess grammarAccess;
+ 	
+    public InternalDataDSLParser(TokenStream input, DataDSLGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+    
+    @Override
+    protected String getFirstRuleName() {
+    	return "DataInterchangeModel";	
+   	}
+   	
+   	@Override
+   	protected DataDSLGrammarAccess getGrammarAccess() {
+   		return grammarAccess;
+   	}
+}
+
+@rulecatch { 
+    catch (RecognitionException re) { 
+        recover(input,re); 
+        appendSkippedTokens();
+    } 
+}
+
+
+
+
+// Entry rule entryRuleDataInterchangeModel
+entryRuleDataInterchangeModel returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeModelRule()); }
+	 iv_ruleDataInterchangeModel=ruleDataInterchangeModel 
+	 { $current=$iv_ruleDataInterchangeModel.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeModel
+ruleDataInterchangeModel returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeModelAccess().getPackagesDataInterchangePackageParserRuleCall_0()); 
+	    }
+		lv_packages_0_0=ruleDataInterchangePackage		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeModelRule());
+	        }
+       		add(
+       			$current, 
+       			"packages",
+        		lv_packages_0_0, 
+        		"DataInterchangePackage");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangePackage
+entryRuleDataInterchangePackage returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangePackageRule()); }
+	 iv_ruleDataInterchangePackage=ruleDataInterchangePackage 
+	 { $current=$iv_ruleDataInterchangePackage.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangePackage
+ruleDataInterchangePackage returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangePackageAccess().getDataInterchangePackageAction_0(),
+            $current);
+    }
+)	otherlv_1='package' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangePackageAccess().getPackageKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
+	    }
+		lv_name_2_0=ruleQualifiedName		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangePackageRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_2_0, 
+        		"QualifiedName");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3='title' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDataInterchangePackageAccess().getTitleKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangePackageAccess().getTitleTRANSLATABLESTRINGParserRuleCall_4_0()); 
+	    }
+		lv_title_4_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangePackageRule());
+	        }
+       		set(
+       			$current, 
+       			"title",
+        		lv_title_4_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5='{' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getDataInterchangePackageAccess().getLeftCurlyBracketKeyword_5_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangePackageAccess().getImportsDataInterchangeImportParserRuleCall_5_1_0()); 
+	    }
+		lv_imports_6_0=ruleDataInterchangeImport		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangePackageRule());
+	        }
+       		add(
+       			$current, 
+       			"imports",
+        		lv_imports_6_0, 
+        		"DataInterchangeImport");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangePackageAccess().getDatIntsDataInterchangeParserRuleCall_5_2_0()); 
+	    }
+		lv_datInts_7_0=ruleDataInterchange		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangePackageRule());
+	        }
+       		add(
+       			$current, 
+       			"datInts",
+        		lv_datInts_7_0, 
+        		"DataInterchange");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_8='}' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getDataInterchangePackageAccess().getRightCurlyBracketKeyword_5_3());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchange
+entryRuleDataInterchange returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeRule()); }
+	 iv_ruleDataInterchange=ruleDataInterchange 
+	 { $current=$iv_ruleDataInterchange.current; } 
+	 EOF 
+;
+
+// Rule DataInterchange
+ruleDataInterchange returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeAccess().getDataInterchangeAction_0(),
+            $current);
+    }
+)	otherlv_1='interchange' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeAccess().getInterchangeKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
+	    }
+		lv_name_2_0=ruleTRANSLATABLEID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_2_0, 
+        		"TRANSLATABLEID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)((
+(
+		lv_description_3_0=	'described by' 
+    {
+        newLeafNode(lv_description_3_0, grammarAccess.getDataInterchangeAccess().getDescriptionDescribedByKeyword_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeRule());
+	        }
+       		setWithLastConsumed($current, "description", true, "described by");
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
+	    }
+		lv_descriptionValue_4_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+	        }
+       		set(
+       			$current, 
+       			"descriptionValue",
+        		lv_descriptionValue_4_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(
+(
+		lv_createReport_5_0=	'create report' 
+    {
+        newLeafNode(lv_createReport_5_0, grammarAccess.getDataInterchangeAccess().getCreateReportCreateReportKeyword_4_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeRule());
+	        }
+       		setWithLastConsumed($current, "createReport", true, "create report");
+	    }
+
+)
+)?(	otherlv_6='averageElementSize' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getDataInterchangeAccess().getAverageElementSizeKeyword_5_0());
+    }
+(
+(
+		lv_elementSize_7_0=RULE_INT
+		{
+			newLeafNode(lv_elementSize_7_0, grammarAccess.getDataInterchangeAccess().getElementSizeINTTerminalRuleCall_5_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"elementSize",
+        		lv_elementSize_7_0, 
+        		"INT");
+	    }
+
+)
+))?(	otherlv_8='progressBarStyle' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getDataInterchangeAccess().getProgressBarStyleKeyword_6_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getProgressBarStyleProgressBarStylesEnumEnumRuleCall_6_1_0()); 
+	    }
+		lv_progressBarStyle_9_0=ruleProgressBarStylesEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+	        }
+       		set(
+       			$current, 
+       			"progressBarStyle",
+        		lv_progressBarStyle_9_0, 
+        		"ProgressBarStylesEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?((
+(
+		lv_refreshEnabled_10_0=	'refreshViewWhenFinished' 
+    {
+        newLeafNode(lv_refreshEnabled_10_0, grammarAccess.getDataInterchangeAccess().getRefreshEnabledRefreshViewWhenFinishedKeyword_7_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeRule());
+	        }
+       		setWithLastConsumed($current, "refreshEnabled", true, "refreshViewWhenFinished");
+	    }
+
+)
+)(
+(
+		lv_refresh_11_0=RULE_STRING
+		{
+			newLeafNode(lv_refresh_11_0, grammarAccess.getDataInterchangeAccess().getRefreshSTRINGTerminalRuleCall_7_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"refresh",
+        		lv_refresh_11_0, 
+        		"STRING");
+	    }
+
+)
+))?	otherlv_12='file' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getDataInterchangeAccess().getFileKeyword_8());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getFileEndpointDataInterchangeFileParserRuleCall_9_0()); 
+	    }
+		lv_fileEndpoint_13_0=ruleDataInterchangeFile		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+	        }
+       		set(
+       			$current, 
+       			"fileEndpoint",
+        		lv_fileEndpoint_13_0, 
+        		"DataInterchangeFile");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_14='beans' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getDataInterchangeAccess().getBeansKeyword_10());
+    }
+	otherlv_15='{' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getDataInterchangeAccess().getLeftCurlyBracketKeyword_11());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getPathDataInterchangeBeanParserRuleCall_12_0()); 
+	    }
+		lv_path_16_0=ruleDataInterchangeBean		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+	        }
+       		add(
+       			$current, 
+       			"path",
+        		lv_path_16_0, 
+        		"DataInterchangeBean");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_17='}' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getDataInterchangeAccess().getRightCurlyBracketKeyword_13());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeFile
+entryRuleDataInterchangeFile returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeFileRule()); }
+	 iv_ruleDataInterchangeFile=ruleDataInterchangeFile 
+	 { $current=$iv_ruleDataInterchangeFile.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeFile
+ruleDataInterchangeFile returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileXMLParserRuleCall_0()); 
+    }
+    this_DataInterchangeFileXML_0=ruleDataInterchangeFileXML
+    { 
+        $current = $this_DataInterchangeFileXML_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileCSVParserRuleCall_1()); 
+    }
+    this_DataInterchangeFileCSV_1=ruleDataInterchangeFileCSV
+    { 
+        $current = $this_DataInterchangeFileCSV_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileEDIParserRuleCall_2()); 
+    }
+    this_DataInterchangeFileEDI_2=ruleDataInterchangeFileEDI
+    { 
+        $current = $this_DataInterchangeFileEDI_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeFileXML
+entryRuleDataInterchangeFileXML returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeFileXMLRule()); }
+	 iv_ruleDataInterchangeFileXML=ruleDataInterchangeFileXML 
+	 { $current=$iv_ruleDataInterchangeFileXML.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeFileXML
+ruleDataInterchangeFileXML returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeFileXMLAccess().getDataInterchangeFileXMLAction_0(),
+            $current);
+    }
+)	otherlv_1='XML' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeFileXMLAccess().getXMLKeyword_1());
+    }
+(
+(
+		lv_fileURL_2_0=RULE_STRING
+		{
+			newLeafNode(lv_fileURL_2_0, grammarAccess.getDataInterchangeFileXMLAccess().getFileURLSTRINGTerminalRuleCall_2_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileXMLRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"fileURL",
+        		lv_fileURL_2_0, 
+        		"STRING");
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeFileCSV
+entryRuleDataInterchangeFileCSV returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeFileCSVRule()); }
+	 iv_ruleDataInterchangeFileCSV=ruleDataInterchangeFileCSV 
+	 { $current=$iv_ruleDataInterchangeFileCSV.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeFileCSV
+ruleDataInterchangeFileCSV returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeFileCSVAccess().getDataInterchangeFileCSVAction_0(),
+            $current);
+    }
+)	otherlv_1='CSV' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeFileCSVAccess().getCSVKeyword_1());
+    }
+(
+(
+		lv_fileURL_2_0=RULE_STRING
+		{
+			newLeafNode(lv_fileURL_2_0, grammarAccess.getDataInterchangeFileCSVAccess().getFileURLSTRINGTerminalRuleCall_2_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"fileURL",
+        		lv_fileURL_2_0, 
+        		"STRING");
+	    }
+
+)
+)(
+
+(
+	{ 
+	  getUnorderedGroupHelper().enter(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+	}
+	(
+		(
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 0)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 0);
+	 				}
+					({true}?=>(	otherlv_4='delimiter' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getDataInterchangeFileCSVAccess().getDelimiterKeyword_3_0_0());
+    }
+(
+(
+		lv_delimiter_5_0=RULE_STRING
+		{
+			newLeafNode(lv_delimiter_5_0, grammarAccess.getDataInterchangeFileCSVAccess().getDelimiterSTRINGTerminalRuleCall_3_0_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"delimiter",
+        		lv_delimiter_5_0, 
+        		"STRING");
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 1)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 1);
+	 				}
+					({true}?=>(	otherlv_6='quoteCharacter' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getDataInterchangeFileCSVAccess().getQuoteCharacterKeyword_3_1_0());
+    }
+(
+(
+		lv_quoteCharacter_7_0=RULE_STRING
+		{
+			newLeafNode(lv_quoteCharacter_7_0, grammarAccess.getDataInterchangeFileCSVAccess().getQuoteCharacterSTRINGTerminalRuleCall_3_1_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"quoteCharacter",
+        		lv_quoteCharacter_7_0, 
+        		"STRING");
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 2)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 2);
+	 				}
+					({true}?=>(	otherlv_8='skipLines' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getDataInterchangeFileCSVAccess().getSkipLinesKeyword_3_2_0());
+    }
+(
+(
+		lv_skipLines_9_0=RULE_INT
+		{
+			newLeafNode(lv_skipLines_9_0, grammarAccess.getDataInterchangeFileCSVAccess().getSkipLinesINTTerminalRuleCall_3_2_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"skipLines",
+        		lv_skipLines_9_0, 
+        		"INT");
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 3)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 3);
+	 				}
+					({true}?=>(
+(
+		lv_indent_10_0=	'indent' 
+    {
+        newLeafNode(lv_indent_10_0, grammarAccess.getDataInterchangeFileCSVAccess().getIndentIndentKeyword_3_3_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+	        }
+       		setWithLastConsumed($current, "indent", true, "indent");
+	    }
+
+)
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 4)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 4);
+	 				}
+					({true}?=>(
+(
+		lv_strict_11_0=	'strict' 
+    {
+        newLeafNode(lv_strict_11_0, grammarAccess.getDataInterchangeFileCSVAccess().getStrictStrictKeyword_3_4_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+	        }
+       		setWithLastConsumed($current, "strict", true, "strict");
+	    }
+
+)
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 5)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 5);
+	 				}
+					({true}?=>(
+(
+		lv_validateHeader_12_0=	'validateHeader' 
+    {
+        newLeafNode(lv_validateHeader_12_0, grammarAccess.getDataInterchangeFileCSVAccess().getValidateHeaderValidateHeaderKeyword_3_5_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+	        }
+       		setWithLastConsumed($current, "validateHeader", true, "validateHeader");
+	    }
+
+)
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 6)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 6);
+	 				}
+					({true}?=>(	otherlv_13='encoding' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getDataInterchangeFileCSVAccess().getEncodingKeyword_3_6_0());
+    }
+(
+(
+		lv_encoding_14_0=RULE_STRING
+		{
+			newLeafNode(lv_encoding_14_0, grammarAccess.getDataInterchangeFileCSVAccess().getEncodingSTRINGTerminalRuleCall_3_6_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"encoding",
+        		lv_encoding_14_0, 
+        		"STRING");
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  
+
+		)*	
+	)
+)
+	{ 
+	  getUnorderedGroupHelper().leave(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+	}
+
+))
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeFileEDI
+entryRuleDataInterchangeFileEDI returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeFileEDIRule()); }
+	 iv_ruleDataInterchangeFileEDI=ruleDataInterchangeFileEDI 
+	 { $current=$iv_ruleDataInterchangeFileEDI.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeFileEDI
+ruleDataInterchangeFileEDI returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeFileEDIAccess().getDataInterchangeFileEDIAction_0(),
+            $current);
+    }
+)	otherlv_1='EDI' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeFileEDIAccess().getEDIKeyword_1());
+    }
+(
+(
+		lv_fileURL_2_0=RULE_STRING
+		{
+			newLeafNode(lv_fileURL_2_0, grammarAccess.getDataInterchangeFileEDIAccess().getFileURLSTRINGTerminalRuleCall_2_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileEDIRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"fileURL",
+        		lv_fileURL_2_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_3='mappingModel' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeFileEDIAccess().getMappingModelKeyword_3());
+    }
+(
+(
+		lv_mappingModel_4_0=RULE_STRING
+		{
+			newLeafNode(lv_mappingModel_4_0, grammarAccess.getDataInterchangeFileEDIAccess().getMappingModelSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileEDIRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"mappingModel",
+        		lv_mappingModel_4_0, 
+        		"STRING");
+	    }
+
+)
+)(
+(
+		lv_validate_5_0=	'validate' 
+    {
+        newLeafNode(lv_validate_5_0, grammarAccess.getDataInterchangeFileEDIAccess().getValidateValidateKeyword_5_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFileEDIRule());
+	        }
+       		setWithLastConsumed($current, "validate", true, "validate");
+	    }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeBean
+entryRuleDataInterchangeBean returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeBeanRule()); }
+	 iv_ruleDataInterchangeBean=ruleDataInterchangeBean 
+	 { $current=$iv_ruleDataInterchangeBean.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeBean
+ruleDataInterchangeBean returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeBeanAccess().getDataInterchangeBeanAction_0(),
+            $current);
+    }
+)	otherlv_1='entity' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeBeanAccess().getEntityKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getEntityLEntityCrossReference_2_0()); 
+	    }
+		ruleLFQN		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3='createOn' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeBeanAccess().getCreateOnKeyword_3_0());
+    }
+(
+(
+		lv_elementMap_4_0=RULE_STRING
+		{
+			newLeafNode(lv_elementMap_4_0, grammarAccess.getDataInterchangeBeanAccess().getElementMapSTRINGTerminalRuleCall_3_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"elementMap",
+        		lv_elementMap_4_0, 
+        		"STRING");
+	    }
+
+)
+))?((
+(
+		lv_markLatest_5_0=	'marker' 
+    {
+        newLeafNode(lv_markLatest_5_0, grammarAccess.getDataInterchangeBeanAccess().getMarkLatestMarkerKeyword_4_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+	        }
+       		setWithLastConsumed($current, "markLatest", true, "marker");
+	    }
+
+)
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+	        }
+        }
+	otherlv_6=RULE_ID
+	{
+		newLeafNode(otherlv_6, grammarAccess.getDataInterchangeBeanAccess().getLatestPropertyLEntityAttributeCrossReference_4_1_0()); 
+	}
+
+)
+))?((
+(
+		lv_recordElement_7_0=	'recordElement' 
+    {
+        newLeafNode(lv_recordElement_7_0, grammarAccess.getDataInterchangeBeanAccess().getRecordElementRecordElementKeyword_5_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+	        }
+       		setWithLastConsumed($current, "recordElement", true, "recordElement");
+	    }
+
+)
+)
+    |(
+(
+		lv_recordList_8_0=	'recordList' 
+    {
+        newLeafNode(lv_recordList_8_0, grammarAccess.getDataInterchangeBeanAccess().getRecordListRecordListKeyword_5_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+	        }
+       		setWithLastConsumed($current, "recordList", true, "recordList");
+	    }
+
+)
+))?(	otherlv_9='expression' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getDataInterchangeBeanAccess().getExpressionKeyword_6_0());
+    }
+	otherlv_10='{' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_6_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getExpressionDataInterchangeExpressionParserRuleCall_6_2_0()); 
+	    }
+		lv_expression_11_0=ruleDataInterchangeExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeBeanRule());
+	        }
+       		add(
+       			$current, 
+       			"expression",
+        		lv_expression_11_0, 
+        		"DataInterchangeExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_12='}' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_6_3());
+    }
+)?(	otherlv_13='lookup' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getDataInterchangeBeanAccess().getLookupKeyword_7_0());
+    }
+	otherlv_14='{' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_7_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getLookupDataInterchangeLookupParserRuleCall_7_2_0()); 
+	    }
+		lv_lookup_15_0=ruleDataInterchangeLookup		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeBeanRule());
+	        }
+       		add(
+       			$current, 
+       			"lookup",
+        		lv_lookup_15_0, 
+        		"DataInterchangeLookup");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_16='}' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_7_3());
+    }
+)?(	otherlv_17='format' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getDataInterchangeBeanAccess().getFormatKeyword_8_0());
+    }
+	otherlv_18='{' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_8_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getFormatDataInterchangeFormatParserRuleCall_8_2_0()); 
+	    }
+		lv_format_19_0=ruleDataInterchangeFormat		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeBeanRule());
+	        }
+       		add(
+       			$current, 
+       			"format",
+        		lv_format_19_0, 
+        		"DataInterchangeFormat");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_20='}' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_8_3());
+    }
+)?(	otherlv_21='mapping' 
+    {
+    	newLeafNode(otherlv_21, grammarAccess.getDataInterchangeBeanAccess().getMappingKeyword_9_0());
+    }
+	otherlv_22='{' 
+    {
+    	newLeafNode(otherlv_22, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_9_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getMappingsDataInterchangeMappingParserRuleCall_9_2_0()); 
+	    }
+		lv_mappings_23_0=ruleDataInterchangeMapping		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeBeanRule());
+	        }
+       		add(
+       			$current, 
+       			"mappings",
+        		lv_mappings_23_0, 
+        		"DataInterchangeMapping");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_24='}' 
+    {
+    	newLeafNode(otherlv_24, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_9_3());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeLookup
+entryRuleDataInterchangeLookup returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeLookupRule()); }
+	 iv_ruleDataInterchangeLookup=ruleDataInterchangeLookup 
+	 { $current=$iv_ruleDataInterchangeLookup.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeLookup
+ruleDataInterchangeLookup returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeLookupAccess().getDataInterchangeLookupAction_0(),
+            $current);
+    }
+)	otherlv_1='for' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeLookupAccess().getForKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+	        }
+        }
+	otherlv_2=RULE_ID
+	{
+		newLeafNode(otherlv_2, grammarAccess.getDataInterchangeLookupAccess().getTargetPropertyLEntityReferenceCrossReference_2_0()); 
+	}
+
+)
+)	otherlv_3='on' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeLookupAccess().getOnKeyword_3());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getDataInterchangeLookupAccess().getEntityLEntityCrossReference_4_0()); 
+	}
+
+)
+)(	otherlv_5='createOn' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getDataInterchangeLookupAccess().getCreateOnKeyword_5_0());
+    }
+(
+(
+		lv_elementMap_6_0=RULE_STRING
+		{
+			newLeafNode(lv_elementMap_6_0, grammarAccess.getDataInterchangeLookupAccess().getElementMapSTRINGTerminalRuleCall_5_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"elementMap",
+        		lv_elementMap_6_0, 
+        		"STRING");
+	    }
+
+)
+))?	otherlv_7='with' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getDataInterchangeLookupAccess().getWithKeyword_6());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+	        }
+        }
+	otherlv_8=RULE_ID
+	{
+		newLeafNode(otherlv_8, grammarAccess.getDataInterchangeLookupAccess().getQueryPropertyLEntityAttributeCrossReference_7_0()); 
+	}
+
+)
+)((
+(
+		lv_cached_9_0=	'cacheSize' 
+    {
+        newLeafNode(lv_cached_9_0, grammarAccess.getDataInterchangeLookupAccess().getCachedCacheSizeKeyword_8_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+	        }
+       		setWithLastConsumed($current, "cached", true, "cacheSize");
+	    }
+
+)
+)(
+(
+		lv_cacheSize_10_0=RULE_INT
+		{
+			newLeafNode(lv_cacheSize_10_0, grammarAccess.getDataInterchangeLookupAccess().getCacheSizeINTTerminalRuleCall_8_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"cacheSize",
+        		lv_cacheSize_10_0, 
+        		"INT");
+	    }
+
+)
+))?(	otherlv_11='mapTo' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getDataInterchangeLookupAccess().getMapToKeyword_9_0());
+    }
+(
+(
+		lv_dataMap_12_0=RULE_STRING
+		{
+			newLeafNode(lv_dataMap_12_0, grammarAccess.getDataInterchangeLookupAccess().getDataMapSTRINGTerminalRuleCall_9_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"dataMap",
+        		lv_dataMap_12_0, 
+        		"STRING");
+	    }
+
+)
+))?(
+
+(
+	{ 
+	  getUnorderedGroupHelper().enter(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+	}
+	(
+		(
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 0)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 0);
+	 				}
+					({true}?=>(
+(
+		lv_allowNoResult_14_0=	'allowNoResult' 
+    {
+        newLeafNode(lv_allowNoResult_14_0, grammarAccess.getDataInterchangeLookupAccess().getAllowNoResultAllowNoResultKeyword_10_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+	        }
+       		setWithLastConsumed($current, "allowNoResult", true, "allowNoResult");
+	    }
+
+)
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 1)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 1);
+	 				}
+					({true}?=>(
+(
+		lv_allowNonuniqueResult_15_0=	'allowNonuniqueResult' 
+    {
+        newLeafNode(lv_allowNonuniqueResult_15_0, grammarAccess.getDataInterchangeLookupAccess().getAllowNonuniqueResultAllowNonuniqueResultKeyword_10_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+	        }
+       		setWithLastConsumed($current, "allowNonuniqueResult", true, "allowNonuniqueResult");
+	    }
+
+)
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 2)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 2);
+	 				}
+					({true}?=>(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeLookupAccess().getMarkerPathDataInterchangeMarkerPathParserRuleCall_10_2_0()); 
+	    }
+		lv_markerPath_16_0=ruleDataInterchangeMarkerPath		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeLookupRule());
+	        }
+       		set(
+       			$current, 
+       			"markerPath",
+        		lv_markerPath_16_0, 
+        		"DataInterchangeMarkerPath");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+	 				}
+ 				)
+			)  
+
+		)*	
+	)
+)
+	{ 
+	  getUnorderedGroupHelper().leave(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+	}
+
+))
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeMarkerPath
+entryRuleDataInterchangeMarkerPath returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeMarkerPathRule()); }
+	 iv_ruleDataInterchangeMarkerPath=ruleDataInterchangeMarkerPath 
+	 { $current=$iv_ruleDataInterchangeMarkerPath.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeMarkerPath
+ruleDataInterchangeMarkerPath returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeMarkerPathAccess().getDataInterchangeMarkerPathAction_0(),
+            $current);
+    }
+)	otherlv_1='markerPath' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeMarkerPathAccess().getMarkerPathKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getDataInterchangeMarkerPathAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeMarkerPathAccess().getPathDataInterchangeMarkerEntityParserRuleCall_3_0()); 
+	    }
+		lv_path_3_0=ruleDataInterchangeMarkerEntity		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeMarkerPathRule());
+	        }
+       		add(
+       			$current, 
+       			"path",
+        		lv_path_3_0, 
+        		"DataInterchangeMarkerEntity");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getDataInterchangeMarkerPathAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeMarkerEntity
+entryRuleDataInterchangeMarkerEntity returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeMarkerEntityRule()); }
+	 iv_ruleDataInterchangeMarkerEntity=ruleDataInterchangeMarkerEntity 
+	 { $current=$iv_ruleDataInterchangeMarkerEntity.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeMarkerEntity
+ruleDataInterchangeMarkerEntity returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeMarkerEntityAccess().getDataInterchangeMarkerEntityAction_0(),
+            $current);
+    }
+)	otherlv_1='markerEntity' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerEntityKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeMarkerEntityRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerEntityLEntityCrossReference_2_0()); 
+	    }
+		ruleLFQN		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)((
+(
+		lv_markLatest_3_0=	'markedBy' 
+    {
+        newLeafNode(lv_markLatest_3_0, grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkLatestMarkedByKeyword_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeMarkerEntityRule());
+	        }
+       		setWithLastConsumed($current, "markLatest", true, "markedBy");
+	    }
+
+)
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeMarkerEntityRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerPropertyLEntityAttributeCrossReference_3_1_0()); 
+	}
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeFormat
+entryRuleDataInterchangeFormat returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeFormatRule()); }
+	 iv_ruleDataInterchangeFormat=ruleDataInterchangeFormat 
+	 { $current=$iv_ruleDataInterchangeFormat.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeFormat
+ruleDataInterchangeFormat returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeFormatAccess().getDataInterchangeFormatAction_0(),
+            $current);
+    }
+)	otherlv_1='for' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeFormatAccess().getForKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFormatRule());
+	        }
+        }
+	otherlv_2=RULE_ID
+	{
+		newLeafNode(otherlv_2, grammarAccess.getDataInterchangeFormatAccess().getTargetPropertyLEntityAttributeCrossReference_2_0()); 
+	}
+
+)
+)	otherlv_3='coding' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeFormatAccess().getCodingKeyword_3());
+    }
+(
+(
+		lv_format_4_0=RULE_STRING
+		{
+			newLeafNode(lv_format_4_0, grammarAccess.getDataInterchangeFormatAccess().getFormatSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"format",
+        		lv_format_4_0, 
+        		"STRING");
+	    }
+
+)
+)(	otherlv_5='locale' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getDataInterchangeFormatAccess().getLocaleKeyword_5_0());
+    }
+(
+(
+		lv_locale_6_0=RULE_STRING
+		{
+			newLeafNode(lv_locale_6_0, grammarAccess.getDataInterchangeFormatAccess().getLocaleSTRINGTerminalRuleCall_5_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"locale",
+        		lv_locale_6_0, 
+        		"STRING");
+	    }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeExpression
+entryRuleDataInterchangeExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeExpressionRule()); }
+	 iv_ruleDataInterchangeExpression=ruleDataInterchangeExpression 
+	 { $current=$iv_ruleDataInterchangeExpression.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeExpression
+ruleDataInterchangeExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangeEntityExpressionParserRuleCall_0()); 
+    }
+    this_DataInterchangeEntityExpression_0=ruleDataInterchangeEntityExpression
+    { 
+        $current = $this_DataInterchangeEntityExpression_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangePredefinedExpressionParserRuleCall_1()); 
+    }
+    this_DataInterchangePredefinedExpression_1=ruleDataInterchangePredefinedExpression
+    { 
+        $current = $this_DataInterchangePredefinedExpression_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeEntityExpression
+entryRuleDataInterchangeEntityExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeEntityExpressionRule()); }
+	 iv_ruleDataInterchangeEntityExpression=ruleDataInterchangeEntityExpression 
+	 { $current=$iv_ruleDataInterchangeEntityExpression.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeEntityExpression
+ruleDataInterchangeEntityExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeEntityExpressionAccess().getDataInterchangeEntityExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='copy' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeEntityExpressionAccess().getCopyKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeEntityExpressionRule());
+	        }
+        }
+	otherlv_2=RULE_ID
+	{
+		newLeafNode(otherlv_2, grammarAccess.getDataInterchangeEntityExpressionAccess().getTargetPropertyLEntityAttributeCrossReference_2_0()); 
+	}
+
+)
+)	otherlv_3='from' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeEntityExpressionAccess().getFromKeyword_3());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeEntityExpressionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeEntityExpressionAccess().getEntityLEntityCrossReference_4_0()); 
+	    }
+		ruleLFQN		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='property' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyKeyword_5());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeEntityExpressionRule());
+	        }
+        }
+	otherlv_6=RULE_ID
+	{
+		newLeafNode(otherlv_6, grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyLEntityAttributeCrossReference_6_0()); 
+	}
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangePredefinedExpression
+entryRuleDataInterchangePredefinedExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangePredefinedExpressionRule()); }
+	 iv_ruleDataInterchangePredefinedExpression=ruleDataInterchangePredefinedExpression 
+	 { $current=$iv_ruleDataInterchangePredefinedExpression.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangePredefinedExpression
+ruleDataInterchangePredefinedExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangePredefinedExpressionAccess().getDataInterchangePredefinedExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='assign' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangePredefinedExpressionAccess().getAssignKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangePredefinedExpressionRule());
+	        }
+        }
+	otherlv_2=RULE_ID
+	{
+		newLeafNode(otherlv_2, grammarAccess.getDataInterchangePredefinedExpressionAccess().getTargetPropertyLEntityAttributeCrossReference_2_0()); 
+	}
+
+)
+)	otherlv_3='with' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDataInterchangePredefinedExpressionAccess().getWithKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanPredefinedBeanEnumEnumRuleCall_4_0()); 
+	    }
+		lv_bean_4_0=rulePredefinedBeanEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangePredefinedExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"bean",
+        		lv_bean_4_0, 
+        		"PredefinedBeanEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='as' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getDataInterchangePredefinedExpressionAccess().getAsKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanTypePredefinedBeanTypeEnumEnumRuleCall_6_0()); 
+	    }
+		lv_beanType_6_0=rulePredefinedBeanTypeEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangePredefinedExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"beanType",
+        		lv_beanType_6_0, 
+        		"PredefinedBeanTypeEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeMapping
+entryRuleDataInterchangeMapping returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeMappingRule()); }
+	 iv_ruleDataInterchangeMapping=ruleDataInterchangeMapping 
+	 { $current=$iv_ruleDataInterchangeMapping.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeMapping
+ruleDataInterchangeMapping returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDataInterchangeMappingAccess().getDataInterchangeMappingAction_0(),
+            $current);
+    }
+)	otherlv_1='map' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeMappingAccess().getMapKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeMappingRule());
+	        }
+        }
+	otherlv_2=RULE_ID
+	{
+		newLeafNode(otherlv_2, grammarAccess.getDataInterchangeMappingAccess().getPropertyLEntityAttributeCrossReference_2_0()); 
+	}
+
+)
+)	otherlv_3='to' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeMappingAccess().getToKeyword_3());
+    }
+(
+(
+		lv_data_4_0=RULE_STRING
+		{
+			newLeafNode(lv_data_4_0, grammarAccess.getDataInterchangeMappingAccess().getDataSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDataInterchangeMappingRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"data",
+        		lv_data_4_0, 
+        		"STRING");
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeImport
+entryRuleDataInterchangeImport returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeImportRule()); }
+	 iv_ruleDataInterchangeImport=ruleDataInterchangeImport 
+	 { $current=$iv_ruleDataInterchangeImport.current; } 
+	 EOF 
+;
+
+// Rule DataInterchangeImport
+ruleDataInterchangeImport returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='import' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getDataInterchangeImportAccess().getImportKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDataInterchangeImportAccess().getImportedNamespaceDataInterchangeQualifiedNameWithWildCardParserRuleCall_1_0()); 
+	    }
+		lv_importedNamespace_1_0=ruleDataInterchangeQualifiedNameWithWildCard		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDataInterchangeImportRule());
+	        }
+       		set(
+       			$current, 
+       			"importedNamespace",
+        		lv_importedNamespace_1_0, 
+        		"DataInterchangeQualifiedNameWithWildCard");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleDataInterchangeQualifiedNameWithWildCard
+entryRuleDataInterchangeQualifiedNameWithWildCard returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDataInterchangeQualifiedNameWithWildCardRule()); } 
+	 iv_ruleDataInterchangeQualifiedNameWithWildCard=ruleDataInterchangeQualifiedNameWithWildCard 
+	 { $current=$iv_ruleDataInterchangeQualifiedNameWithWildCard.current.getText(); }  
+	 EOF 
+;
+
+// Rule DataInterchangeQualifiedNameWithWildCard
+ruleDataInterchangeQualifiedNameWithWildCard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
+    }
+    this_QualifiedName_0=ruleQualifiedName    {
+		$current.merge(this_QualifiedName_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); 
+    }
+
+	kw='*' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); 
+    }
+)?)
+    ;
+
+
+
+
+
+// Entry rule entryRuleQualifiedName
+entryRuleQualifiedName returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getQualifiedNameRule()); } 
+	 iv_ruleQualifiedName=ruleQualifiedName 
+	 { $current=$iv_ruleQualifiedName.current.getText(); }  
+	 EOF 
+;
+
+// Rule QualifiedName
+ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
+    }
+    this_ValidID_0=ruleValidID    {
+		$current.merge(this_ValidID_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(((
+	'.' 
+)=>
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
+    }
+)
+    { 
+        newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
+    }
+    this_ValidID_2=ruleValidID    {
+		$current.merge(this_ValidID_2);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleValidID
+entryRuleValidID returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getValidIDRule()); } 
+	 iv_ruleValidID=ruleValidID 
+	 { $current=$iv_ruleValidID.current.getText(); }  
+	 EOF 
+;
+
+// Rule ValidID
+ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+    this_ID_0=RULE_ID    {
+		$current.merge(this_ID_0);
+    }
+
+    { 
+    newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleLFQN
+entryRuleLFQN returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getLFQNRule()); } 
+	 iv_ruleLFQN=ruleLFQN 
+	 { $current=$iv_ruleLFQN.current.getText(); }  
+	 EOF 
+;
+
+// Rule LFQN
+ruleLFQN returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(    this_ID_0=RULE_ID    {
+		$current.merge(this_ID_0);
+    }
+
+    { 
+    newLeafNode(this_ID_0, grammarAccess.getLFQNAccess().getIDTerminalRuleCall_0()); 
+    }
+(
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getLFQNAccess().getFullStopKeyword_1_0()); 
+    }
+    this_ID_2=RULE_ID    {
+		$current.merge(this_ID_2);
+    }
+
+    { 
+    newLeafNode(this_ID_2, grammarAccess.getLFQNAccess().getIDTerminalRuleCall_1_1()); 
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleTRANSLATABLESTRING
+entryRuleTRANSLATABLESTRING returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); } 
+	 iv_ruleTRANSLATABLESTRING=ruleTRANSLATABLESTRING 
+	 { $current=$iv_ruleTRANSLATABLESTRING.current.getText(); }  
+	 EOF 
+;
+
+// Rule TRANSLATABLESTRING
+ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+    this_STRING_0=RULE_STRING    {
+		$current.merge(this_STRING_0);
+    }
+
+    { 
+    newLeafNode(this_STRING_0, grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleTRANSLATABLEID
+entryRuleTRANSLATABLEID returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); } 
+	 iv_ruleTRANSLATABLEID=ruleTRANSLATABLEID 
+	 { $current=$iv_ruleTRANSLATABLEID.current.getText(); }  
+	 EOF 
+;
+
+// Rule TRANSLATABLEID
+ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+    this_ID_0=RULE_ID    {
+		$current.merge(this_ID_0);
+    }
+
+    { 
+    newLeafNode(this_ID_0, grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleXAnnotation
+entryRuleXAnnotation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationRule()); }
+	 iv_ruleXAnnotation=ruleXAnnotation 
+	 { $current=$iv_ruleXAnnotation.current; } 
+	 EOF 
+;
+
+// Rule XAnnotation
+ruleXAnnotation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXAnnotationAccess().getXAnnotationAction_0(),
+            $current);
+    }
+)	otherlv_1='@' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXAnnotationRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((	'(' 
+)=>	otherlv_3='(' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
+    }
+)((((((
+(
+		ruleValidID
+)
+)	'=' 
+))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
+	    }
+		lv_elementValuePairs_4_0=ruleXAnnotationElementValuePair		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+	        }
+       		add(
+       			$current, 
+       			"elementValuePairs",
+        		lv_elementValuePairs_4_0, 
+        		"XAnnotationElementValuePair");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5=',' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
+    }
+((((
+(
+		ruleValidID
+)
+)	'=' 
+))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
+	    }
+		lv_elementValuePairs_6_0=ruleXAnnotationElementValuePair		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+	        }
+       		add(
+       			$current, 
+       			"elementValuePairs",
+        		lv_elementValuePairs_6_0, 
+        		"XAnnotationElementValuePair");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
+	    }
+		lv_value_7_0=ruleXAnnotationElementValueOrCommaList		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_7_0, 
+        		"XAnnotationElementValueOrCommaList");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_8=')' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleXAnnotationElementValuePair
+entryRuleXAnnotationElementValuePair returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); }
+	 iv_ruleXAnnotationElementValuePair=ruleXAnnotationElementValuePair 
+	 { $current=$iv_ruleXAnnotationElementValuePair.current; } 
+	 EOF 
+;
+
+// Rule XAnnotationElementValuePair
+ruleXAnnotationElementValuePair returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((((
+(
+		ruleValidID
+)
+)	'=' 
+))=>((
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXAnnotationElementValuePairRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
+	    }
+		ruleValidID		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_1='=' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
+	    }
+		lv_value_2_0=ruleXAnnotationElementValue		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValuePairRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_2_0, 
+        		"XAnnotationElementValue");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXAnnotationElementValueOrCommaList
+entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); }
+	 iv_ruleXAnnotationElementValueOrCommaList=ruleXAnnotationElementValueOrCommaList 
+	 { $current=$iv_ruleXAnnotationElementValueOrCommaList.current; } 
+	 EOF 
+;
+
+// Rule XAnnotationElementValueOrCommaList
+ruleXAnnotationElementValueOrCommaList returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((((((
+)	'#' 
+	'[' 
+))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0(),
+            $current);
+    }
+)	otherlv_1='#' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
+    }
+	otherlv_2='[' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
+    }
+))((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+	    }
+		lv_elements_3_0=ruleXAnnotationOrExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_3_0, 
+        		"XAnnotationOrExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+	    }
+		lv_elements_5_0=ruleXAnnotationOrExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_5_0, 
+        		"XAnnotationOrExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_6=']' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
+    }
+)
+    |(
+    { 
+        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
+    }
+    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression
+    { 
+        $current = $this_XAnnotationOrExpression_7.current; 
+        afterParserOrEnumRuleCall();
+    }
+((
+    {
+        $current = forceCreateModelElementAndAdd(
+            grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0(),
+            $current);
+    }
+)(	otherlv_9=',' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
+	    }
+		lv_elements_10_0=ruleXAnnotationOrExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_10_0, 
+        		"XAnnotationOrExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))+)?))
+;
+
+
+
+
+
+// Entry rule entryRuleXAnnotationElementValue
+entryRuleXAnnotationElementValue returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); }
+	 iv_ruleXAnnotationElementValue=ruleXAnnotationElementValue 
+	 { $current=$iv_ruleXAnnotationElementValue.current; } 
+	 EOF 
+;
+
+// Rule XAnnotationElementValue
+ruleXAnnotationElementValue returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((((((
+)	'#' 
+	'[' 
+))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0(),
+            $current);
+    }
+)	otherlv_1='#' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
+    }
+	otherlv_2='[' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
+    }
+))((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+	    }
+		lv_elements_3_0=ruleXAnnotationOrExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_3_0, 
+        		"XAnnotationOrExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+	    }
+		lv_elements_5_0=ruleXAnnotationOrExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_5_0, 
+        		"XAnnotationOrExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_6=']' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
+    }
+)
+    |
+    { 
+        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
+    }
+    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression
+    { 
+        $current = $this_XAnnotationOrExpression_7.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXAnnotationOrExpression
+entryRuleXAnnotationOrExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); }
+	 iv_ruleXAnnotationOrExpression=ruleXAnnotationOrExpression 
+	 { $current=$iv_ruleXAnnotationOrExpression.current; } 
+	 EOF 
+;
+
+// Rule XAnnotationOrExpression
+ruleXAnnotationOrExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
+    }
+    this_XAnnotation_0=ruleXAnnotation
+    { 
+        $current = $this_XAnnotation_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
+    }
+    this_XExpression_1=ruleXExpression
+    { 
+        $current = $this_XExpression_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXExpression
+entryRuleXExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXExpressionRule()); }
+	 iv_ruleXExpression=ruleXExpression 
+	 { $current=$iv_ruleXExpression.current; } 
+	 EOF 
+;
+
+// Rule XExpression
+ruleXExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+
+    { 
+        newCompositeNode(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
+    }
+    this_XAssignment_0=ruleXAssignment
+    { 
+        $current = $this_XAssignment_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+;
+
+
+
+
+
+// Entry rule entryRuleXAssignment
+entryRuleXAssignment returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAssignmentRule()); }
+	 iv_ruleXAssignment=ruleXAssignment 
+	 { $current=$iv_ruleXAssignment.current; } 
+	 EOF 
+;
+
+// Rule XAssignment
+ruleXAssignment returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXAssignmentRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
+	    }
+		ruleFeatureCallID		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    { 
+        newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
+    }
+ruleOpSingleAssign
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
+	    }
+		lv_value_3_0=ruleXAssignment		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_3_0, 
+        		"XAssignment");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+    |(
+    { 
+        newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
+    }
+    this_XOrExpression_4=ruleXOrExpression
+    { 
+        $current = $this_XOrExpression_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+(((((
+)(
+(
+		ruleOpMultiAssign
+)
+)))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXAssignmentRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+	    }
+		ruleOpMultiAssign		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
+	    }
+		lv_rightOperand_7_0=ruleXAssignment		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+	        }
+       		set(
+       			$current, 
+       			"rightOperand",
+        		lv_rightOperand_7_0, 
+        		"XAssignment");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?))
+;
+
+
+
+
+
+// Entry rule entryRuleOpSingleAssign
+entryRuleOpSingleAssign returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpSingleAssignRule()); } 
+	 iv_ruleOpSingleAssign=ruleOpSingleAssign 
+	 { $current=$iv_ruleOpSingleAssign.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpSingleAssign
+ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+
+	kw='=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleOpMultiAssign
+entryRuleOpMultiAssign returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpMultiAssignRule()); } 
+	 iv_ruleOpMultiAssign=ruleOpMultiAssign 
+	 { $current=$iv_ruleOpMultiAssign.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpMultiAssign
+ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='+=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
+    }
+
+    |
+	kw='-=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
+    }
+
+    |
+	kw='*=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
+    }
+
+    |
+	kw='/=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
+    }
+
+    |
+	kw='%=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
+    }
+
+    |(
+	kw='<' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
+    }
+
+	kw='<' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
+    }
+
+	kw='=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
+    }
+)
+    |(
+	kw='>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
+    }
+(
+	kw='>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
+    }
+)?
+	kw='>=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
+    }
+))
+    ;
+
+
+
+
+
+// Entry rule entryRuleXOrExpression
+entryRuleXOrExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXOrExpressionRule()); }
+	 iv_ruleXOrExpression=ruleXOrExpression 
+	 { $current=$iv_ruleXOrExpression.current; } 
+	 EOF 
+;
+
+// Rule XOrExpression
+ruleXOrExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
+    }
+    this_XAndExpression_0=ruleXAndExpression
+    { 
+        $current = $this_XAndExpression_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+(((((
+)(
+(
+		ruleOpOr
+)
+)))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXOrExpressionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+	    }
+		ruleOpOr		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
+	    }
+		lv_rightOperand_3_0=ruleXAndExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXOrExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"rightOperand",
+        		lv_rightOperand_3_0, 
+        		"XAndExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpOr
+entryRuleOpOr returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpOrRule()); } 
+	 iv_ruleOpOr=ruleOpOr 
+	 { $current=$iv_ruleOpOr.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpOr
+ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+
+	kw='||' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleXAndExpression
+entryRuleXAndExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAndExpressionRule()); }
+	 iv_ruleXAndExpression=ruleXAndExpression 
+	 { $current=$iv_ruleXAndExpression.current; } 
+	 EOF 
+;
+
+// Rule XAndExpression
+ruleXAndExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
+    }
+    this_XEqualityExpression_0=ruleXEqualityExpression
+    { 
+        $current = $this_XEqualityExpression_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+(((((
+)(
+(
+		ruleOpAnd
+)
+)))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXAndExpressionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+	    }
+		ruleOpAnd		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
+	    }
+		lv_rightOperand_3_0=ruleXEqualityExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"rightOperand",
+        		lv_rightOperand_3_0, 
+        		"XEqualityExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpAnd
+entryRuleOpAnd returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpAndRule()); } 
+	 iv_ruleOpAnd=ruleOpAnd 
+	 { $current=$iv_ruleOpAnd.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpAnd
+ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+
+	kw='&&' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleXEqualityExpression
+entryRuleXEqualityExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXEqualityExpressionRule()); }
+	 iv_ruleXEqualityExpression=ruleXEqualityExpression 
+	 { $current=$iv_ruleXEqualityExpression.current; } 
+	 EOF 
+;
+
+// Rule XEqualityExpression
+ruleXEqualityExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
+    }
+    this_XRelationalExpression_0=ruleXRelationalExpression
+    { 
+        $current = $this_XRelationalExpression_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+(((((
+)(
+(
+		ruleOpEquality
+)
+)))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+	    }
+		ruleOpEquality		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
+	    }
+		lv_rightOperand_3_0=ruleXRelationalExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"rightOperand",
+        		lv_rightOperand_3_0, 
+        		"XRelationalExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpEquality
+entryRuleOpEquality returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpEqualityRule()); } 
+	 iv_ruleOpEquality=ruleOpEquality 
+	 { $current=$iv_ruleOpEquality.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpEquality
+ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='==' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
+    }
+
+    |
+	kw='!=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
+    }
+
+    |
+	kw='===' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
+    }
+
+    |
+	kw='!==' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXRelationalExpression
+entryRuleXRelationalExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXRelationalExpressionRule()); }
+	 iv_ruleXRelationalExpression=ruleXRelationalExpression 
+	 { $current=$iv_ruleXRelationalExpression.current; } 
+	 EOF 
+;
+
+// Rule XRelationalExpression
+ruleXRelationalExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
+    }
+    this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression
+    { 
+        $current = $this_XOtherOperatorExpression_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+((((((
+)	'instanceof' 
+))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+            $current);
+    }
+)	otherlv_2='instanceof' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
+	    }
+		lv_type_3_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"type",
+        		lv_type_3_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+    |(((((
+)(
+(
+		ruleOpCompare
+)
+)))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+	    }
+		ruleOpCompare		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
+	    }
+		lv_rightOperand_6_0=ruleXOtherOperatorExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"rightOperand",
+        		lv_rightOperand_6_0, 
+        		"XOtherOperatorExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpCompare
+entryRuleOpCompare returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpCompareRule()); } 
+	 iv_ruleOpCompare=ruleOpCompare 
+	 { $current=$iv_ruleOpCompare.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpCompare
+ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='>=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
+    }
+
+    |(
+	kw='<' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
+    }
+
+	kw='=' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
+    }
+)
+    |
+	kw='>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
+    }
+
+    |
+	kw='<' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXOtherOperatorExpression
+entryRuleXOtherOperatorExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); }
+	 iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression 
+	 { $current=$iv_ruleXOtherOperatorExpression.current; } 
+	 EOF 
+;
+
+// Rule XOtherOperatorExpression
+ruleXOtherOperatorExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
+    }
+    this_XAdditiveExpression_0=ruleXAdditiveExpression
+    { 
+        $current = $this_XAdditiveExpression_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+(((((
+)(
+(
+		ruleOpOther
+)
+)))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+	    }
+		ruleOpOther		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
+	    }
+		lv_rightOperand_3_0=ruleXAdditiveExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"rightOperand",
+        		lv_rightOperand_3_0, 
+        		"XAdditiveExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpOther
+entryRuleOpOther returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpOtherRule()); } 
+	 iv_ruleOpOther=ruleOpOther 
+	 { $current=$iv_ruleOpOther.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpOther
+ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='->' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
+    }
+
+    |
+	kw='..<' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
+    }
+
+    |(
+	kw='>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
+    }
+
+	kw='..' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
+    }
+)
+    |
+	kw='..' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
+    }
+
+    |
+	kw='=>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
+    }
+
+    |(
+	kw='>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
+    }
+((((
+	'>' 
+
+	'>' 
+))=>(
+	kw='>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
+    }
+
+	kw='>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
+    }
+))
+    |
+	kw='>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
+    }
+))
+    |(
+	kw='<' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
+    }
+((((
+	'<' 
+
+	'<' 
+))=>(
+	kw='<' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
+    }
+
+	kw='<' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
+    }
+))
+    |
+	kw='<' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
+    }
+
+    |
+	kw='=>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
+    }
+))
+    |
+	kw='<>' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
+    }
+
+    |
+	kw='?:' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXAdditiveExpression
+entryRuleXAdditiveExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); }
+	 iv_ruleXAdditiveExpression=ruleXAdditiveExpression 
+	 { $current=$iv_ruleXAdditiveExpression.current; } 
+	 EOF 
+;
+
+// Rule XAdditiveExpression
+ruleXAdditiveExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
+    }
+    this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression
+    { 
+        $current = $this_XMultiplicativeExpression_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+(((((
+)(
+(
+		ruleOpAdd
+)
+)))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXAdditiveExpressionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+	    }
+		ruleOpAdd		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
+	    }
+		lv_rightOperand_3_0=ruleXMultiplicativeExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXAdditiveExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"rightOperand",
+        		lv_rightOperand_3_0, 
+        		"XMultiplicativeExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpAdd
+entryRuleOpAdd returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpAddRule()); } 
+	 iv_ruleOpAdd=ruleOpAdd 
+	 { $current=$iv_ruleOpAdd.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpAdd
+ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='+' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
+    }
+
+    |
+	kw='-' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXMultiplicativeExpression
+entryRuleXMultiplicativeExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); }
+	 iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression 
+	 { $current=$iv_ruleXMultiplicativeExpression.current; } 
+	 EOF 
+;
+
+// Rule XMultiplicativeExpression
+ruleXMultiplicativeExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
+    }
+    this_XUnaryOperation_0=ruleXUnaryOperation
+    { 
+        $current = $this_XUnaryOperation_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+(((((
+)(
+(
+		ruleOpMulti
+)
+)))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+	    }
+		ruleOpMulti		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
+	    }
+		lv_rightOperand_3_0=ruleXUnaryOperation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"rightOperand",
+        		lv_rightOperand_3_0, 
+        		"XUnaryOperation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpMulti
+entryRuleOpMulti returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpMultiRule()); } 
+	 iv_ruleOpMulti=ruleOpMulti 
+	 { $current=$iv_ruleOpMulti.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpMulti
+ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='*' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
+    }
+
+    |
+	kw='**' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
+    }
+
+    |
+	kw='/' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
+    }
+
+    |
+	kw='%' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXUnaryOperation
+entryRuleXUnaryOperation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXUnaryOperationRule()); }
+	 iv_ruleXUnaryOperation=ruleXUnaryOperation 
+	 { $current=$iv_ruleXUnaryOperation.current; } 
+	 EOF 
+;
+
+// Rule XUnaryOperation
+ruleXUnaryOperation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXUnaryOperationRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
+	    }
+		ruleOpUnary		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
+	    }
+		lv_operand_2_0=ruleXUnaryOperation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXUnaryOperationRule());
+	        }
+       		set(
+       			$current, 
+       			"operand",
+        		lv_operand_2_0, 
+        		"XUnaryOperation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+    |
+    { 
+        newCompositeNode(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
+    }
+    this_XCastedExpression_3=ruleXCastedExpression
+    { 
+        $current = $this_XCastedExpression_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleOpUnary
+entryRuleOpUnary returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpUnaryRule()); } 
+	 iv_ruleOpUnary=ruleOpUnary 
+	 { $current=$iv_ruleOpUnary.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpUnary
+ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='!' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
+    }
+
+    |
+	kw='-' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
+    }
+
+    |
+	kw='+' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXCastedExpression
+entryRuleXCastedExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXCastedExpressionRule()); }
+	 iv_ruleXCastedExpression=ruleXCastedExpression 
+	 { $current=$iv_ruleXCastedExpression.current; } 
+	 EOF 
+;
+
+// Rule XCastedExpression
+ruleXCastedExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
+    }
+    this_XPostfixOperation_0=ruleXPostfixOperation
+    { 
+        $current = $this_XPostfixOperation_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+(((((
+)	'as' 
+))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0(),
+            $current);
+    }
+)	otherlv_2='as' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
+	    }
+		lv_type_3_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCastedExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"type",
+        		lv_type_3_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleXPostfixOperation
+entryRuleXPostfixOperation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXPostfixOperationRule()); }
+	 iv_ruleXPostfixOperation=ruleXPostfixOperation 
+	 { $current=$iv_ruleXPostfixOperation.current; } 
+	 EOF 
+;
+
+// Rule XPostfixOperation
+ruleXPostfixOperation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
+    }
+    this_XMemberFeatureCall_0=ruleXMemberFeatureCall
+    { 
+        $current = $this_XMemberFeatureCall_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+((((
+)(
+(
+		ruleOpPostfix
+)
+)))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0(),
+            $current);
+    }
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXPostfixOperationRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
+	    }
+		ruleOpPostfix		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))?)
+;
+
+
+
+
+
+// Entry rule entryRuleOpPostfix
+entryRuleOpPostfix returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getOpPostfixRule()); } 
+	 iv_ruleOpPostfix=ruleOpPostfix 
+	 { $current=$iv_ruleOpPostfix.current.getText(); }  
+	 EOF 
+;
+
+// Rule OpPostfix
+ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='++' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
+    }
+
+    |
+	kw='--' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXMemberFeatureCall
+entryRuleXMemberFeatureCall returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); }
+	 iv_ruleXMemberFeatureCall=ruleXMemberFeatureCall 
+	 { $current=$iv_ruleXMemberFeatureCall.current; } 
+	 EOF 
+;
+
+// Rule XMemberFeatureCall
+ruleXMemberFeatureCall returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
+    }
+    this_XPrimaryExpression_0=ruleXPrimaryExpression
+    { 
+        $current = $this_XPrimaryExpression_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+((((((
+)(	'.' 
+
+    |(
+(
+	'::' 
+ 
+
+)
+))(
+(
+		ruleFeatureCallID
+)
+)	ruleOpSingleAssign))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0(),
+            $current);
+    }
+)(	otherlv_2='.' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
+    }
+
+    |(
+(
+		lv_explicitStatic_3_0=	'::' 
+    {
+        newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		setWithLastConsumed($current, "explicitStatic", true, "::");
+	    }
+
+)
+))(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
+	    }
+		ruleFeatureCallID		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    { 
+        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
+    }
+ruleOpSingleAssign
+    { 
+        afterParserOrEnumRuleCall();
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
+	    }
+		lv_value_6_0=ruleXAssignment		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_6_0, 
+        		"XAssignment");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+    |(((((
+)(	'.' 
+
+    |(
+(
+	'?.' 
+ 
+
+)
+)
+    |(
+(
+	'::' 
+ 
+
+)
+))))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0(),
+            $current);
+    }
+)(	otherlv_8='.' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
+    }
+
+    |(
+(
+		lv_nullSafe_9_0=	'?.' 
+    {
+        newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		setWithLastConsumed($current, "nullSafe", true, "?.");
+	    }
+
+)
+)
+    |(
+(
+		lv_explicitStatic_10_0=	'::' 
+    {
+        newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		setWithLastConsumed($current, "explicitStatic", true, "::");
+	    }
+
+)
+))))(	otherlv_11='<' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
+	    }
+		lv_typeArguments_12_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_12_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_13=',' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
+	    }
+		lv_typeArguments_14_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_14_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_15='>' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
+	    }
+		ruleIdOrSuper		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((
+(
+	'(' 
+ 
+
+)
+)=>
+(
+		lv_explicitOperationCall_17_0=	'(' 
+    {
+        newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		setWithLastConsumed($current, "explicitOperationCall", true, "(");
+	    }
+
+)
+)(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
+	    }
+		lv_memberCallArguments_18_0=ruleXShortClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"memberCallArguments",
+        		lv_memberCallArguments_18_0, 
+        		"XShortClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
+	    }
+		lv_memberCallArguments_19_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"memberCallArguments",
+        		lv_memberCallArguments_19_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_20=',' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
+	    }
+		lv_memberCallArguments_21_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"memberCallArguments",
+        		lv_memberCallArguments_21_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*))?	otherlv_22=')' 
+    {
+    	newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
+    }
+)?((((
+)	'[' 
+))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
+	    }
+		lv_memberCallArguments_23_0=ruleXClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"memberCallArguments",
+        		lv_memberCallArguments_23_0, 
+        		"XClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?))*)
+;
+
+
+
+
+
+// Entry rule entryRuleXPrimaryExpression
+entryRuleXPrimaryExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); }
+	 iv_ruleXPrimaryExpression=ruleXPrimaryExpression 
+	 { $current=$iv_ruleXPrimaryExpression.current; } 
+	 EOF 
+;
+
+// Rule XPrimaryExpression
+ruleXPrimaryExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
+    }
+    this_XConstructorCall_0=ruleXConstructorCall
+    { 
+        $current = $this_XConstructorCall_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
+    }
+    this_XBlockExpression_1=ruleXBlockExpression
+    { 
+        $current = $this_XBlockExpression_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
+    }
+    this_XSwitchExpression_2=ruleXSwitchExpression
+    { 
+        $current = $this_XSwitchExpression_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |((((
+)	'synchronized' 
+	'(' 
+))=>
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
+    }
+    this_XSynchronizedExpression_3=ruleXSynchronizedExpression
+    { 
+        $current = $this_XSynchronizedExpression_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
+    }
+    this_XFeatureCall_4=ruleXFeatureCall
+    { 
+        $current = $this_XFeatureCall_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
+    }
+    this_XLiteral_5=ruleXLiteral
+    { 
+        $current = $this_XLiteral_5.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
+    }
+    this_XIfExpression_6=ruleXIfExpression
+    { 
+        $current = $this_XIfExpression_6.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |((((
+)	'for' 
+	'(' 
+(
+(
+ruleJvmFormalParameter
+)
+)	':' 
+))=>
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
+    }
+    this_XForLoopExpression_7=ruleXForLoopExpression
+    { 
+        $current = $this_XForLoopExpression_7.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
+    }
+    this_XBasicForLoopExpression_8=ruleXBasicForLoopExpression
+    { 
+        $current = $this_XBasicForLoopExpression_8.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
+    }
+    this_XWhileExpression_9=ruleXWhileExpression
+    { 
+        $current = $this_XWhileExpression_9.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
+    }
+    this_XDoWhileExpression_10=ruleXDoWhileExpression
+    { 
+        $current = $this_XDoWhileExpression_10.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
+    }
+    this_XThrowExpression_11=ruleXThrowExpression
+    { 
+        $current = $this_XThrowExpression_11.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
+    }
+    this_XReturnExpression_12=ruleXReturnExpression
+    { 
+        $current = $this_XReturnExpression_12.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
+    }
+    this_XTryCatchFinallyExpression_13=ruleXTryCatchFinallyExpression
+    { 
+        $current = $this_XTryCatchFinallyExpression_13.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
+    }
+    this_XParenthesizedExpression_14=ruleXParenthesizedExpression
+    { 
+        $current = $this_XParenthesizedExpression_14.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXLiteral
+entryRuleXLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXLiteralRule()); }
+	 iv_ruleXLiteral=ruleXLiteral 
+	 { $current=$iv_ruleXLiteral.current; } 
+	 EOF 
+;
+
+// Rule XLiteral
+ruleXLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
+    }
+    this_XCollectionLiteral_0=ruleXCollectionLiteral
+    { 
+        $current = $this_XCollectionLiteral_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |((((
+)	'[' 
+))=>
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
+    }
+    this_XClosure_1=ruleXClosure
+    { 
+        $current = $this_XClosure_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
+    }
+    this_XBooleanLiteral_2=ruleXBooleanLiteral
+    { 
+        $current = $this_XBooleanLiteral_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
+    }
+    this_XNumberLiteral_3=ruleXNumberLiteral
+    { 
+        $current = $this_XNumberLiteral_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
+    }
+    this_XNullLiteral_4=ruleXNullLiteral
+    { 
+        $current = $this_XNullLiteral_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
+    }
+    this_XStringLiteral_5=ruleXStringLiteral
+    { 
+        $current = $this_XStringLiteral_5.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
+    }
+    this_XTypeLiteral_6=ruleXTypeLiteral
+    { 
+        $current = $this_XTypeLiteral_6.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXCollectionLiteral
+entryRuleXCollectionLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXCollectionLiteralRule()); }
+	 iv_ruleXCollectionLiteral=ruleXCollectionLiteral 
+	 { $current=$iv_ruleXCollectionLiteral.current; } 
+	 EOF 
+;
+
+// Rule XCollectionLiteral
+ruleXCollectionLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
+    }
+    this_XSetLiteral_0=ruleXSetLiteral
+    { 
+        $current = $this_XSetLiteral_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
+    }
+    this_XListLiteral_1=ruleXListLiteral
+    { 
+        $current = $this_XListLiteral_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXSetLiteral
+entryRuleXSetLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXSetLiteralRule()); }
+	 iv_ruleXSetLiteral=ruleXSetLiteral 
+	 { $current=$iv_ruleXSetLiteral.current; } 
+	 EOF 
+;
+
+// Rule XSetLiteral
+ruleXSetLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0(),
+            $current);
+    }
+)	otherlv_1='#' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
+	    }
+		lv_elements_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
+	    }
+		lv_elements_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_6='}' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXListLiteral
+entryRuleXListLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXListLiteralRule()); }
+	 iv_ruleXListLiteral=ruleXListLiteral 
+	 { $current=$iv_ruleXListLiteral.current; } 
+	 EOF 
+;
+
+// Rule XListLiteral
+ruleXListLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXListLiteralAccess().getXListLiteralAction_0(),
+            $current);
+    }
+)	otherlv_1='#' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
+    }
+	otherlv_2='[' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
+	    }
+		lv_elements_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
+	    }
+		lv_elements_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_6=']' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXClosure
+entryRuleXClosure returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXClosureRule()); }
+	 iv_ruleXClosure=ruleXClosure 
+	 { $current=$iv_ruleXClosure.current; } 
+	 EOF 
+;
+
+// Rule XClosure
+ruleXClosure returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((((
+)	'[' 
+))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXClosureAccess().getXClosureAction_0_0_0(),
+            $current);
+    }
+)	otherlv_1='[' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
+    }
+))(((((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>(((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
+	    }
+		lv_declaredFormalParameters_2_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"declaredFormalParameters",
+        		lv_declaredFormalParameters_2_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3=',' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
+	    }
+		lv_declaredFormalParameters_4_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"declaredFormalParameters",
+        		lv_declaredFormalParameters_4_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?(
+(
+		lv_explicitSyntax_5_0=	'|' 
+    {
+        newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXClosureRule());
+	        }
+       		setWithLastConsumed($current, "explicitSyntax", true, "|");
+	    }
+
+)
+)))?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
+	    }
+		lv_expression_6_0=ruleXExpressionInClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXClosureRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_6_0, 
+        		"XExpressionInClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7=']' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXExpressionInClosure
+entryRuleXExpressionInClosure returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXExpressionInClosureRule()); }
+	 iv_ruleXExpressionInClosure=ruleXExpressionInClosure 
+	 { $current=$iv_ruleXExpressionInClosure.current; } 
+	 EOF 
+;
+
+// Rule XExpressionInClosure
+ruleXExpressionInClosure returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0(),
+            $current);
+    }
+)((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
+	    }
+		lv_expressions_1_0=ruleXExpressionOrVarDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXExpressionInClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"expressions",
+        		lv_expressions_1_0, 
+        		"XExpressionOrVarDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2=';' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+    }
+)?)*)
+;
+
+
+
+
+
+// Entry rule entryRuleXShortClosure
+entryRuleXShortClosure returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXShortClosureRule()); }
+	 iv_ruleXShortClosure=ruleXShortClosure 
+	 { $current=$iv_ruleXShortClosure.current; } 
+	 EOF 
+;
+
+// Rule XShortClosure
+ruleXShortClosure returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0(),
+            $current);
+    }
+)((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
+	    }
+		lv_declaredFormalParameters_1_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"declaredFormalParameters",
+        		lv_declaredFormalParameters_1_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2=',' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
+	    }
+		lv_declaredFormalParameters_3_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"declaredFormalParameters",
+        		lv_declaredFormalParameters_3_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?(
+(
+		lv_explicitSyntax_4_0=	'|' 
+    {
+        newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXShortClosureRule());
+	        }
+       		setWithLastConsumed($current, "explicitSyntax", true, "|");
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
+	    }
+		lv_expression_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXParenthesizedExpression
+entryRuleXParenthesizedExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); }
+	 iv_ruleXParenthesizedExpression=ruleXParenthesizedExpression 
+	 { $current=$iv_ruleXParenthesizedExpression.current; } 
+	 EOF 
+;
+
+// Rule XParenthesizedExpression
+ruleXParenthesizedExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='(' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
+    }
+    this_XExpression_1=ruleXExpression
+    { 
+        $current = $this_XExpression_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+	otherlv_2=')' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXIfExpression
+entryRuleXIfExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXIfExpressionRule()); }
+	 iv_ruleXIfExpression=ruleXIfExpression 
+	 { $current=$iv_ruleXIfExpression.current; } 
+	 EOF 
+;
+
+// Rule XIfExpression
+ruleXIfExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='if' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
+	    }
+		lv_if_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"if",
+        		lv_if_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
+	    }
+		lv_then_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"then",
+        		lv_then_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((	'else' 
+)=>	otherlv_6='else' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
+	    }
+		lv_else_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"else",
+        		lv_else_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleXSwitchExpression
+entryRuleXSwitchExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXSwitchExpressionRule()); }
+	 iv_ruleXSwitchExpression=ruleXSwitchExpression 
+	 { $current=$iv_ruleXSwitchExpression.current; } 
+	 EOF 
+;
+
+// Rule XSwitchExpression
+ruleXSwitchExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='switch' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
+    }
+(((((	'(' 
+(
+(
+ruleJvmFormalParameter
+)
+)	':' 
+))=>(	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
+	    }
+		lv_declaredParam_3_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"declaredParam",
+        		lv_declaredParam_3_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=':' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
+	    }
+		lv_switch_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"switch",
+        		lv_switch_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_6=')' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
+    }
+)
+    |(((((
+(
+ruleJvmFormalParameter
+)
+)	':' 
+))=>((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
+	    }
+		lv_declaredParam_7_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"declaredParam",
+        		lv_declaredParam_7_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8=':' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
+    }
+))?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
+	    }
+		lv_switch_9_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"switch",
+        		lv_switch_9_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))	otherlv_10='{' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
+	    }
+		lv_cases_11_0=ruleXCasePart		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"cases",
+        		lv_cases_11_0, 
+        		"XCasePart");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*(	otherlv_12='default' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
+    }
+	otherlv_13=':' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
+	    }
+		lv_default_14_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"default",
+        		lv_default_14_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_15='}' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXCasePart
+entryRuleXCasePart returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXCasePartRule()); }
+	 iv_ruleXCasePart=ruleXCasePart 
+	 { $current=$iv_ruleXCasePart.current; } 
+	 EOF 
+;
+
+// Rule XCasePart
+ruleXCasePart returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXCasePartAccess().getXCasePartAction_0(),
+            $current);
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeGuard_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCasePartRule());
+	        }
+       		set(
+       			$current, 
+       			"typeGuard",
+        		lv_typeGuard_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?(	otherlv_2='case' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
+	    }
+		lv_case_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCasePartRule());
+	        }
+       		set(
+       			$current, 
+       			"case",
+        		lv_case_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?((	otherlv_4=':' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
+	    }
+		lv_then_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCasePartRule());
+	        }
+       		set(
+       			$current, 
+       			"then",
+        		lv_then_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+    |(
+(
+		lv_fallThrough_6_0=	',' 
+    {
+        newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXCasePartRule());
+	        }
+       		setWithLastConsumed($current, "fallThrough", true, ",");
+	    }
+
+)
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleXForLoopExpression
+entryRuleXForLoopExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXForLoopExpressionRule()); }
+	 iv_ruleXForLoopExpression=ruleXForLoopExpression 
+	 { $current=$iv_ruleXForLoopExpression.current; } 
+	 EOF 
+;
+
+// Rule XForLoopExpression
+ruleXForLoopExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((((
+)	'for' 
+	'(' 
+(
+(
+ruleJvmFormalParameter
+)
+)	':' 
+))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0(),
+            $current);
+    }
+)	otherlv_1='for' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
+	    }
+		lv_declaredParam_3_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"declaredParam",
+        		lv_declaredParam_3_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=':' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
+	    }
+		lv_forExpression_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"forExpression",
+        		lv_forExpression_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_6=')' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
+	    }
+		lv_eachExpression_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"eachExpression",
+        		lv_eachExpression_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXBasicForLoopExpression
+entryRuleXBasicForLoopExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXBasicForLoopExpressionRule()); }
+	 iv_ruleXBasicForLoopExpression=ruleXBasicForLoopExpression 
+	 { $current=$iv_ruleXBasicForLoopExpression.current; } 
+	 EOF 
+;
+
+// Rule XBasicForLoopExpression
+ruleXBasicForLoopExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='for' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
+	    }
+		lv_initExpressions_3_0=ruleXExpressionOrVarDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"initExpressions",
+        		lv_initExpressions_3_0, 
+        		"XExpressionOrVarDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
+	    }
+		lv_initExpressions_5_0=ruleXExpressionOrVarDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"initExpressions",
+        		lv_initExpressions_5_0, 
+        		"XExpressionOrVarDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_6=';' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
+	    }
+		lv_expression_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?	otherlv_8=';' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
+	    }
+		lv_updateExpressions_9_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"updateExpressions",
+        		lv_updateExpressions_9_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
+	    }
+		lv_updateExpressions_11_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"updateExpressions",
+        		lv_updateExpressions_11_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_12=')' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
+	    }
+		lv_eachExpression_13_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"eachExpression",
+        		lv_eachExpression_13_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXWhileExpression
+entryRuleXWhileExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXWhileExpressionRule()); }
+	 iv_ruleXWhileExpression=ruleXWhileExpression 
+	 { $current=$iv_ruleXWhileExpression.current; } 
+	 EOF 
+;
+
+// Rule XWhileExpression
+ruleXWhileExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='while' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
+	    }
+		lv_predicate_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"predicate",
+        		lv_predicate_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
+	    }
+		lv_body_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"body",
+        		lv_body_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXDoWhileExpression
+entryRuleXDoWhileExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); }
+	 iv_ruleXDoWhileExpression=ruleXDoWhileExpression 
+	 { $current=$iv_ruleXDoWhileExpression.current; } 
+	 EOF 
+;
+
+// Rule XDoWhileExpression
+ruleXDoWhileExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='do' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
+	    }
+		lv_body_2_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"body",
+        		lv_body_2_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3='while' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
+    }
+	otherlv_4='(' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
+	    }
+		lv_predicate_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"predicate",
+        		lv_predicate_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_6=')' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXBlockExpression
+entryRuleXBlockExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXBlockExpressionRule()); }
+	 iv_ruleXBlockExpression=ruleXBlockExpression 
+	 { $current=$iv_ruleXBlockExpression.current; } 
+	 EOF 
+;
+
+// Rule XBlockExpression
+ruleXBlockExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
+	    }
+		lv_expressions_2_0=ruleXExpressionOrVarDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBlockExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"expressions",
+        		lv_expressions_2_0, 
+        		"XExpressionOrVarDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3=';' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+    }
+)?)*	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXExpressionOrVarDeclaration
+entryRuleXExpressionOrVarDeclaration returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationRule()); }
+	 iv_ruleXExpressionOrVarDeclaration=ruleXExpressionOrVarDeclaration 
+	 { $current=$iv_ruleXExpressionOrVarDeclaration.current; } 
+	 EOF 
+;
+
+// Rule XExpressionOrVarDeclaration
+ruleXExpressionOrVarDeclaration returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
+    }
+    this_XVariableDeclaration_0=ruleXVariableDeclaration
+    { 
+        $current = $this_XVariableDeclaration_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
+    }
+    this_XExpression_1=ruleXExpression
+    { 
+        $current = $this_XExpression_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXVariableDeclaration
+entryRuleXVariableDeclaration returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXVariableDeclarationRule()); }
+	 iv_ruleXVariableDeclaration=ruleXVariableDeclaration 
+	 { $current=$iv_ruleXVariableDeclaration.current; } 
+	 EOF 
+;
+
+// Rule XVariableDeclaration
+ruleXVariableDeclaration returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0(),
+            $current);
+    }
+)((
+(
+		lv_writeable_1_0=	'var' 
+    {
+        newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		setWithLastConsumed($current, "writeable", true, "var");
+	    }
+
+)
+)
+    |	otherlv_2='val' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
+    }
+)(((((
+(
+ruleJvmTypeReference
+)
+)(
+(
+ruleValidID
+)
+)))=>((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
+	    }
+		lv_type_3_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"type",
+        		lv_type_3_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
+	    }
+		lv_name_4_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_4_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
+	    }
+		lv_name_5_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_5_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))(	otherlv_6='=' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
+	    }
+		lv_right_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"right",
+        		lv_right_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmFormalParameter
+entryRuleJvmFormalParameter returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmFormalParameterRule()); }
+	 iv_ruleJvmFormalParameter=ruleJvmFormalParameter 
+	 { $current=$iv_ruleJvmFormalParameter.current; } 
+	 EOF 
+;
+
+// Rule JvmFormalParameter
+ruleJvmFormalParameter returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
+	    }
+		lv_parameterType_0_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"parameterType",
+        		lv_parameterType_0_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleFullJvmFormalParameter
+entryRuleFullJvmFormalParameter returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); }
+	 iv_ruleFullJvmFormalParameter=ruleFullJvmFormalParameter 
+	 { $current=$iv_ruleFullJvmFormalParameter.current; } 
+	 EOF 
+;
+
+// Rule FullJvmFormalParameter
+ruleFullJvmFormalParameter returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
+	    }
+		lv_parameterType_0_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"parameterType",
+        		lv_parameterType_0_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXFeatureCall
+entryRuleXFeatureCall returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXFeatureCallRule()); }
+	 iv_ruleXFeatureCall=ruleXFeatureCall 
+	 { $current=$iv_ruleXFeatureCall.current; } 
+	 EOF 
+;
+
+// Rule XFeatureCall
+ruleXFeatureCall returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0(),
+            $current);
+    }
+)(	otherlv_1='<' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
+	    }
+		lv_typeArguments_2_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_2_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3=',' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
+	    }
+		lv_typeArguments_4_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_4_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_5='>' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXFeatureCallRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
+	    }
+		ruleIdOrSuper		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((
+(
+	'(' 
+ 
+
+)
+)=>
+(
+		lv_explicitOperationCall_7_0=	'(' 
+    {
+        newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXFeatureCallRule());
+	        }
+       		setWithLastConsumed($current, "explicitOperationCall", true, "(");
+	    }
+
+)
+)(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
+	    }
+		lv_featureCallArguments_8_0=ruleXShortClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"featureCallArguments",
+        		lv_featureCallArguments_8_0, 
+        		"XShortClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
+	    }
+		lv_featureCallArguments_9_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"featureCallArguments",
+        		lv_featureCallArguments_9_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
+	    }
+		lv_featureCallArguments_11_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"featureCallArguments",
+        		lv_featureCallArguments_11_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*))?	otherlv_12=')' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
+    }
+)?((((
+)	'[' 
+))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
+	    }
+		lv_featureCallArguments_13_0=ruleXClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"featureCallArguments",
+        		lv_featureCallArguments_13_0, 
+        		"XClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleFeatureCallID
+entryRuleFeatureCallID returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getFeatureCallIDRule()); } 
+	 iv_ruleFeatureCallID=ruleFeatureCallID 
+	 { $current=$iv_ruleFeatureCallID.current.getText(); }  
+	 EOF 
+;
+
+// Rule FeatureCallID
+ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
+    }
+    this_ValidID_0=ruleValidID    {
+		$current.merge(this_ValidID_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+	kw='extends' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
+    }
+
+    |
+	kw='static' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
+    }
+
+    |
+	kw='import' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
+    }
+
+    |
+	kw='extension' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleIdOrSuper
+entryRuleIdOrSuper returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getIdOrSuperRule()); } 
+	 iv_ruleIdOrSuper=ruleIdOrSuper 
+	 { $current=$iv_ruleIdOrSuper.current.getText(); }  
+	 EOF 
+;
+
+// Rule IdOrSuper
+ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
+    }
+    this_FeatureCallID_0=ruleFeatureCallID    {
+		$current.merge(this_FeatureCallID_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+	kw='super' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXConstructorCall
+entryRuleXConstructorCall returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXConstructorCallRule()); }
+	 iv_ruleXConstructorCall=ruleXConstructorCall 
+	 { $current=$iv_ruleXConstructorCall.current; } 
+	 EOF 
+;
+
+// Rule XConstructorCall
+ruleXConstructorCall returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0(),
+            $current);
+    }
+)	otherlv_1='new' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXConstructorCallRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((	'<' 
+)=>	otherlv_3='<' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
+	    }
+		lv_typeArguments_4_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_4_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5=',' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
+	    }
+		lv_typeArguments_6_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_6_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_7='>' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
+    }
+)?(((
+(
+	'(' 
+ 
+
+)
+)=>
+(
+		lv_explicitConstructorCall_8_0=	'(' 
+    {
+        newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXConstructorCallRule());
+	        }
+       		setWithLastConsumed($current, "explicitConstructorCall", true, "(");
+	    }
+
+)
+)(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
+	    }
+		lv_arguments_9_0=ruleXShortClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_9_0, 
+        		"XShortClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
+	    }
+		lv_arguments_10_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_10_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_11=',' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
+	    }
+		lv_arguments_12_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_12_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*))?	otherlv_13=')' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
+    }
+)?((((
+)	'[' 
+))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
+	    }
+		lv_arguments_14_0=ruleXClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_14_0, 
+        		"XClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleXBooleanLiteral
+entryRuleXBooleanLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXBooleanLiteralRule()); }
+	 iv_ruleXBooleanLiteral=ruleXBooleanLiteral 
+	 { $current=$iv_ruleXBooleanLiteral.current; } 
+	 EOF 
+;
+
+// Rule XBooleanLiteral
+ruleXBooleanLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0(),
+            $current);
+    }
+)(	otherlv_1='false' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
+    }
+
+    |(
+(
+		lv_isTrue_2_0=	'true' 
+    {
+        newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXBooleanLiteralRule());
+	        }
+       		setWithLastConsumed($current, "isTrue", true, "true");
+	    }
+
+)
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleXNullLiteral
+entryRuleXNullLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXNullLiteralRule()); }
+	 iv_ruleXNullLiteral=ruleXNullLiteral 
+	 { $current=$iv_ruleXNullLiteral.current; } 
+	 EOF 
+;
+
+// Rule XNullLiteral
+ruleXNullLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0(),
+            $current);
+    }
+)	otherlv_1='null' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXNumberLiteral
+entryRuleXNumberLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXNumberLiteralRule()); }
+	 iv_ruleXNumberLiteral=ruleXNumberLiteral 
+	 { $current=$iv_ruleXNumberLiteral.current; } 
+	 EOF 
+;
+
+// Rule XNumberLiteral
+ruleXNumberLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0(),
+            $current);
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
+	    }
+		lv_value_1_0=ruleNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXNumberLiteralRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_1_0, 
+        		"Number");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXStringLiteral
+entryRuleXStringLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXStringLiteralRule()); }
+	 iv_ruleXStringLiteral=ruleXStringLiteral 
+	 { $current=$iv_ruleXStringLiteral.current; } 
+	 EOF 
+;
+
+// Rule XStringLiteral
+ruleXStringLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0(),
+            $current);
+    }
+)(
+(
+		lv_value_1_0=RULE_STRING
+		{
+			newLeafNode(lv_value_1_0, grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXStringLiteralRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"value",
+        		lv_value_1_0, 
+        		"STRING");
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXTypeLiteral
+entryRuleXTypeLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXTypeLiteralRule()); }
+	 iv_ruleXTypeLiteral=ruleXTypeLiteral 
+	 { $current=$iv_ruleXTypeLiteral.current; } 
+	 EOF 
+;
+
+// Rule XTypeLiteral
+ruleXTypeLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0(),
+            $current);
+    }
+)	otherlv_1='typeof' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXTypeLiteralRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
+	    }
+		lv_arrayDimensions_4_0=ruleArrayBrackets		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTypeLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"arrayDimensions",
+        		lv_arrayDimensions_4_0, 
+        		"ArrayBrackets");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_5=')' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXThrowExpression
+entryRuleXThrowExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXThrowExpressionRule()); }
+	 iv_ruleXThrowExpression=ruleXThrowExpression 
+	 { $current=$iv_ruleXThrowExpression.current; } 
+	 EOF 
+;
+
+// Rule XThrowExpression
+ruleXThrowExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='throw' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+	    }
+		lv_expression_2_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXThrowExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_2_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXReturnExpression
+entryRuleXReturnExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXReturnExpressionRule()); }
+	 iv_ruleXReturnExpression=ruleXReturnExpression 
+	 { $current=$iv_ruleXReturnExpression.current; } 
+	 EOF 
+;
+
+// Rule XReturnExpression
+ruleXReturnExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='return' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
+    }
+((	'extends' 
+ | 	'static' 
+ | 	'import' 
+ | 	'extension' 
+ | 	'!' 
+ | 	'-' 
+ | 	'+' 
+ | 	'new' 
+ | 	'{' 
+ | 	'switch' 
+ | 	'synchronized' 
+ | 	'<' 
+ | 	'super' 
+ | 	'#' 
+ | 	'[' 
+ | 	'false' 
+ | 	'true' 
+ | 	'null' 
+ | 	'typeof' 
+ | 	'if' 
+ | 	'for' 
+ | 	'while' 
+ | 	'do' 
+ | 	'throw' 
+ | 	'return' 
+ | 	'try' 
+ | 	'(' 
+ | 	RULE_ID | 	RULE_HEX | 	RULE_INT | 	RULE_DECIMAL | 	RULE_STRING)=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+	    }
+		lv_expression_2_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXReturnExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_2_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleXTryCatchFinallyExpression
+entryRuleXTryCatchFinallyExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); }
+	 iv_ruleXTryCatchFinallyExpression=ruleXTryCatchFinallyExpression 
+	 { $current=$iv_ruleXTryCatchFinallyExpression.current; } 
+	 EOF 
+;
+
+// Rule XTryCatchFinallyExpression
+ruleXTryCatchFinallyExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='try' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+	    }
+		lv_expression_2_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_2_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)((((	'catch' 
+)=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
+	    }
+		lv_catchClauses_3_0=ruleXCatchClause		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"catchClauses",
+        		lv_catchClauses_3_0, 
+        		"XCatchClause");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)+(((	'finally' 
+)=>	otherlv_4='finally' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
+	    }
+		lv_finallyExpression_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"finallyExpression",
+        		lv_finallyExpression_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?)
+    |(	otherlv_6='finally' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
+	    }
+		lv_finallyExpression_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"finallyExpression",
+        		lv_finallyExpression_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))))
+;
+
+
+
+
+
+// Entry rule entryRuleXSynchronizedExpression
+entryRuleXSynchronizedExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXSynchronizedExpressionRule()); }
+	 iv_ruleXSynchronizedExpression=ruleXSynchronizedExpression 
+	 { $current=$iv_ruleXSynchronizedExpression.current; } 
+	 EOF 
+;
+
+// Rule XSynchronizedExpression
+ruleXSynchronizedExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((((
+)	'synchronized' 
+	'(' 
+))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0(),
+            $current);
+    }
+)	otherlv_1='synchronized' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2());
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
+	    }
+		lv_param_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSynchronizedExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"param",
+        		lv_param_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
+	    }
+		lv_expression_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSynchronizedExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXCatchClause
+entryRuleXCatchClause returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXCatchClauseRule()); }
+	 iv_ruleXCatchClause=ruleXCatchClause 
+	 { $current=$iv_ruleXCatchClause.current; } 
+	 EOF 
+;
+
+// Rule XCatchClause
+ruleXCatchClause returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((	'catch' 
+)=>	otherlv_0='catch' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
+    }
+)	otherlv_1='(' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
+	    }
+		lv_declaredParam_2_0=ruleFullJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+	        }
+       		set(
+       			$current, 
+       			"declaredParam",
+        		lv_declaredParam_2_0, 
+        		"FullJvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=')' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
+	    }
+		lv_expression_4_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_4_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleNumber
+entryRuleNumber returns [String current=null] 
+	@init { 
+		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+	}
+	:
+	{ newCompositeNode(grammarAccess.getNumberRule()); } 
+	 iv_ruleNumber=ruleNumber 
+	 { $current=$iv_ruleNumber.current.getText(); }  
+	 EOF 
+;
+finally {
+	myHiddenTokenState.restore();
+}
+
+// Rule Number
+ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+    }
+    @after { leaveRule(); }:
+(    this_HEX_0=RULE_HEX    {
+		$current.merge(this_HEX_0);
+    }
+
+    { 
+    newLeafNode(this_HEX_0, grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
+    }
+
+    |((    this_INT_1=RULE_INT    {
+		$current.merge(this_INT_1);
+    }
+
+    { 
+    newLeafNode(this_INT_1, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
+    }
+
+    |    this_DECIMAL_2=RULE_DECIMAL    {
+		$current.merge(this_DECIMAL_2);
+    }
+
+    { 
+    newLeafNode(this_DECIMAL_2, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
+    }
+)(
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
+    }
+(    this_INT_4=RULE_INT    {
+		$current.merge(this_INT_4);
+    }
+
+    { 
+    newLeafNode(this_INT_4, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
+    }
+
+    |    this_DECIMAL_5=RULE_DECIMAL    {
+		$current.merge(this_DECIMAL_5);
+    }
+
+    { 
+    newLeafNode(this_DECIMAL_5, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
+    }
+))?))
+    ;
+finally {
+	myHiddenTokenState.restore();
+}
+
+
+
+
+
+
+
+// Entry rule entryRuleJvmTypeReference
+entryRuleJvmTypeReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); }
+	 iv_ruleJvmTypeReference=ruleJvmTypeReference 
+	 { $current=$iv_ruleJvmTypeReference.current; } 
+	 EOF 
+;
+
+// Rule JvmTypeReference
+ruleJvmTypeReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    { 
+        newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
+    }
+    this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference
+    { 
+        $current = $this_JvmParameterizedTypeReference_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+((((
+)	ruleArrayBrackets))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0(),
+            $current);
+    }
+)
+    { 
+        newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
+    }
+ruleArrayBrackets
+    { 
+        afterParserOrEnumRuleCall();
+    }
+))*)
+    |
+    { 
+        newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
+    }
+    this_XFunctionTypeRef_3=ruleXFunctionTypeRef
+    { 
+        $current = $this_XFunctionTypeRef_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleArrayBrackets
+entryRuleArrayBrackets returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getArrayBracketsRule()); } 
+	 iv_ruleArrayBrackets=ruleArrayBrackets 
+	 { $current=$iv_ruleArrayBrackets.current.getText(); }  
+	 EOF 
+;
+
+// Rule ArrayBrackets
+ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='[' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
+    }
+
+	kw=']' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXFunctionTypeRef
+entryRuleXFunctionTypeRef returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); }
+	 iv_ruleXFunctionTypeRef=ruleXFunctionTypeRef 
+	 { $current=$iv_ruleXFunctionTypeRef.current; } 
+	 EOF 
+;
+
+// Rule XFunctionTypeRef
+ruleXFunctionTypeRef returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='(' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
+	    }
+		lv_paramTypes_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+	        }
+       		add(
+       			$current, 
+       			"paramTypes",
+        		lv_paramTypes_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2=',' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
+	    }
+		lv_paramTypes_3_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+	        }
+       		add(
+       			$current, 
+       			"paramTypes",
+        		lv_paramTypes_3_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
+    }
+)?	otherlv_5='=>' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
+	    }
+		lv_returnType_6_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+	        }
+       		set(
+       			$current, 
+       			"returnType",
+        		lv_returnType_6_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmParameterizedTypeReference
+entryRuleJvmParameterizedTypeReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
+	 iv_ruleJvmParameterizedTypeReference=ruleJvmParameterizedTypeReference 
+	 { $current=$iv_ruleJvmParameterizedTypeReference.current; } 
+	 EOF 
+;
+
+// Rule JvmParameterizedTypeReference
+ruleJvmParameterizedTypeReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((	'<' 
+)=>	otherlv_1='<' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
+	    }
+		lv_arguments_2_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_2_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3=',' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
+	    }
+		lv_arguments_4_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_4_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_5='>' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
+    }
+(((((
+)	'.' 
+))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0(),
+            $current);
+    }
+)	otherlv_7='.' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1());
+    }
+))(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
+	    }
+		ruleValidID		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((	'<' 
+)=>	otherlv_9='<' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
+	    }
+		lv_arguments_10_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_10_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_11=',' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
+	    }
+		lv_arguments_12_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_12_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_13='>' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3());
+    }
+)?)*)?)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmArgumentTypeReference
+entryRuleJvmArgumentTypeReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); }
+	 iv_ruleJvmArgumentTypeReference=ruleJvmArgumentTypeReference 
+	 { $current=$iv_ruleJvmArgumentTypeReference.current; } 
+	 EOF 
+;
+
+// Rule JvmArgumentTypeReference
+ruleJvmArgumentTypeReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
+    }
+    this_JvmTypeReference_0=ruleJvmTypeReference
+    { 
+        $current = $this_JvmTypeReference_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
+    }
+    this_JvmWildcardTypeReference_1=ruleJvmWildcardTypeReference
+    { 
+        $current = $this_JvmWildcardTypeReference_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmWildcardTypeReference
+entryRuleJvmWildcardTypeReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); }
+	 iv_ruleJvmWildcardTypeReference=ruleJvmWildcardTypeReference 
+	 { $current=$iv_ruleJvmWildcardTypeReference.current; } 
+	 EOF 
+;
+
+// Rule JvmWildcardTypeReference
+ruleJvmWildcardTypeReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0(),
+            $current);
+    }
+)	otherlv_1='?' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
+    }
+(((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
+	    }
+		lv_constraints_2_0=ruleJvmUpperBound		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"constraints",
+        		lv_constraints_2_0, 
+        		"JvmUpperBound");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
+	    }
+		lv_constraints_3_0=ruleJvmUpperBoundAnded		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"constraints",
+        		lv_constraints_3_0, 
+        		"JvmUpperBoundAnded");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*)
+    |((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
+	    }
+		lv_constraints_4_0=ruleJvmLowerBound		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"constraints",
+        		lv_constraints_4_0, 
+        		"JvmLowerBound");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
+	    }
+		lv_constraints_5_0=ruleJvmLowerBoundAnded		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"constraints",
+        		lv_constraints_5_0, 
+        		"JvmLowerBoundAnded");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*))?)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmUpperBound
+entryRuleJvmUpperBound returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmUpperBoundRule()); }
+	 iv_ruleJvmUpperBound=ruleJvmUpperBound 
+	 { $current=$iv_ruleJvmUpperBound.current; } 
+	 EOF 
+;
+
+// Rule JvmUpperBound
+ruleJvmUpperBound returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='extends' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeReference_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmUpperBoundRule());
+	        }
+       		set(
+       			$current, 
+       			"typeReference",
+        		lv_typeReference_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmUpperBoundAnded
+entryRuleJvmUpperBoundAnded returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); }
+	 iv_ruleJvmUpperBoundAnded=ruleJvmUpperBoundAnded 
+	 { $current=$iv_ruleJvmUpperBoundAnded.current; } 
+	 EOF 
+;
+
+// Rule JvmUpperBoundAnded
+ruleJvmUpperBoundAnded returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='&' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeReference_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmUpperBoundAndedRule());
+	        }
+       		set(
+       			$current, 
+       			"typeReference",
+        		lv_typeReference_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmLowerBound
+entryRuleJvmLowerBound returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmLowerBoundRule()); }
+	 iv_ruleJvmLowerBound=ruleJvmLowerBound 
+	 { $current=$iv_ruleJvmLowerBound.current; } 
+	 EOF 
+;
+
+// Rule JvmLowerBound
+ruleJvmLowerBound returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='super' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeReference_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmLowerBoundRule());
+	        }
+       		set(
+       			$current, 
+       			"typeReference",
+        		lv_typeReference_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmLowerBoundAnded
+entryRuleJvmLowerBoundAnded returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); }
+	 iv_ruleJvmLowerBoundAnded=ruleJvmLowerBoundAnded 
+	 { $current=$iv_ruleJvmLowerBoundAnded.current; } 
+	 EOF 
+;
+
+// Rule JvmLowerBoundAnded
+ruleJvmLowerBoundAnded returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='&' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeReference_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmLowerBoundAndedRule());
+	        }
+       		set(
+       			$current, 
+       			"typeReference",
+        		lv_typeReference_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleQualifiedNameWithWildcard
+entryRuleQualifiedNameWithWildcard returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); } 
+	 iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard 
+	 { $current=$iv_ruleQualifiedNameWithWildcard.current.getText(); }  
+	 EOF 
+;
+
+// Rule QualifiedNameWithWildcard
+ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
+    }
+    this_QualifiedName_0=ruleQualifiedName    {
+		$current.merge(this_QualifiedName_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
+    }
+
+	kw='*' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
+    }
+)
+    ;
+
+
+
+
+
+
+
+// Entry rule entryRuleXImportDeclaration
+entryRuleXImportDeclaration returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXImportDeclarationRule()); }
+	 iv_ruleXImportDeclaration=ruleXImportDeclaration 
+	 { $current=$iv_ruleXImportDeclaration.current; } 
+	 EOF 
+;
+
+// Rule XImportDeclaration
+ruleXImportDeclaration returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='import' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getXImportDeclarationAccess().getImportKeyword_0());
+    }
+(((
+(
+		lv_static_1_0=	'static' 
+    {
+        newLeafNode(lv_static_1_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+       		setWithLastConsumed($current, "static", true, "static");
+	    }
+
+)
+)(
+(
+		lv_extension_2_0=	'extension' 
+    {
+        newLeafNode(lv_extension_2_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+       		setWithLastConsumed($current, "extension", true, "extension");
+	    }
+
+)
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); 
+	    }
+		ruleQualifiedNameInStaticImport		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)((
+(
+		lv_wildcard_4_0=	'*' 
+    {
+        newLeafNode(lv_wildcard_4_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+       		setWithLastConsumed($current, "wildcard", true, "*");
+	    }
+
+)
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); 
+	    }
+		lv_memberName_5_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"memberName",
+        		lv_memberName_5_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+    |(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); 
+	    }
+		lv_importedNamespace_7_0=ruleQualifiedNameWithWildcard		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"importedNamespace",
+        		lv_importedNamespace_7_0, 
+        		"QualifiedNameWithWildcard");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))(	otherlv_8=';' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleQualifiedNameInStaticImport
+entryRuleQualifiedNameInStaticImport returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); } 
+	 iv_ruleQualifiedNameInStaticImport=ruleQualifiedNameInStaticImport 
+	 { $current=$iv_ruleQualifiedNameInStaticImport.current.getText(); }  
+	 EOF 
+;
+
+// Rule QualifiedNameInStaticImport
+ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
+    }
+    this_ValidID_0=ruleValidID    {
+		$current.merge(this_ValidID_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
+    }
+)+
+    ;
+
+
+
+
+
+// Rule PredefinedBeanEnum
+rulePredefinedBeanEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='NowDate' 
+	{
+        $current = grammarAccess.getPredefinedBeanEnumAccess().getNowEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getPredefinedBeanEnumAccess().getNowEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='StartDate' 
+	{
+        $current = grammarAccess.getPredefinedBeanEnumAccess().getStartEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getPredefinedBeanEnumAccess().getStartEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='UniversallyUniqueIdentifier' 
+	{
+        $current = grammarAccess.getPredefinedBeanEnumAccess().getUUIDEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getPredefinedBeanEnumAccess().getUUIDEnumLiteralDeclaration_2()); 
+    }
+));
+
+
+
+// Rule PredefinedBeanTypeEnum
+rulePredefinedBeanTypeEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='Date' 
+	{
+        $current = grammarAccess.getPredefinedBeanTypeEnumAccess().getDateEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getPredefinedBeanTypeEnumAccess().getDateEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='Milliseconds' 
+	{
+        $current = grammarAccess.getPredefinedBeanTypeEnumAccess().getMillisEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getPredefinedBeanTypeEnumAccess().getMillisEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='Nanoseconds' 
+	{
+        $current = grammarAccess.getPredefinedBeanTypeEnumAccess().getNanosEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getPredefinedBeanTypeEnumAccess().getNanosEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='Random' 
+	{
+        $current = grammarAccess.getPredefinedBeanTypeEnumAccess().getRandomEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getPredefinedBeanTypeEnumAccess().getRandomEnumLiteralDeclaration_3()); 
+    }
+)
+    |(	enumLiteral_4='ExecuteContext' 
+	{
+        $current = grammarAccess.getPredefinedBeanTypeEnumAccess().getExecContextEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_4, grammarAccess.getPredefinedBeanTypeEnumAccess().getExecContextEnumLiteralDeclaration_4()); 
+    }
+));
+
+
+
+// Rule ProgressBarStylesEnum
+ruleProgressBarStylesEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='none' 
+	{
+        $current = grammarAccess.getProgressBarStylesEnumAccess().getNoneEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getProgressBarStylesEnumAccess().getNoneEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='normal' 
+	{
+        $current = grammarAccess.getProgressBarStylesEnumAccess().getNormalEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getProgressBarStylesEnumAccess().getNormalEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='important' 
+	{
+        $current = grammarAccess.getProgressBarStylesEnumAccess().getImportantEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getProgressBarStylesEnumAccess().getImportantEnumLiteralDeclaration_2()); 
+    }
+));
+
+
+
+RULE_HEX : ('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F'|'_')+ ('#' (('b'|'B') ('i'|'I')|('l'|'L')))?;
+
+RULE_INT : '0'..'9' ('0'..'9'|'_')*;
+
+RULE_DECIMAL : RULE_INT (('e'|'E') ('+'|'-')? RULE_INT)? (('b'|'B') ('i'|'I'|'d'|'D')|('l'|'L'|'d'|'D'|'f'|'F'))?;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'?|'\'' ('\\' .|~(('\\'|'\'')))* '\''?);
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.tokens b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.tokens
new file mode 100644
index 0000000..99a7d78
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.tokens
@@ -0,0 +1,277 @@
+'!'=102
+'!='=87
+'!=='=89
+'#'=73
+'%'=101
+'%='=80
+'&&'=85
+'&'=135
+'('=69
+')'=71
+'*'=67
+'**'=99
+'*='=78
+'+'=97
+'++'=103
+'+='=76
+','=70
+'-'=98
+'--'=104
+'-='=77
+'->'=91
+'.'=66
+'..'=93
+'..<'=92
+'/'=100
+'/='=79
+':'=112
+'::'=105
+';'=108
+'<'=81
+'<>'=95
+'='=72
+'=='=86
+'==='=88
+'=>'=94
+'>'=82
+'>='=83
+'?'=134
+'?.'=106
+'?:'=96
+'@'=68
+'CSV'=26
+'Date'=139
+'EDI'=34
+'ExecuteContext'=143
+'Milliseconds'=140
+'Nanoseconds'=141
+'NowDate'=136
+'Random'=142
+'StartDate'=137
+'UniversallyUniqueIdentifier'=138
+'XML'=25
+'['=74
+']'=75
+'allowNoResult'=51
+'allowNonuniqueResult'=52
+'as'=62
+'assign'=61
+'averageElementSize'=20
+'beans'=24
+'cacheSize'=49
+'case'=114
+'catch'=133
+'coding'=56
+'copy'=58
+'create report'=19
+'createOn'=38
+'default'=113
+'delimiter'=27
+'described by'=18
+'do'=116
+'else'=110
+'encoding'=33
+'entity'=37
+'expression'=42
+'extends'=119
+'extension'=121
+'false'=124
+'file'=23
+'finally'=131
+'for'=46
+'format'=44
+'from'=59
+'if'=109
+'import'=65
+'important'=146
+'indent'=30
+'instanceof'=90
+'interchange'=17
+'locale'=57
+'lookup'=43
+'map'=63
+'mapTo'=50
+'mapping'=45
+'mappingModel'=35
+'markedBy'=55
+'marker'=39
+'markerEntity'=54
+'markerPath'=53
+'new'=123
+'none'=144
+'normal'=145
+'null'=126
+'on'=47
+'package'=13
+'progressBarStyle'=21
+'property'=60
+'quoteCharacter'=28
+'recordElement'=40
+'recordList'=41
+'refreshViewWhenFinished'=22
+'return'=129
+'skipLines'=29
+'static'=120
+'strict'=31
+'super'=122
+'switch'=111
+'synchronized'=132
+'throw'=128
+'title'=14
+'to'=64
+'true'=125
+'try'=130
+'typeof'=127
+'val'=118
+'validate'=36
+'validateHeader'=32
+'var'=117
+'while'=115
+'with'=48
+'{'=15
+'|'=107
+'||'=84
+'}'=16
+RULE_ANY_OTHER=12
+RULE_DECIMAL=8
+RULE_HEX=7
+RULE_ID=6
+RULE_INT=4
+RULE_ML_COMMENT=9
+RULE_SL_COMMENT=10
+RULE_STRING=5
+RULE_WS=11
+T__100=100
+T__101=101
+T__102=102
+T__103=103
+T__104=104
+T__105=105
+T__106=106
+T__107=107
+T__108=108
+T__109=109
+T__110=110
+T__111=111
+T__112=112
+T__113=113
+T__114=114
+T__115=115
+T__116=116
+T__117=117
+T__118=118
+T__119=119
+T__120=120
+T__121=121
+T__122=122
+T__123=123
+T__124=124
+T__125=125
+T__126=126
+T__127=127
+T__128=128
+T__129=129
+T__130=130
+T__131=131
+T__132=132
+T__133=133
+T__134=134
+T__135=135
+T__136=136
+T__137=137
+T__138=138
+T__139=139
+T__13=13
+T__140=140
+T__141=141
+T__142=142
+T__143=143
+T__144=144
+T__145=145
+T__146=146
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
+T__41=41
+T__42=42
+T__43=43
+T__44=44
+T__45=45
+T__46=46
+T__47=47
+T__48=48
+T__49=49
+T__50=50
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__59=59
+T__60=60
+T__61=61
+T__62=62
+T__63=63
+T__64=64
+T__65=65
+T__66=66
+T__67=67
+T__68=68
+T__69=69
+T__70=70
+T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
+T__76=76
+T__77=77
+T__78=78
+T__79=79
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
+T__89=89
+T__90=90
+T__91=91
+T__92=92
+T__93=93
+T__94=94
+T__95=95
+T__96=96
+T__97=97
+T__98=98
+T__99=99
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSLLexer.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSLLexer.java
new file mode 100644
index 0000000..9829ca6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSLLexer.java
@@ -0,0 +1,5699 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalDataDSLLexer extends Lexer {
+    public static final int T__144=144;
+    public static final int T__143=143;
+    public static final int T__146=146;
+    public static final int RULE_HEX=7;
+    public static final int T__50=50;
+    public static final int T__145=145;
+    public static final int T__140=140;
+    public static final int T__142=142;
+    public static final int T__141=141;
+    public static final int T__59=59;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__137=137;
+    public static final int T__52=52;
+    public static final int T__136=136;
+    public static final int T__53=53;
+    public static final int T__139=139;
+    public static final int T__54=54;
+    public static final int T__138=138;
+    public static final int T__133=133;
+    public static final int T__132=132;
+    public static final int T__60=60;
+    public static final int T__135=135;
+    public static final int T__61=61;
+    public static final int T__134=134;
+    public static final int RULE_ID=6;
+    public static final int T__131=131;
+    public static final int T__130=130;
+    public static final int RULE_INT=4;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__91=91;
+    public static final int T__100=100;
+    public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__102=102;
+    public static final int T__94=94;
+    public static final int T__101=101;
+    public static final int T__90=90;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int T__99=99;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    public static final int T__95=95;
+    public static final int T__96=96;
+    public static final int T__97=97;
+    public static final int T__98=98;
+    public static final int RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__70=70;
+    public static final int T__121=121;
+    public static final int T__71=71;
+    public static final int T__124=124;
+    public static final int T__72=72;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__77=77;
+    public static final int T__119=119;
+    public static final int T__78=78;
+    public static final int T__118=118;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__74=74;
+    public static final int T__114=114;
+    public static final int T__75=75;
+    public static final int T__117=117;
+    public static final int T__76=76;
+    public static final int T__116=116;
+    public static final int T__80=80;
+    public static final int T__111=111;
+    public static final int T__81=81;
+    public static final int T__110=110;
+    public static final int T__82=82;
+    public static final int T__113=113;
+    public static final int T__83=83;
+    public static final int T__112=112;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__88=88;
+    public static final int T__108=108;
+    public static final int T__89=89;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__84=84;
+    public static final int T__104=104;
+    public static final int T__85=85;
+    public static final int T__103=103;
+    public static final int T__86=86;
+    public static final int T__106=106;
+    public static final int T__87=87;
+    public static final int T__105=105;
+
+    // delegates
+    // delegators
+
+    public InternalDataDSLLexer() {;} 
+    public InternalDataDSLLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalDataDSLLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g"; }
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:11:7: ( 'package' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:11:9: 'package'
+            {
+            match("package"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__13"
+
+    // $ANTLR start "T__14"
+    public final void mT__14() throws RecognitionException {
+        try {
+            int _type = T__14;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:12:7: ( 'title' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:12:9: 'title'
+            {
+            match("title"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:13:7: ( '{' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:13:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:14:7: ( '}' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:14:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__16"
+
+    // $ANTLR start "T__17"
+    public final void mT__17() throws RecognitionException {
+        try {
+            int _type = T__17;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:15:7: ( 'interchange' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:15:9: 'interchange'
+            {
+            match("interchange"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__17"
+
+    // $ANTLR start "T__18"
+    public final void mT__18() throws RecognitionException {
+        try {
+            int _type = T__18;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:16:7: ( 'described by' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:16:9: 'described by'
+            {
+            match("described by"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__18"
+
+    // $ANTLR start "T__19"
+    public final void mT__19() throws RecognitionException {
+        try {
+            int _type = T__19;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:17:7: ( 'create report' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:17:9: 'create report'
+            {
+            match("create report"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:18:7: ( 'averageElementSize' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:18:9: 'averageElementSize'
+            {
+            match("averageElementSize"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:19:7: ( 'progressBarStyle' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:19:9: 'progressBarStyle'
+            {
+            match("progressBarStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:20:7: ( 'refreshViewWhenFinished' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:20:9: 'refreshViewWhenFinished'
+            {
+            match("refreshViewWhenFinished"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__22"
+
+    // $ANTLR start "T__23"
+    public final void mT__23() throws RecognitionException {
+        try {
+            int _type = T__23;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:21:7: ( 'file' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:21:9: 'file'
+            {
+            match("file"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:22:7: ( 'beans' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:22:9: 'beans'
+            {
+            match("beans"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__24"
+
+    // $ANTLR start "T__25"
+    public final void mT__25() throws RecognitionException {
+        try {
+            int _type = T__25;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:23:7: ( 'XML' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:23:9: 'XML'
+            {
+            match("XML"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__25"
+
+    // $ANTLR start "T__26"
+    public final void mT__26() throws RecognitionException {
+        try {
+            int _type = T__26;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:24:7: ( 'CSV' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:24:9: 'CSV'
+            {
+            match("CSV"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__26"
+
+    // $ANTLR start "T__27"
+    public final void mT__27() throws RecognitionException {
+        try {
+            int _type = T__27;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:25:7: ( 'delimiter' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:25:9: 'delimiter'
+            {
+            match("delimiter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__27"
+
+    // $ANTLR start "T__28"
+    public final void mT__28() throws RecognitionException {
+        try {
+            int _type = T__28;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:26:7: ( 'quoteCharacter' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:26:9: 'quoteCharacter'
+            {
+            match("quoteCharacter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__28"
+
+    // $ANTLR start "T__29"
+    public final void mT__29() throws RecognitionException {
+        try {
+            int _type = T__29;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:27:7: ( 'skipLines' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:27:9: 'skipLines'
+            {
+            match("skipLines"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__29"
+
+    // $ANTLR start "T__30"
+    public final void mT__30() throws RecognitionException {
+        try {
+            int _type = T__30;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:28:7: ( 'indent' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:28:9: 'indent'
+            {
+            match("indent"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__30"
+
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:29:7: ( 'strict' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:29:9: 'strict'
+            {
+            match("strict"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
+    // $ANTLR start "T__32"
+    public final void mT__32() throws RecognitionException {
+        try {
+            int _type = T__32;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:30:7: ( 'validateHeader' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:30:9: 'validateHeader'
+            {
+            match("validateHeader"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__32"
+
+    // $ANTLR start "T__33"
+    public final void mT__33() throws RecognitionException {
+        try {
+            int _type = T__33;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:31:7: ( 'encoding' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:31:9: 'encoding'
+            {
+            match("encoding"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:32:7: ( 'EDI' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:32:9: 'EDI'
+            {
+            match("EDI"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__34"
+
+    // $ANTLR start "T__35"
+    public final void mT__35() throws RecognitionException {
+        try {
+            int _type = T__35;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:33:7: ( 'mappingModel' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:33:9: 'mappingModel'
+            {
+            match("mappingModel"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__35"
+
+    // $ANTLR start "T__36"
+    public final void mT__36() throws RecognitionException {
+        try {
+            int _type = T__36;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:34:7: ( 'validate' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:34:9: 'validate'
+            {
+            match("validate"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__36"
+
+    // $ANTLR start "T__37"
+    public final void mT__37() throws RecognitionException {
+        try {
+            int _type = T__37;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:35:7: ( 'entity' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:35:9: 'entity'
+            {
+            match("entity"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__37"
+
+    // $ANTLR start "T__38"
+    public final void mT__38() throws RecognitionException {
+        try {
+            int _type = T__38;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:36:7: ( 'createOn' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:36:9: 'createOn'
+            {
+            match("createOn"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__38"
+
+    // $ANTLR start "T__39"
+    public final void mT__39() throws RecognitionException {
+        try {
+            int _type = T__39;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:37:7: ( 'marker' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:37:9: 'marker'
+            {
+            match("marker"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__39"
+
+    // $ANTLR start "T__40"
+    public final void mT__40() throws RecognitionException {
+        try {
+            int _type = T__40;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:38:7: ( 'recordElement' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:38:9: 'recordElement'
+            {
+            match("recordElement"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__40"
+
+    // $ANTLR start "T__41"
+    public final void mT__41() throws RecognitionException {
+        try {
+            int _type = T__41;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:39:7: ( 'recordList' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:39:9: 'recordList'
+            {
+            match("recordList"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__41"
+
+    // $ANTLR start "T__42"
+    public final void mT__42() throws RecognitionException {
+        try {
+            int _type = T__42;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:40:7: ( 'expression' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:40:9: 'expression'
+            {
+            match("expression"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__42"
+
+    // $ANTLR start "T__43"
+    public final void mT__43() throws RecognitionException {
+        try {
+            int _type = T__43;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:41:7: ( 'lookup' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:41:9: 'lookup'
+            {
+            match("lookup"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__43"
+
+    // $ANTLR start "T__44"
+    public final void mT__44() throws RecognitionException {
+        try {
+            int _type = T__44;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:42:7: ( 'format' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:42:9: 'format'
+            {
+            match("format"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__44"
+
+    // $ANTLR start "T__45"
+    public final void mT__45() throws RecognitionException {
+        try {
+            int _type = T__45;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:43:7: ( 'mapping' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:43:9: 'mapping'
+            {
+            match("mapping"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__45"
+
+    // $ANTLR start "T__46"
+    public final void mT__46() throws RecognitionException {
+        try {
+            int _type = T__46;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:44:7: ( 'for' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:44:9: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__46"
+
+    // $ANTLR start "T__47"
+    public final void mT__47() throws RecognitionException {
+        try {
+            int _type = T__47;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:45:7: ( 'on' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:45:9: 'on'
+            {
+            match("on"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__47"
+
+    // $ANTLR start "T__48"
+    public final void mT__48() throws RecognitionException {
+        try {
+            int _type = T__48;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:46:7: ( 'with' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:46:9: 'with'
+            {
+            match("with"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__48"
+
+    // $ANTLR start "T__49"
+    public final void mT__49() throws RecognitionException {
+        try {
+            int _type = T__49;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:47:7: ( 'cacheSize' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:47:9: 'cacheSize'
+            {
+            match("cacheSize"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__49"
+
+    // $ANTLR start "T__50"
+    public final void mT__50() throws RecognitionException {
+        try {
+            int _type = T__50;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:48:7: ( 'mapTo' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:48:9: 'mapTo'
+            {
+            match("mapTo"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__50"
+
+    // $ANTLR start "T__51"
+    public final void mT__51() throws RecognitionException {
+        try {
+            int _type = T__51;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:49:7: ( 'allowNoResult' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:49:9: 'allowNoResult'
+            {
+            match("allowNoResult"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__51"
+
+    // $ANTLR start "T__52"
+    public final void mT__52() throws RecognitionException {
+        try {
+            int _type = T__52;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:50:7: ( 'allowNonuniqueResult' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:50:9: 'allowNonuniqueResult'
+            {
+            match("allowNonuniqueResult"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__52"
+
+    // $ANTLR start "T__53"
+    public final void mT__53() throws RecognitionException {
+        try {
+            int _type = T__53;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:51:7: ( 'markerPath' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:51:9: 'markerPath'
+            {
+            match("markerPath"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__53"
+
+    // $ANTLR start "T__54"
+    public final void mT__54() throws RecognitionException {
+        try {
+            int _type = T__54;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:52:7: ( 'markerEntity' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:52:9: 'markerEntity'
+            {
+            match("markerEntity"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__54"
+
+    // $ANTLR start "T__55"
+    public final void mT__55() throws RecognitionException {
+        try {
+            int _type = T__55;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:53:7: ( 'markedBy' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:53:9: 'markedBy'
+            {
+            match("markedBy"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__55"
+
+    // $ANTLR start "T__56"
+    public final void mT__56() throws RecognitionException {
+        try {
+            int _type = T__56;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:54:7: ( 'coding' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:54:9: 'coding'
+            {
+            match("coding"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__56"
+
+    // $ANTLR start "T__57"
+    public final void mT__57() throws RecognitionException {
+        try {
+            int _type = T__57;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:55:7: ( 'locale' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:55:9: 'locale'
+            {
+            match("locale"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__57"
+
+    // $ANTLR start "T__58"
+    public final void mT__58() throws RecognitionException {
+        try {
+            int _type = T__58;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:56:7: ( 'copy' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:56:9: 'copy'
+            {
+            match("copy"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__58"
+
+    // $ANTLR start "T__59"
+    public final void mT__59() throws RecognitionException {
+        try {
+            int _type = T__59;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:57:7: ( 'from' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:57:9: 'from'
+            {
+            match("from"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__59"
+
+    // $ANTLR start "T__60"
+    public final void mT__60() throws RecognitionException {
+        try {
+            int _type = T__60;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:58:7: ( 'property' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:58:9: 'property'
+            {
+            match("property"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__60"
+
+    // $ANTLR start "T__61"
+    public final void mT__61() throws RecognitionException {
+        try {
+            int _type = T__61;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:59:7: ( 'assign' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:59:9: 'assign'
+            {
+            match("assign"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__61"
+
+    // $ANTLR start "T__62"
+    public final void mT__62() throws RecognitionException {
+        try {
+            int _type = T__62;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:60:7: ( 'as' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:60:9: 'as'
+            {
+            match("as"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__62"
+
+    // $ANTLR start "T__63"
+    public final void mT__63() throws RecognitionException {
+        try {
+            int _type = T__63;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:61:7: ( 'map' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:61:9: 'map'
+            {
+            match("map"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__63"
+
+    // $ANTLR start "T__64"
+    public final void mT__64() throws RecognitionException {
+        try {
+            int _type = T__64;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:62:7: ( 'to' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:62:9: 'to'
+            {
+            match("to"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__64"
+
+    // $ANTLR start "T__65"
+    public final void mT__65() throws RecognitionException {
+        try {
+            int _type = T__65;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:63:7: ( 'import' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:63:9: 'import'
+            {
+            match("import"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__65"
+
+    // $ANTLR start "T__66"
+    public final void mT__66() throws RecognitionException {
+        try {
+            int _type = T__66;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:64:7: ( '.' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:64:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__66"
+
+    // $ANTLR start "T__67"
+    public final void mT__67() throws RecognitionException {
+        try {
+            int _type = T__67;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:65:7: ( '*' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:65:9: '*'
+            {
+            match('*'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__67"
+
+    // $ANTLR start "T__68"
+    public final void mT__68() throws RecognitionException {
+        try {
+            int _type = T__68;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:66:7: ( '@' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:66:9: '@'
+            {
+            match('@'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__68"
+
+    // $ANTLR start "T__69"
+    public final void mT__69() throws RecognitionException {
+        try {
+            int _type = T__69;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:67:7: ( '(' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:67:9: '('
+            {
+            match('('); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__69"
+
+    // $ANTLR start "T__70"
+    public final void mT__70() throws RecognitionException {
+        try {
+            int _type = T__70;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:68:7: ( ',' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:68:9: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__70"
+
+    // $ANTLR start "T__71"
+    public final void mT__71() throws RecognitionException {
+        try {
+            int _type = T__71;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:69:7: ( ')' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:69:9: ')'
+            {
+            match(')'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__71"
+
+    // $ANTLR start "T__72"
+    public final void mT__72() throws RecognitionException {
+        try {
+            int _type = T__72;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:70:7: ( '=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:70:9: '='
+            {
+            match('='); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:71:7: ( '#' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:71:9: '#'
+            {
+            match('#'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:72:7: ( '[' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:72:9: '['
+            {
+            match('['); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__74"
+
+    // $ANTLR start "T__75"
+    public final void mT__75() throws RecognitionException {
+        try {
+            int _type = T__75;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:73:7: ( ']' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:73:9: ']'
+            {
+            match(']'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:74:7: ( '+=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:74:9: '+='
+            {
+            match("+="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:75:7: ( '-=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:75:9: '-='
+            {
+            match("-="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
+
+    // $ANTLR start "T__78"
+    public final void mT__78() throws RecognitionException {
+        try {
+            int _type = T__78;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:76:7: ( '*=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:76:9: '*='
+            {
+            match("*="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__78"
+
+    // $ANTLR start "T__79"
+    public final void mT__79() throws RecognitionException {
+        try {
+            int _type = T__79;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:77:7: ( '/=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:77:9: '/='
+            {
+            match("/="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__79"
+
+    // $ANTLR start "T__80"
+    public final void mT__80() throws RecognitionException {
+        try {
+            int _type = T__80;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:78:7: ( '%=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:78:9: '%='
+            {
+            match("%="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__80"
+
+    // $ANTLR start "T__81"
+    public final void mT__81() throws RecognitionException {
+        try {
+            int _type = T__81;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:79:7: ( '<' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:79:9: '<'
+            {
+            match('<'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__81"
+
+    // $ANTLR start "T__82"
+    public final void mT__82() throws RecognitionException {
+        try {
+            int _type = T__82;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:80:7: ( '>' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:80:9: '>'
+            {
+            match('>'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__82"
+
+    // $ANTLR start "T__83"
+    public final void mT__83() throws RecognitionException {
+        try {
+            int _type = T__83;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:81:7: ( '>=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:81:9: '>='
+            {
+            match(">="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__83"
+
+    // $ANTLR start "T__84"
+    public final void mT__84() throws RecognitionException {
+        try {
+            int _type = T__84;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:82:7: ( '||' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:82:9: '||'
+            {
+            match("||"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__84"
+
+    // $ANTLR start "T__85"
+    public final void mT__85() throws RecognitionException {
+        try {
+            int _type = T__85;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:83:7: ( '&&' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:83:9: '&&'
+            {
+            match("&&"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__85"
+
+    // $ANTLR start "T__86"
+    public final void mT__86() throws RecognitionException {
+        try {
+            int _type = T__86;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:84:7: ( '==' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:84:9: '=='
+            {
+            match("=="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__86"
+
+    // $ANTLR start "T__87"
+    public final void mT__87() throws RecognitionException {
+        try {
+            int _type = T__87;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:85:7: ( '!=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:85:9: '!='
+            {
+            match("!="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__87"
+
+    // $ANTLR start "T__88"
+    public final void mT__88() throws RecognitionException {
+        try {
+            int _type = T__88;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:86:7: ( '===' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:86:9: '==='
+            {
+            match("==="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__88"
+
+    // $ANTLR start "T__89"
+    public final void mT__89() throws RecognitionException {
+        try {
+            int _type = T__89;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:87:7: ( '!==' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:87:9: '!=='
+            {
+            match("!=="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__89"
+
+    // $ANTLR start "T__90"
+    public final void mT__90() throws RecognitionException {
+        try {
+            int _type = T__90;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:88:7: ( 'instanceof' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:88:9: 'instanceof'
+            {
+            match("instanceof"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__90"
+
+    // $ANTLR start "T__91"
+    public final void mT__91() throws RecognitionException {
+        try {
+            int _type = T__91;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:89:7: ( '->' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:89:9: '->'
+            {
+            match("->"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__91"
+
+    // $ANTLR start "T__92"
+    public final void mT__92() throws RecognitionException {
+        try {
+            int _type = T__92;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:90:7: ( '..<' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:90:9: '..<'
+            {
+            match("..<"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__92"
+
+    // $ANTLR start "T__93"
+    public final void mT__93() throws RecognitionException {
+        try {
+            int _type = T__93;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:91:7: ( '..' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:91:9: '..'
+            {
+            match(".."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__93"
+
+    // $ANTLR start "T__94"
+    public final void mT__94() throws RecognitionException {
+        try {
+            int _type = T__94;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:92:7: ( '=>' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:92:9: '=>'
+            {
+            match("=>"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__94"
+
+    // $ANTLR start "T__95"
+    public final void mT__95() throws RecognitionException {
+        try {
+            int _type = T__95;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:93:7: ( '<>' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:93:9: '<>'
+            {
+            match("<>"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__95"
+
+    // $ANTLR start "T__96"
+    public final void mT__96() throws RecognitionException {
+        try {
+            int _type = T__96;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:94:7: ( '?:' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:94:9: '?:'
+            {
+            match("?:"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__96"
+
+    // $ANTLR start "T__97"
+    public final void mT__97() throws RecognitionException {
+        try {
+            int _type = T__97;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:95:7: ( '+' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:95:9: '+'
+            {
+            match('+'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__97"
+
+    // $ANTLR start "T__98"
+    public final void mT__98() throws RecognitionException {
+        try {
+            int _type = T__98;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:96:7: ( '-' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:96:9: '-'
+            {
+            match('-'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__98"
+
+    // $ANTLR start "T__99"
+    public final void mT__99() throws RecognitionException {
+        try {
+            int _type = T__99;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:97:7: ( '**' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:97:9: '**'
+            {
+            match("**"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__99"
+
+    // $ANTLR start "T__100"
+    public final void mT__100() throws RecognitionException {
+        try {
+            int _type = T__100;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:98:8: ( '/' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:98:10: '/'
+            {
+            match('/'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__100"
+
+    // $ANTLR start "T__101"
+    public final void mT__101() throws RecognitionException {
+        try {
+            int _type = T__101;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:99:8: ( '%' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:99:10: '%'
+            {
+            match('%'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__101"
+
+    // $ANTLR start "T__102"
+    public final void mT__102() throws RecognitionException {
+        try {
+            int _type = T__102;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:100:8: ( '!' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:100:10: '!'
+            {
+            match('!'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__102"
+
+    // $ANTLR start "T__103"
+    public final void mT__103() throws RecognitionException {
+        try {
+            int _type = T__103;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:101:8: ( '++' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:101:10: '++'
+            {
+            match("++"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__103"
+
+    // $ANTLR start "T__104"
+    public final void mT__104() throws RecognitionException {
+        try {
+            int _type = T__104;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:102:8: ( '--' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:102:10: '--'
+            {
+            match("--"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__104"
+
+    // $ANTLR start "T__105"
+    public final void mT__105() throws RecognitionException {
+        try {
+            int _type = T__105;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:103:8: ( '::' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:103:10: '::'
+            {
+            match("::"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__105"
+
+    // $ANTLR start "T__106"
+    public final void mT__106() throws RecognitionException {
+        try {
+            int _type = T__106;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:104:8: ( '?.' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:104:10: '?.'
+            {
+            match("?."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__106"
+
+    // $ANTLR start "T__107"
+    public final void mT__107() throws RecognitionException {
+        try {
+            int _type = T__107;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:105:8: ( '|' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:105:10: '|'
+            {
+            match('|'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__107"
+
+    // $ANTLR start "T__108"
+    public final void mT__108() throws RecognitionException {
+        try {
+            int _type = T__108;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:106:8: ( ';' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:106:10: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__108"
+
+    // $ANTLR start "T__109"
+    public final void mT__109() throws RecognitionException {
+        try {
+            int _type = T__109;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:107:8: ( 'if' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:107:10: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__109"
+
+    // $ANTLR start "T__110"
+    public final void mT__110() throws RecognitionException {
+        try {
+            int _type = T__110;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:108:8: ( 'else' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:108:10: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__110"
+
+    // $ANTLR start "T__111"
+    public final void mT__111() throws RecognitionException {
+        try {
+            int _type = T__111;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:109:8: ( 'switch' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:109:10: 'switch'
+            {
+            match("switch"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__111"
+
+    // $ANTLR start "T__112"
+    public final void mT__112() throws RecognitionException {
+        try {
+            int _type = T__112;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:110:8: ( ':' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:110:10: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__112"
+
+    // $ANTLR start "T__113"
+    public final void mT__113() throws RecognitionException {
+        try {
+            int _type = T__113;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:111:8: ( 'default' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:111:10: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__113"
+
+    // $ANTLR start "T__114"
+    public final void mT__114() throws RecognitionException {
+        try {
+            int _type = T__114;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:112:8: ( 'case' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:112:10: 'case'
+            {
+            match("case"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__114"
+
+    // $ANTLR start "T__115"
+    public final void mT__115() throws RecognitionException {
+        try {
+            int _type = T__115;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:113:8: ( 'while' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:113:10: 'while'
+            {
+            match("while"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__115"
+
+    // $ANTLR start "T__116"
+    public final void mT__116() throws RecognitionException {
+        try {
+            int _type = T__116;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:114:8: ( 'do' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:114:10: 'do'
+            {
+            match("do"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__116"
+
+    // $ANTLR start "T__117"
+    public final void mT__117() throws RecognitionException {
+        try {
+            int _type = T__117;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:115:8: ( 'var' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:115:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__117"
+
+    // $ANTLR start "T__118"
+    public final void mT__118() throws RecognitionException {
+        try {
+            int _type = T__118;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:116:8: ( 'val' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:116:10: 'val'
+            {
+            match("val"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__118"
+
+    // $ANTLR start "T__119"
+    public final void mT__119() throws RecognitionException {
+        try {
+            int _type = T__119;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:117:8: ( 'extends' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:117:10: 'extends'
+            {
+            match("extends"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__119"
+
+    // $ANTLR start "T__120"
+    public final void mT__120() throws RecognitionException {
+        try {
+            int _type = T__120;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:118:8: ( 'static' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:118:10: 'static'
+            {
+            match("static"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__120"
+
+    // $ANTLR start "T__121"
+    public final void mT__121() throws RecognitionException {
+        try {
+            int _type = T__121;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:119:8: ( 'extension' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:119:10: 'extension'
+            {
+            match("extension"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__121"
+
+    // $ANTLR start "T__122"
+    public final void mT__122() throws RecognitionException {
+        try {
+            int _type = T__122;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:120:8: ( 'super' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:120:10: 'super'
+            {
+            match("super"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__122"
+
+    // $ANTLR start "T__123"
+    public final void mT__123() throws RecognitionException {
+        try {
+            int _type = T__123;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:121:8: ( 'new' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:121:10: 'new'
+            {
+            match("new"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__123"
+
+    // $ANTLR start "T__124"
+    public final void mT__124() throws RecognitionException {
+        try {
+            int _type = T__124;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:122:8: ( 'false' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:122:10: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__124"
+
+    // $ANTLR start "T__125"
+    public final void mT__125() throws RecognitionException {
+        try {
+            int _type = T__125;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:123:8: ( 'true' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:123:10: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__125"
+
+    // $ANTLR start "T__126"
+    public final void mT__126() throws RecognitionException {
+        try {
+            int _type = T__126;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:124:8: ( 'null' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:124:10: 'null'
+            {
+            match("null"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__126"
+
+    // $ANTLR start "T__127"
+    public final void mT__127() throws RecognitionException {
+        try {
+            int _type = T__127;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:125:8: ( 'typeof' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:125:10: 'typeof'
+            {
+            match("typeof"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__127"
+
+    // $ANTLR start "T__128"
+    public final void mT__128() throws RecognitionException {
+        try {
+            int _type = T__128;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:126:8: ( 'throw' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:126:10: 'throw'
+            {
+            match("throw"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__128"
+
+    // $ANTLR start "T__129"
+    public final void mT__129() throws RecognitionException {
+        try {
+            int _type = T__129;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:127:8: ( 'return' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:127:10: 'return'
+            {
+            match("return"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__129"
+
+    // $ANTLR start "T__130"
+    public final void mT__130() throws RecognitionException {
+        try {
+            int _type = T__130;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:128:8: ( 'try' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:128:10: 'try'
+            {
+            match("try"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__130"
+
+    // $ANTLR start "T__131"
+    public final void mT__131() throws RecognitionException {
+        try {
+            int _type = T__131;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:129:8: ( 'finally' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:129:10: 'finally'
+            {
+            match("finally"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__131"
+
+    // $ANTLR start "T__132"
+    public final void mT__132() throws RecognitionException {
+        try {
+            int _type = T__132;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:130:8: ( 'synchronized' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:130:10: 'synchronized'
+            {
+            match("synchronized"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__132"
+
+    // $ANTLR start "T__133"
+    public final void mT__133() throws RecognitionException {
+        try {
+            int _type = T__133;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:131:8: ( 'catch' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:131:10: 'catch'
+            {
+            match("catch"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__133"
+
+    // $ANTLR start "T__134"
+    public final void mT__134() throws RecognitionException {
+        try {
+            int _type = T__134;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:132:8: ( '?' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:132:10: '?'
+            {
+            match('?'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__134"
+
+    // $ANTLR start "T__135"
+    public final void mT__135() throws RecognitionException {
+        try {
+            int _type = T__135;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:133:8: ( '&' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:133:10: '&'
+            {
+            match('&'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__135"
+
+    // $ANTLR start "T__136"
+    public final void mT__136() throws RecognitionException {
+        try {
+            int _type = T__136;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:134:8: ( 'NowDate' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:134:10: 'NowDate'
+            {
+            match("NowDate"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__136"
+
+    // $ANTLR start "T__137"
+    public final void mT__137() throws RecognitionException {
+        try {
+            int _type = T__137;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:135:8: ( 'StartDate' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:135:10: 'StartDate'
+            {
+            match("StartDate"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__137"
+
+    // $ANTLR start "T__138"
+    public final void mT__138() throws RecognitionException {
+        try {
+            int _type = T__138;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:136:8: ( 'UniversallyUniqueIdentifier' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:136:10: 'UniversallyUniqueIdentifier'
+            {
+            match("UniversallyUniqueIdentifier"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__138"
+
+    // $ANTLR start "T__139"
+    public final void mT__139() throws RecognitionException {
+        try {
+            int _type = T__139;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:137:8: ( 'Date' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:137:10: 'Date'
+            {
+            match("Date"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__139"
+
+    // $ANTLR start "T__140"
+    public final void mT__140() throws RecognitionException {
+        try {
+            int _type = T__140;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:138:8: ( 'Milliseconds' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:138:10: 'Milliseconds'
+            {
+            match("Milliseconds"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__140"
+
+    // $ANTLR start "T__141"
+    public final void mT__141() throws RecognitionException {
+        try {
+            int _type = T__141;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:139:8: ( 'Nanoseconds' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:139:10: 'Nanoseconds'
+            {
+            match("Nanoseconds"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__141"
+
+    // $ANTLR start "T__142"
+    public final void mT__142() throws RecognitionException {
+        try {
+            int _type = T__142;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:140:8: ( 'Random' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:140:10: 'Random'
+            {
+            match("Random"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__142"
+
+    // $ANTLR start "T__143"
+    public final void mT__143() throws RecognitionException {
+        try {
+            int _type = T__143;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:141:8: ( 'ExecuteContext' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:141:10: 'ExecuteContext'
+            {
+            match("ExecuteContext"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__143"
+
+    // $ANTLR start "T__144"
+    public final void mT__144() throws RecognitionException {
+        try {
+            int _type = T__144;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:142:8: ( 'none' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:142:10: 'none'
+            {
+            match("none"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__144"
+
+    // $ANTLR start "T__145"
+    public final void mT__145() throws RecognitionException {
+        try {
+            int _type = T__145;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:143:8: ( 'normal' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:143:10: 'normal'
+            {
+            match("normal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__145"
+
+    // $ANTLR start "T__146"
+    public final void mT__146() throws RecognitionException {
+        try {
+            int _type = T__146;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:144:8: ( 'important' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:144:10: 'important'
+            {
+            match("important"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__146"
+
+    // $ANTLR start "RULE_HEX"
+    public final void mRULE_HEX() throws RecognitionException {
+        try {
+            int _type = RULE_HEX;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:12: ( '0x' | '0X' )
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='0') ) {
+                int LA1_1 = input.LA(2);
+
+                if ( (LA1_1=='x') ) {
+                    alt1=1;
+                }
+                else if ( (LA1_1=='X') ) {
+                    alt1=2;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 1, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 1, 0, input);
+
+                throw nvae;
+            }
+            switch (alt1) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:13: '0x'
+                    {
+                    match("0x"); 
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:18: '0X'
+                    {
+                    match("0X"); 
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            int cnt2=0;
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='F')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='f')) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt2 >= 1 ) break loop2;
+                        EarlyExitException eee =
+                            new EarlyExitException(2, input);
+                        throw eee;
+                }
+                cnt2++;
+            } while (true);
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0=='#') ) {
+                alt4=1;
+            }
+            switch (alt4) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    {
+                    match('#'); 
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    int alt3=2;
+                    int LA3_0 = input.LA(1);
+
+                    if ( (LA3_0=='B'||LA3_0=='b') ) {
+                        alt3=1;
+                    }
+                    else if ( (LA3_0=='L'||LA3_0=='l') ) {
+                        alt3=2;
+                    }
+                    else {
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 3, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt3) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            {
+                            if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+                            if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+
+                            }
+                            break;
+                        case 2 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8575:84: ( 'l' | 'L' )
+                            {
+                            if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_HEX"
+
+    // $ANTLR start "RULE_INT"
+    public final void mRULE_INT() throws RecognitionException {
+        try {
+            int _type = RULE_INT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8577:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8577:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            {
+            matchRange('0','9'); 
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8577:21: ( '0' .. '9' | '_' )*
+            loop5:
+            do {
+                int alt5=2;
+                int LA5_0 = input.LA(1);
+
+                if ( ((LA5_0>='0' && LA5_0<='9')||LA5_0=='_') ) {
+                    alt5=1;
+                }
+
+
+                switch (alt5) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||input.LA(1)=='_' ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop5;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_INT"
+
+    // $ANTLR start "RULE_DECIMAL"
+    public final void mRULE_DECIMAL() throws RecognitionException {
+        try {
+            int _type = RULE_DECIMAL;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8579:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8579:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            {
+            mRULE_INT(); 
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8579:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0=='E'||LA7_0=='e') ) {
+                alt7=1;
+            }
+            switch (alt7) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8579:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    {
+                    if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8579:36: ( '+' | '-' )?
+                    int alt6=2;
+                    int LA6_0 = input.LA(1);
+
+                    if ( (LA6_0=='+'||LA6_0=='-') ) {
+                        alt6=1;
+                    }
+                    switch (alt6) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:
+                            {
+                            if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+
+                            }
+                            break;
+
+                    }
+
+                    mRULE_INT(); 
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8579:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            int alt8=3;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0=='B'||LA8_0=='b') ) {
+                alt8=1;
+            }
+            else if ( (LA8_0=='D'||LA8_0=='F'||LA8_0=='L'||LA8_0=='d'||LA8_0=='f'||LA8_0=='l') ) {
+                alt8=2;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8579:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    {
+                    if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+                    if ( input.LA(1)=='D'||input.LA(1)=='I'||input.LA(1)=='d'||input.LA(1)=='i' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8579:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    {
+                    if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_DECIMAL"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8581:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8581:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8581:11: ( '^' )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0=='^') ) {
+                alt9=1;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8581:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8581:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            loop10:
+            do {
+                int alt10=2;
+                int LA10_0 = input.LA(1);
+
+                if ( (LA10_0=='$'||(LA10_0>='0' && LA10_0<='9')||(LA10_0>='A' && LA10_0<='Z')||LA10_0=='_'||(LA10_0>='a' && LA10_0<='z')) ) {
+                    alt10=1;
+                }
+
+
+                switch (alt10) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:
+            	    {
+            	    if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop10;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ID"
+
+    // $ANTLR start "RULE_STRING"
+    public final void mRULE_STRING() throws RecognitionException {
+        try {
+            int _type = RULE_STRING;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0=='\"') ) {
+                alt15=1;
+            }
+            else if ( (LA15_0=='\'') ) {
+                alt15=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 15, 0, input);
+
+                throw nvae;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    {
+                    match('\"'); 
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    loop11:
+                    do {
+                        int alt11=3;
+                        int LA11_0 = input.LA(1);
+
+                        if ( (LA11_0=='\\') ) {
+                            alt11=1;
+                        }
+                        else if ( ((LA11_0>='\u0000' && LA11_0<='!')||(LA11_0>='#' && LA11_0<='[')||(LA11_0>=']' && LA11_0<='\uFFFF')) ) {
+                            alt11=2;
+                        }
+
+
+                        switch (alt11) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop11;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:44: ( '\"' )?
+                    int alt12=2;
+                    int LA12_0 = input.LA(1);
+
+                    if ( (LA12_0=='\"') ) {
+                        alt12=1;
+                    }
+                    switch (alt12) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:44: '\"'
+                            {
+                            match('\"'); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    {
+                    match('\''); 
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    loop13:
+                    do {
+                        int alt13=3;
+                        int LA13_0 = input.LA(1);
+
+                        if ( (LA13_0=='\\') ) {
+                            alt13=1;
+                        }
+                        else if ( ((LA13_0>='\u0000' && LA13_0<='&')||(LA13_0>='(' && LA13_0<='[')||(LA13_0>=']' && LA13_0<='\uFFFF')) ) {
+                            alt13=2;
+                        }
+
+
+                        switch (alt13) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:55: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop13;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:79: ( '\\'' )?
+                    int alt14=2;
+                    int LA14_0 = input.LA(1);
+
+                    if ( (LA14_0=='\'') ) {
+                        alt14=1;
+                    }
+                    switch (alt14) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8583:79: '\\''
+                            {
+                            match('\''); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_STRING"
+
+    // $ANTLR start "RULE_ML_COMMENT"
+    public final void mRULE_ML_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_ML_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8585:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8585:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8585:24: ( options {greedy=false; } : . )*
+            loop16:
+            do {
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+
+                if ( (LA16_0=='*') ) {
+                    int LA16_1 = input.LA(2);
+
+                    if ( (LA16_1=='/') ) {
+                        alt16=2;
+                    }
+                    else if ( ((LA16_1>='\u0000' && LA16_1<='.')||(LA16_1>='0' && LA16_1<='\uFFFF')) ) {
+                        alt16=1;
+                    }
+
+
+                }
+                else if ( ((LA16_0>='\u0000' && LA16_0<=')')||(LA16_0>='+' && LA16_0<='\uFFFF')) ) {
+                    alt16=1;
+                }
+
+
+                switch (alt16) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8585:52: .
+            	    {
+            	    matchAny(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop16;
+                }
+            } while (true);
+
+            match("*/"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ML_COMMENT"
+
+    // $ANTLR start "RULE_SL_COMMENT"
+    public final void mRULE_SL_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_SL_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8587:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8587:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8587:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( ((LA17_0>='\u0000' && LA17_0<='\t')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\uFFFF')) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8587:24: ~ ( ( '\\n' | '\\r' ) )
+            	    {
+            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop17;
+                }
+            } while (true);
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8587:40: ( ( '\\r' )? '\\n' )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0=='\n'||LA19_0=='\r') ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8587:41: ( '\\r' )? '\\n'
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8587:41: ( '\\r' )?
+                    int alt18=2;
+                    int LA18_0 = input.LA(1);
+
+                    if ( (LA18_0=='\r') ) {
+                        alt18=1;
+                    }
+                    switch (alt18) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8587:41: '\\r'
+                            {
+                            match('\r'); 
+
+                            }
+                            break;
+
+                    }
+
+                    match('\n'); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_SL_COMMENT"
+
+    // $ANTLR start "RULE_WS"
+    public final void mRULE_WS() throws RecognitionException {
+        try {
+            int _type = RULE_WS;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8589:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8589:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8589:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            int cnt20=0;
+            loop20:
+            do {
+                int alt20=2;
+                int LA20_0 = input.LA(1);
+
+                if ( ((LA20_0>='\t' && LA20_0<='\n')||LA20_0=='\r'||LA20_0==' ') ) {
+                    alt20=1;
+                }
+
+
+                switch (alt20) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt20 >= 1 ) break loop20;
+                        EarlyExitException eee =
+                            new EarlyExitException(20, input);
+                        throw eee;
+                }
+                cnt20++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_WS"
+
+    // $ANTLR start "RULE_ANY_OTHER"
+    public final void mRULE_ANY_OTHER() throws RecognitionException {
+        try {
+            int _type = RULE_ANY_OTHER;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8591:16: ( . )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:8591:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=143;
+        alt21 = dfa21.predict(input);
+        switch (alt21) {
+            case 1 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:10: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 2 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:16: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 3 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:22: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 4 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:28: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 5 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:34: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 6 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:40: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 7 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:46: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 8 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:52: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 9 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:58: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 10 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:64: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 11 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:70: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 12 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:76: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 13 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:82: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 14 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:88: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 15 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:94: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 16 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:100: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 17 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:106: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 18 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:112: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 19 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:118: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 20 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:124: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 21 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:130: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 22 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:136: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 23 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:142: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 24 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:148: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 25 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:154: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 26 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:160: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 27 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:166: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 28 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:172: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 29 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:178: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 30 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:184: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 31 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:190: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 32 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:196: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 33 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:202: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 34 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:208: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 35 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:214: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 36 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:220: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 37 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:226: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 38 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:232: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 39 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:238: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 40 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:244: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 41 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:250: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 42 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:256: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 43 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:262: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 44 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:268: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 45 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:274: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 46 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:280: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 47 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:286: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 48 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:292: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 49 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:298: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 50 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:304: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 51 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:310: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 52 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:316: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 53 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:322: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 54 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:328: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 55 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:334: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 56 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:340: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 57 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:346: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 58 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:352: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 59 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:358: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 60 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:364: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 61 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:370: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 62 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:376: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 63 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:382: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 64 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:388: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 65 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:394: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 66 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:400: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 67 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:406: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 68 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:412: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 69 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:418: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 70 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:424: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 71 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:430: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 72 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:436: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 73 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:442: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 74 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:448: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 75 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:454: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 76 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:460: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 77 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:466: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 78 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:472: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 79 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:478: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 80 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:484: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 81 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:490: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 82 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:496: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 83 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:502: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 84 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:508: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 85 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:514: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 86 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:520: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 87 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:526: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 88 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:532: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 89 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:539: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 90 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:546: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 91 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:553: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 92 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:560: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 93 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:567: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 94 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:574: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 95 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:581: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 96 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:588: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 97 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:595: T__109
+                {
+                mT__109(); 
+
+                }
+                break;
+            case 98 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:602: T__110
+                {
+                mT__110(); 
+
+                }
+                break;
+            case 99 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:609: T__111
+                {
+                mT__111(); 
+
+                }
+                break;
+            case 100 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:616: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 101 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:623: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 102 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:630: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 103 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:637: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 104 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:644: T__116
+                {
+                mT__116(); 
+
+                }
+                break;
+            case 105 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:651: T__117
+                {
+                mT__117(); 
+
+                }
+                break;
+            case 106 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:658: T__118
+                {
+                mT__118(); 
+
+                }
+                break;
+            case 107 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:665: T__119
+                {
+                mT__119(); 
+
+                }
+                break;
+            case 108 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:672: T__120
+                {
+                mT__120(); 
+
+                }
+                break;
+            case 109 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:679: T__121
+                {
+                mT__121(); 
+
+                }
+                break;
+            case 110 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:686: T__122
+                {
+                mT__122(); 
+
+                }
+                break;
+            case 111 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:693: T__123
+                {
+                mT__123(); 
+
+                }
+                break;
+            case 112 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:700: T__124
+                {
+                mT__124(); 
+
+                }
+                break;
+            case 113 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:707: T__125
+                {
+                mT__125(); 
+
+                }
+                break;
+            case 114 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:714: T__126
+                {
+                mT__126(); 
+
+                }
+                break;
+            case 115 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:721: T__127
+                {
+                mT__127(); 
+
+                }
+                break;
+            case 116 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:728: T__128
+                {
+                mT__128(); 
+
+                }
+                break;
+            case 117 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:735: T__129
+                {
+                mT__129(); 
+
+                }
+                break;
+            case 118 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:742: T__130
+                {
+                mT__130(); 
+
+                }
+                break;
+            case 119 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:749: T__131
+                {
+                mT__131(); 
+
+                }
+                break;
+            case 120 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:756: T__132
+                {
+                mT__132(); 
+
+                }
+                break;
+            case 121 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:763: T__133
+                {
+                mT__133(); 
+
+                }
+                break;
+            case 122 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:770: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 123 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:777: T__135
+                {
+                mT__135(); 
+
+                }
+                break;
+            case 124 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:784: T__136
+                {
+                mT__136(); 
+
+                }
+                break;
+            case 125 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:791: T__137
+                {
+                mT__137(); 
+
+                }
+                break;
+            case 126 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:798: T__138
+                {
+                mT__138(); 
+
+                }
+                break;
+            case 127 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:805: T__139
+                {
+                mT__139(); 
+
+                }
+                break;
+            case 128 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:812: T__140
+                {
+                mT__140(); 
+
+                }
+                break;
+            case 129 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:819: T__141
+                {
+                mT__141(); 
+
+                }
+                break;
+            case 130 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:826: T__142
+                {
+                mT__142(); 
+
+                }
+                break;
+            case 131 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:833: T__143
+                {
+                mT__143(); 
+
+                }
+                break;
+            case 132 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:840: T__144
+                {
+                mT__144(); 
+
+                }
+                break;
+            case 133 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:847: T__145
+                {
+                mT__145(); 
+
+                }
+                break;
+            case 134 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:854: T__146
+                {
+                mT__146(); 
+
+                }
+                break;
+            case 135 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:861: RULE_HEX
+                {
+                mRULE_HEX(); 
+
+                }
+                break;
+            case 136 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:870: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 137 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:879: RULE_DECIMAL
+                {
+                mRULE_DECIMAL(); 
+
+                }
+                break;
+            case 138 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:892: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 139 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:900: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 140 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:912: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 141 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:928: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 142 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:944: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 143 :
+                // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1:952: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA21 dfa21 = new DFA21(this);
+    static final String DFA21_eotS =
+        "\1\uffff\2\76\2\uffff\22\76\1\153\1\156\4\uffff\1\165\3\uffff\1\173\1\177\1\u0083\1\u0085\1\u0087\1\u0089\1\u008b\1\u008d\1\u008f\1\u0092\1\u0094\1\uffff\7\76\2\u00a2\1\73\5\uffff\2\76\1\uffff\1\76\1\u00a9\3\76\2\uffff\2\76\1\u00b2\1\76\1\u00b6\5\76\1\u00c0\26\76\1\u00e0\2\76\1\u00e4\10\uffff\1\u00e6\32\uffff\1\u00e8\7\uffff\12\76\1\uffff\1\u00a2\4\uffff\3\76\1\uffff\1\76\1\u00f9\6\76\1\uffff\3\76\1\uffff\11\76\1\uffff\5\76\1\u0112\3\76\1\u0116\1\u0117\7\76\1\u0120\1\u0121\5\76\1\u0127\1\76\1\u012b\3\76\1\uffff\2\76\6\uffff\1\u0131\16\76\1\u0140\1\uffff\13\76\1\u014c\2\76\1\u014f\6\76\1\u0156\2\76\1\uffff\1\u0159\2\76\2\uffff\10\76\2\uffff\4\76\1\u0168\1\uffff\3\76\1\uffff\3\76\1\u016f\1\76\1\uffff\1\u0171\1\u0172\5\76\1\u0178\5\76\1\u017e\1\uffff\1\76\1\u0180\11\76\1\uffff\1\u018a\1\76\1\uffff\6\76\1\uffff\2\76\1\uffff\1\u0194\1\u0195\5\76\1\u019b\6\76\1\uffff\2\76\1\u01a5\3\76\1\uffff\1\u01aa\2\uffff\5\76\1\uffff\5\76\1\uffff\1\u01b5\1\uffff\1\76\1\u01b7\1\76\1\u01ba\5\76\1\uffff\1\u01c1\2\76\1\u01c4\2\76\1\u01c8\1\76\1\u01ca\2\uffff\2\76\1\u01cd\1\u01ce\1\u01cf\1\uffff\3\76\1\u01d3\5\76\1\uffff\1\u01db\1\76\1\u01dd\1\u01de\1\uffff\1\u01df\5\76\1\u01e5\1\u01e6\2\76\1\uffff\1\76\1\uffff\2\76\1\uffff\2\76\1\u01ee\1\uffff\2\76\1\uffff\2\76\1\uffff\3\76\1\uffff\1\u01f7\1\uffff\2\76\3\uffff\3\76\1\uffff\1\76\1\u01fe\2\76\1\u0202\2\76\1\uffff\1\76\3\uffff\1\u0206\4\76\2\uffff\1\76\1\u020c\5\76\1\uffff\1\u0212\7\76\1\uffff\3\76\1\u021e\1\u021f\1\76\1\uffff\3\76\1\uffff\2\76\1\u0226\1\uffff\5\76\1\uffff\2\76\1\u022e\1\76\1\u0230\1\uffff\1\u0231\7\76\1\u0239\2\76\2\uffff\1\76\1\u023d\4\76\1\uffff\1\76\1\u0243\4\76\1\u0248\4\uffff\5\76\1\u024e\1\76\1\uffff\2\76\1\u0252\1\uffff\2\76\1\u0255\2\76\1\uffff\3\76\1\u025b\1\uffff\5\76\1\uffff\3\76\1\uffff\2\76\1\uffff\1\76\1\u0267\3\76\1\uffff\6\76\1\u0271\2\76\1\u0274\1\u0275\1\uffff\1\76\1\u0277\2\76\1\u027a\2\76\1\u027d\1\76\1\uffff\2\76\2\uffff\1\76\1\uffff\2\76\1\uffff\2\76\1\uffff\1\u0286\1\u0287\1\u0288\5\76\3\uffff\1\76\1\u028f\4\76\1\uffff\4\76\1\u0298\3\76\1\uffff\3\76\1\u029f\2\76\1\uffff\4\76\1\u02a6\1\76\1\uffff\3\76\1\u02ab\1\uffff";
+    static final String DFA21_eofS =
+        "\u02ac\uffff";
+    static final String DFA21_minS =
+        "\1\0\1\141\1\150\2\uffff\1\146\1\145\1\141\1\154\1\145\1\141\1\145\1\115\1\123\1\165\1\153\1\141\1\154\1\104\1\141\1\157\1\156\1\150\1\56\1\52\4\uffff\1\75\3\uffff\1\53\1\55\1\52\1\75\1\76\1\75\1\174\1\46\1\75\1\56\1\72\1\uffff\1\145\1\141\1\164\1\156\1\141\1\151\1\141\2\60\1\44\5\uffff\1\143\1\157\1\uffff\1\164\1\44\1\165\1\160\1\162\2\uffff\1\144\1\160\1\44\1\146\1\44\1\145\1\143\1\144\1\145\1\154\1\44\1\143\1\154\1\162\1\157\1\154\1\141\1\114\1\126\1\157\1\151\1\141\1\151\1\160\1\156\1\154\1\143\1\160\1\163\1\111\1\145\1\160\1\143\1\44\1\164\1\151\1\74\10\uffff\1\75\32\uffff\1\75\7\uffff\1\167\1\154\1\156\1\167\1\156\1\141\1\151\1\164\1\154\1\156\1\uffff\1\60\4\uffff\1\153\1\147\1\154\1\uffff\1\145\1\44\1\145\1\157\2\145\1\164\1\157\1\uffff\1\143\1\151\1\141\1\uffff\1\141\1\150\1\145\1\143\1\151\1\171\1\162\1\157\1\151\1\uffff\1\162\1\157\1\165\1\145\1\141\1\44\1\155\1\163\1\156\2\44\1\164\1\160\1\151\2\164\1\145\1\143\2\44\1\157\1\151\1\162\2\145\1\44\1\143\1\44\2\153\1\141\1\uffff\1\150\1\154\6\uffff\1\44\1\154\1\145\1\155\1\104\1\157\1\162\1\166\1\145\1\154\1\144\1\141\1\162\2\145\1\44\1\uffff\1\157\1\167\1\162\1\156\1\141\2\162\1\155\1\165\1\164\1\145\1\44\1\150\1\156\1\44\1\141\1\167\1\147\1\145\2\162\1\44\1\154\1\141\1\uffff\1\44\1\145\1\163\2\uffff\1\145\1\114\1\143\1\151\1\143\1\162\1\150\1\144\2\uffff\1\144\1\164\1\145\1\156\1\44\1\uffff\1\165\1\151\1\157\1\uffff\1\145\1\165\1\154\1\44\1\145\1\uffff\2\44\2\141\1\163\1\164\1\145\1\44\1\151\1\157\1\147\1\145\1\162\1\44\1\uffff\1\146\1\44\1\143\1\164\1\156\1\164\2\151\1\154\1\145\1\123\1\uffff\1\44\1\147\1\uffff\1\147\1\116\1\156\1\163\1\144\1\156\1\uffff\1\154\1\164\1\uffff\2\44\1\103\1\151\1\164\1\143\1\150\1\44\1\162\1\141\1\151\1\171\1\163\1\144\1\uffff\1\164\1\156\1\44\1\144\1\160\1\145\1\uffff\1\44\2\uffff\1\154\1\164\1\145\1\104\1\162\1\uffff\1\163\1\155\1\145\1\163\1\164\1\uffff\1\44\1\uffff\1\150\1\44\1\143\1\44\1\142\2\164\1\40\1\151\1\uffff\1\44\1\145\1\157\1\44\1\150\1\105\1\44\1\171\1\44\2\uffff\1\150\1\156\3\44\1\uffff\1\157\1\164\1\156\1\44\2\163\1\151\1\145\1\147\1\uffff\1\44\1\102\2\44\1\uffff\1\44\1\145\1\143\1\141\1\163\1\145\2\44\1\163\1\171\1\uffff\1\141\1\uffff\1\145\1\156\1\uffff\2\145\1\44\1\uffff\1\156\1\172\1\uffff\1\105\1\122\1\uffff\1\126\1\154\1\151\1\uffff\1\44\1\uffff\1\141\1\145\3\uffff\1\156\1\145\1\147\1\uffff\1\151\1\44\1\157\1\103\1\44\1\141\1\156\1\uffff\1\171\3\uffff\1\44\1\157\1\164\1\141\1\143\2\uffff\1\102\1\44\1\156\1\157\1\164\1\144\1\162\1\uffff\1\44\1\145\1\154\1\145\1\165\1\151\1\145\1\163\1\uffff\1\162\1\163\1\151\2\44\1\157\1\uffff\1\156\2\157\1\uffff\2\164\1\44\1\uffff\1\156\1\145\1\154\1\157\1\141\1\uffff\1\147\1\146\1\44\1\40\1\44\1\uffff\1\44\1\145\1\163\1\156\1\145\1\155\1\164\1\141\1\44\1\172\1\145\2\uffff\1\156\1\44\1\156\1\144\1\150\1\151\1\uffff\1\144\1\44\1\154\1\156\1\162\1\145\1\44\4\uffff\1\155\1\165\1\151\1\167\1\145\1\44\1\143\1\uffff\1\145\1\141\1\44\1\uffff\1\164\1\145\1\44\1\164\1\163\1\uffff\1\171\1\144\1\123\1\44\1\uffff\1\145\1\154\1\161\1\127\1\156\1\uffff\1\164\2\144\1\uffff\1\145\1\154\1\uffff\1\171\1\44\1\125\1\163\1\164\1\uffff\1\156\1\164\1\165\1\150\1\164\1\145\1\44\1\145\1\170\2\44\1\uffff\1\156\1\44\1\171\1\164\1\44\2\145\1\44\1\162\1\uffff\1\162\1\164\2\uffff\1\151\1\uffff\1\154\1\123\1\uffff\1\122\1\156\1\uffff\3\44\1\161\1\145\1\151\1\145\1\106\3\uffff\1\165\1\44\1\172\1\163\1\151\1\145\1\uffff\1\145\1\165\1\156\1\111\1\44\1\154\1\151\1\144\1\uffff\1\164\1\163\1\145\1\44\1\150\1\156\1\uffff\1\145\1\164\1\144\1\151\1\44\1\146\1\uffff\1\151\1\145\1\162\1\44\1\uffff";
+    static final String DFA21_maxS =
+        "\1\uffff\1\162\1\171\2\uffff\1\156\1\157\1\162\1\166\1\145\1\162\1\145\1\115\1\123\1\165\1\171\1\141\2\170\1\141\1\157\1\156\1\151\1\56\1\75\4\uffff\1\76\3\uffff\1\75\1\76\2\75\1\76\1\75\1\174\1\46\1\75\2\72\1\uffff\1\165\1\157\1\164\1\156\1\141\1\151\1\141\1\170\1\154\1\172\5\uffff\1\143\1\157\1\uffff\1\164\1\172\1\171\1\160\1\162\2\uffff\1\164\1\160\1\172\1\163\1\172\1\145\1\164\1\160\1\145\1\154\1\172\1\164\1\156\1\162\1\157\1\154\1\141\1\114\1\126\1\157\1\151\1\162\1\151\1\160\1\156\1\162\2\164\1\163\1\111\1\145\1\162\1\157\1\172\1\164\1\151\1\74\10\uffff\1\75\32\uffff\1\75\7\uffff\1\167\1\154\1\162\1\167\1\156\1\141\1\151\1\164\1\154\1\156\1\uffff\1\154\4\uffff\1\153\1\160\1\154\1\uffff\1\145\1\172\1\145\1\157\2\145\1\164\1\157\1\uffff\1\143\1\151\1\141\1\uffff\1\141\1\150\1\145\1\143\1\151\1\171\1\162\1\157\1\151\1\uffff\1\162\1\157\1\165\1\145\1\141\1\172\1\155\1\163\1\156\2\172\1\164\1\160\1\151\2\164\1\145\1\143\2\172\1\157\1\151\1\162\2\145\1\172\1\143\1\172\2\153\1\141\1\uffff\1\150\1\154\6\uffff\1\172\1\154\1\145\1\155\1\104\1\157\1\162\1\166\1\145\1\154\1\144\1\141\1\162\2\145\1\172\1\uffff\1\157\1\167\1\162\1\156\1\141\2\162\1\155\1\165\1\164\1\145\1\172\1\150\1\156\1\172\1\141\1\167\1\147\1\145\2\162\1\172\1\154\1\141\1\uffff\1\172\1\145\1\163\2\uffff\1\145\1\114\1\143\1\151\1\143\1\162\1\150\1\144\2\uffff\1\144\1\164\1\145\1\156\1\172\1\uffff\1\165\1\151\1\157\1\uffff\1\145\1\165\1\154\1\172\1\145\1\uffff\2\172\2\141\1\163\1\164\1\145\1\172\1\151\1\157\1\147\1\145\1\162\1\172\1\uffff\1\146\1\172\1\143\1\164\1\156\1\164\2\151\1\154\1\145\1\123\1\uffff\1\172\1\147\1\uffff\1\147\1\116\1\156\1\163\1\144\1\156\1\uffff\1\154\1\164\1\uffff\2\172\1\103\1\151\1\164\1\143\1\150\1\172\1\162\1\141\1\151\1\171\2\163\1\uffff\1\164\1\156\1\172\1\162\1\160\1\145\1\uffff\1\172\2\uffff\1\154\1\164\1\145\1\104\1\162\1\uffff\1\163\1\155\1\145\1\163\1\164\1\uffff\1\172\1\uffff\1\150\1\172\1\143\1\172\1\142\2\164\1\117\1\151\1\uffff\1\172\1\145\1\157\1\172\1\150\1\114\1\172\1\171\1\172\2\uffff\1\150\1\156\3\172\1\uffff\1\157\1\164\1\156\1\172\2\163\1\151\1\145\1\147\1\uffff\1\172\1\102\2\172\1\uffff\1\172\1\145\1\143\1\141\1\163\1\145\2\172\1\163\1\171\1\uffff\1\141\1\uffff\1\145\1\156\1\uffff\2\145\1\172\1\uffff\1\156\1\172\1\uffff\1\105\1\156\1\uffff\1\126\1\154\1\151\1\uffff\1\172\1\uffff\1\141\1\145\3\uffff\1\156\1\145\1\147\1\uffff\1\151\1\172\1\157\1\103\1\172\1\141\1\156\1\uffff\1\171\3\uffff\1\172\1\157\1\164\1\141\1\143\2\uffff\1\102\1\172\1\156\1\157\1\164\1\144\1\162\1\uffff\1\172\1\145\1\154\1\145\1\165\1\151\1\145\1\163\1\uffff\1\162\1\163\1\151\2\172\1\157\1\uffff\1\156\2\157\1\uffff\2\164\1\172\1\uffff\1\156\1\145\1\154\1\157\1\141\1\uffff\1\147\1\146\1\172\1\40\1\172\1\uffff\1\172\1\145\1\163\1\156\1\145\1\155\1\164\1\141\2\172\1\145\2\uffff\1\156\1\172\1\156\1\144\1\150\1\151\1\uffff\1\144\1\172\1\154\1\156\1\162\1\145\1\172\4\uffff\1\155\1\165\1\151\1\167\1\145\1\172\1\143\1\uffff\1\145\1\141\1\172\1\uffff\1\164\1\145\1\172\1\164\1\163\1\uffff\1\171\1\144\1\123\1\172\1\uffff\1\145\1\154\1\161\1\127\1\156\1\uffff\1\164\2\144\1\uffff\1\145\1\154\1\uffff\1\171\1\172\1\125\1\163\1\164\1\uffff\1\156\1\164\1\165\1\150\1\164\1\145\1\172\1\145\1\170\2\172\1\uffff\1\156\1\172\1\171\1\164\1\172\2\145\1\172\1\162\1\uffff\1\162\1\164\2\uffff\1\151\1\uffff\1\154\1\123\1\uffff\1\122\1\156\1\uffff\3\172\1\161\1\145\1\151\1\145\1\106\3\uffff\1\165\2\172\1\163\1\151\1\145\1\uffff\1\145\1\165\1\156\1\111\1\172\1\154\1\151\1\144\1\uffff\1\164\1\163\1\145\1\172\1\150\1\156\1\uffff\1\145\1\164\1\144\1\151\1\172\1\146\1\uffff\1\151\1\145\1\162\1\172\1\uffff";
+    static final String DFA21_acceptS =
+        "\3\uffff\1\3\1\4\24\uffff\1\70\1\71\1\72\1\73\1\uffff\1\75\1\76\1\77\13\uffff\1\140\12\uffff\1\u008a\2\u008b\1\u008e\1\u008f\2\uffff\1\u008a\5\uffff\1\3\1\4\45\uffff\1\66\1\102\1\127\1\67\1\70\1\71\1\72\1\73\1\uffff\1\122\1\74\1\75\1\76\1\77\1\100\1\133\1\125\1\101\1\117\1\134\1\126\1\103\1\u008c\1\u008d\1\130\1\104\1\131\1\123\1\105\1\107\1\106\1\110\1\137\1\111\1\173\1\uffff\1\132\1\124\1\136\1\172\1\135\1\144\1\140\12\uffff\1\u0087\1\uffff\1\u0088\1\u0089\1\u008b\1\u008e\3\uffff\1\64\10\uffff\1\141\3\uffff\1\150\11\uffff\1\62\37\uffff\1\43\2\uffff\1\120\1\121\1\114\1\112\1\115\1\113\20\uffff\1\166\30\uffff\1\42\3\uffff\1\15\1\16\10\uffff\1\152\1\151\5\uffff\1\26\3\uffff\1\63\5\uffff\1\157\16\uffff\1\161\13\uffff\1\146\2\uffff\1\56\6\uffff\1\13\2\uffff\1\57\16\uffff\1\142\6\uffff\1\44\1\uffff\1\162\1\u0084\5\uffff\1\177\5\uffff\1\2\1\uffff\1\164\11\uffff\1\171\11\uffff\1\160\1\14\5\uffff\1\156\11\uffff\1\46\4\uffff\1\147\12\uffff\1\163\1\uffff\1\22\2\uffff\1\65\3\uffff\1\7\2\uffff\1\54\2\uffff\1\61\3\uffff\1\165\1\uffff\1\40\2\uffff\1\23\1\154\1\143\3\uffff\1\31\7\uffff\1\33\1\uffff\1\37\1\55\1\u0085\5\uffff\1\u0082\1\1\7\uffff\1\145\10\uffff\1\167\6\uffff\1\153\3\uffff\1\41\3\uffff\1\174\5\uffff\1\60\5\uffff\1\32\13\uffff\1\30\1\25\6\uffff\1\53\7\uffff\1\u0086\1\6\1\17\1\45\7\uffff\1\21\3\uffff\1\155\5\uffff\1\175\4\uffff\1\116\5\uffff\1\35\3\uffff\1\36\2\uffff\1\51\5\uffff\1\5\13\uffff\1\u0081\11\uffff\1\170\2\uffff\1\27\1\52\1\uffff\1\u0080\2\uffff\1\47\2\uffff\1\34\10\uffff\1\20\1\24\1\u0083\6\uffff\1\11\10\uffff\1\10\6\uffff\1\50\6\uffff\1\12\4\uffff\1\176";
+    static final String DFA21_specialS =
+        "\1\0\u02ab\uffff}>";
+    static final String[] DFA21_transitionS = {
+            "\11\73\2\72\2\73\1\72\22\73\1\72\1\51\1\70\1\36\1\67\1\44\1\50\1\71\1\32\1\34\1\30\1\41\1\33\1\42\1\27\1\43\1\64\11\65\1\53\1\54\1\45\1\35\1\46\1\52\1\31\2\67\1\15\1\61\1\22\7\67\1\62\1\56\3\67\1\63\1\57\1\67\1\60\2\67\1\14\2\67\1\37\1\73\1\40\1\66\1\67\1\73\1\10\1\13\1\7\1\6\1\21\1\12\2\67\1\5\2\67\1\24\1\23\1\55\1\25\1\1\1\16\1\11\1\17\1\2\1\67\1\20\1\26\3\67\1\3\1\47\1\4\uff82\73",
+            "\1\74\20\uffff\1\75",
+            "\1\103\1\77\5\uffff\1\100\2\uffff\1\101\6\uffff\1\102",
+            "",
+            "",
+            "\1\110\6\uffff\1\107\1\106",
+            "\1\111\11\uffff\1\112",
+            "\1\114\15\uffff\1\115\2\uffff\1\113",
+            "\1\117\6\uffff\1\120\2\uffff\1\116",
+            "\1\121",
+            "\1\125\7\uffff\1\122\5\uffff\1\123\2\uffff\1\124",
+            "\1\126",
+            "\1\127",
+            "\1\130",
+            "\1\131",
+            "\1\132\10\uffff\1\133\1\135\1\uffff\1\134\1\uffff\1\136",
+            "\1\137",
+            "\1\142\1\uffff\1\140\11\uffff\1\141",
+            "\1\143\63\uffff\1\144",
+            "\1\145",
+            "\1\146",
+            "\1\147",
+            "\1\151\1\150",
+            "\1\152",
+            "\1\155\22\uffff\1\154",
+            "",
+            "",
+            "",
+            "",
+            "\1\163\1\164",
+            "",
+            "",
+            "",
+            "\1\172\21\uffff\1\171",
+            "\1\176\17\uffff\1\174\1\175",
+            "\1\u0081\4\uffff\1\u0082\15\uffff\1\u0080",
+            "\1\u0084",
+            "\1\u0086",
+            "\1\u0088",
+            "\1\u008a",
+            "\1\u008c",
+            "\1\u008e",
+            "\1\u0091\13\uffff\1\u0090",
+            "\1\u0093",
+            "",
+            "\1\u0096\11\uffff\1\u0098\5\uffff\1\u0097",
+            "\1\u009a\15\uffff\1\u0099",
+            "\1\u009b",
+            "\1\u009c",
+            "\1\u009d",
+            "\1\u009e",
+            "\1\u009f",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3\13\uffff\1\u00a0\6\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3\13\uffff\1\u00a0",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3\22\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3",
+            "\1\76\34\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00a6",
+            "\1\u00a7",
+            "",
+            "\1\u00a8",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00aa\3\uffff\1\u00ab",
+            "\1\u00ac",
+            "\1\u00ad",
+            "",
+            "",
+            "\1\u00af\16\uffff\1\u00b0\1\u00ae",
+            "\1\u00b1",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00b5\5\uffff\1\u00b4\6\uffff\1\u00b3",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00b7",
+            "\1\u00b8\17\uffff\1\u00b9\1\u00ba",
+            "\1\u00bb\13\uffff\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\22\76\1\u00bf\7\76",
+            "\1\u00c2\2\uffff\1\u00c1\15\uffff\1\u00c3",
+            "\1\u00c4\1\uffff\1\u00c5",
+            "\1\u00c6",
+            "\1\u00c7",
+            "\1\u00c8",
+            "\1\u00c9",
+            "\1\u00ca",
+            "\1\u00cb",
+            "\1\u00cc",
+            "\1\u00cd",
+            "\1\u00cf\20\uffff\1\u00ce",
+            "\1\u00d0",
+            "\1\u00d1",
+            "\1\u00d2",
+            "\1\u00d3\5\uffff\1\u00d4",
+            "\1\u00d5\20\uffff\1\u00d6",
+            "\1\u00d7\3\uffff\1\u00d8",
+            "\1\u00d9",
+            "\1\u00da",
+            "\1\u00db",
+            "\1\u00dc\1\uffff\1\u00dd",
+            "\1\u00df\13\uffff\1\u00de",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00e5",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00e7",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00e9",
+            "\1\u00ea",
+            "\1\u00eb\3\uffff\1\u00ec",
+            "\1\u00ed",
+            "\1\u00ee",
+            "\1\u00ef",
+            "\1\u00f0",
+            "\1\u00f1",
+            "\1\u00f2",
+            "\1\u00f3",
+            "",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3\22\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00f4",
+            "\1\u00f5\10\uffff\1\u00f6",
+            "\1\u00f7",
+            "",
+            "\1\u00f8",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00fa",
+            "\1\u00fb",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00fe",
+            "\1\u00ff",
+            "",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
+            "",
+            "\1\u010c",
+            "\1\u010d",
+            "\1\u010e",
+            "\1\u010f",
+            "\1\u0110",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\14\76\1\u0111\15\76",
+            "\1\u0113",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011a",
+            "\1\u011b",
+            "\1\u011c",
+            "\1\u011d",
+            "\1\u011e",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\10\76\1\u011f\21\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0122",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0128",
+            "\1\76\13\uffff\12\76\7\uffff\23\76\1\u012a\6\76\4\uffff\1\76\1\uffff\17\76\1\u0129\12\76",
+            "\1\u012c",
+            "\1\u012d",
+            "\1\u012e",
+            "",
+            "\1\u012f",
+            "\1\u0130",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0132",
+            "\1\u0133",
+            "\1\u0134",
+            "\1\u0135",
+            "\1\u0136",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\u0139",
+            "\1\u013a",
+            "\1\u013b",
+            "\1\u013c",
+            "\1\u013d",
+            "\1\u013e",
+            "\1\u013f",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u0141",
+            "\1\u0142",
+            "\1\u0143",
+            "\1\u0144",
+            "\1\u0145",
+            "\1\u0146",
+            "\1\u0147",
+            "\1\u0148",
+            "\1\u0149",
+            "\1\u014a",
+            "\1\u014b",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u014d",
+            "\1\u014e",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0150",
+            "\1\u0151",
+            "\1\u0152",
+            "\1\u0153",
+            "\1\u0154",
+            "\1\u0155",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0157",
+            "\1\u0158",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u015a",
+            "\1\u015b",
+            "",
+            "",
+            "\1\u015c",
+            "\1\u015d",
+            "\1\u015e",
+            "\1\u015f",
+            "\1\u0160",
+            "\1\u0161",
+            "\1\u0162",
+            "\1\u0163",
+            "",
+            "",
+            "\1\u0164",
+            "\1\u0165",
+            "\1\u0166",
+            "\1\u0167",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u0169",
+            "\1\u016a",
+            "\1\u016b",
+            "",
+            "\1\u016c",
+            "\1\u016d",
+            "\1\u016e",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0170",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0173",
+            "\1\u0174",
+            "\1\u0175",
+            "\1\u0176",
+            "\1\u0177",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0179",
+            "\1\u017a",
+            "\1\u017b",
+            "\1\u017c",
+            "\1\u017d",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u017f",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0181",
+            "\1\u0182",
+            "\1\u0183",
+            "\1\u0184",
+            "\1\u0185",
+            "\1\u0186",
+            "\1\u0187",
+            "\1\u0188",
+            "\1\u0189",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u018b",
+            "",
+            "\1\u018c",
+            "\1\u018d",
+            "\1\u018e",
+            "\1\u018f",
+            "\1\u0190",
+            "\1\u0191",
+            "",
+            "\1\u0192",
+            "\1\u0193",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "\1\u0199",
+            "\1\u019a",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u019c",
+            "\1\u019d",
+            "\1\u019e",
+            "\1\u019f",
+            "\1\u01a0",
+            "\1\u01a1\16\uffff\1\u01a2",
+            "",
+            "\1\u01a3",
+            "\1\u01a4",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01a7\15\uffff\1\u01a6",
+            "\1\u01a8",
+            "\1\u01a9",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "\1\u01ab",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\u01af",
+            "",
+            "\1\u01b0",
+            "\1\u01b1",
+            "\1\u01b2",
+            "\1\u01b3",
+            "\1\u01b4",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u01b6",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01b8",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\1\u01b9\31\76",
+            "\1\u01bb",
+            "\1\u01bc",
+            "\1\u01bd",
+            "\1\u01be\56\uffff\1\u01bf",
+            "\1\u01c0",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01c2",
+            "\1\u01c3",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01c5",
+            "\1\u01c6\6\uffff\1\u01c7",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01c9",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "\1\u01cb",
+            "\1\u01cc",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u01d0",
+            "\1\u01d1",
+            "\1\u01d2",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01d4",
+            "\1\u01d5",
+            "\1\u01d6",
+            "\1\u01d7",
+            "\1\u01d8",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\4\76\1\u01da\12\76\1\u01d9\12\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01dc",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01e0",
+            "\1\u01e1",
+            "\1\u01e2",
+            "\1\u01e3",
+            "\1\u01e4",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01e7",
+            "\1\u01e8",
+            "",
+            "\1\u01e9",
+            "",
+            "\1\u01ea",
+            "\1\u01eb",
+            "",
+            "\1\u01ec",
+            "\1\u01ed",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u01ef",
+            "\1\u01f0",
+            "",
+            "\1\u01f1",
+            "\1\u01f2\33\uffff\1\u01f3",
+            "",
+            "\1\u01f4",
+            "\1\u01f5",
+            "\1\u01f6",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u01f8",
+            "\1\u01f9",
+            "",
+            "",
+            "",
+            "\1\u01fa",
+            "\1\u01fb",
+            "\1\u01fc",
+            "",
+            "\1\u01fd",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u01ff",
+            "\1\u0200",
+            "\1\76\13\uffff\12\76\7\uffff\14\76\1\u0201\15\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0203",
+            "\1\u0204",
+            "",
+            "\1\u0205",
+            "",
+            "",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0207",
+            "\1\u0208",
+            "\1\u0209",
+            "\1\u020a",
+            "",
+            "",
+            "\1\u020b",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u020d",
+            "\1\u020e",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\u0211",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0213",
+            "\1\u0214",
+            "\1\u0215",
+            "\1\u0216",
+            "\1\u0217",
+            "\1\u0218",
+            "\1\u0219",
+            "",
+            "\1\u021a",
+            "\1\u021b",
+            "\1\u021c",
+            "\1\76\13\uffff\12\76\7\uffff\7\76\1\u021d\22\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0220",
+            "",
+            "\1\u0221",
+            "\1\u0222",
+            "\1\u0223",
+            "",
+            "\1\u0224",
+            "\1\u0225",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u0227",
+            "\1\u0228",
+            "\1\u0229",
+            "\1\u022a",
+            "\1\u022b",
+            "",
+            "\1\u022c",
+            "\1\u022d",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u022f",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0232",
+            "\1\u0233",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\u0236",
+            "\1\u0237",
+            "\1\u0238",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u023a",
+            "\1\u023b",
+            "",
+            "",
+            "\1\u023c",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u023e",
+            "\1\u023f",
+            "\1\u0240",
+            "\1\u0241",
+            "",
+            "\1\u0242",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0244",
+            "\1\u0245",
+            "\1\u0246",
+            "\1\u0247",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0249",
+            "\1\u024a",
+            "\1\u024b",
+            "\1\u024c",
+            "\1\u024d",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u024f",
+            "",
+            "\1\u0250",
+            "\1\u0251",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u0253",
+            "\1\u0254",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0256",
+            "\1\u0257",
+            "",
+            "\1\u0258",
+            "\1\u0259",
+            "\1\u025a",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u025c",
+            "\1\u025d",
+            "\1\u025e",
+            "\1\u025f",
+            "\1\u0260",
+            "",
+            "\1\u0261",
+            "\1\u0262",
+            "\1\u0263",
+            "",
+            "\1\u0264",
+            "\1\u0265",
+            "",
+            "\1\u0266",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0268",
+            "\1\u0269",
+            "\1\u026a",
+            "",
+            "\1\u026b",
+            "\1\u026c",
+            "\1\u026d",
+            "\1\u026e",
+            "\1\u026f",
+            "\1\u0270",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0272",
+            "\1\u0273",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "\1\u0276",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0278",
+            "\1\u0279",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u027b",
+            "\1\u027c",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u027e",
+            "",
+            "\1\u027f",
+            "\1\u0280",
+            "",
+            "",
+            "\1\u0281",
+            "",
+            "\1\u0282",
+            "\1\u0283",
+            "",
+            "\1\u0284",
+            "\1\u0285",
+            "",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0289",
+            "\1\u028a",
+            "\1\u028b",
+            "\1\u028c",
+            "\1\u028d",
+            "",
+            "",
+            "",
+            "\1\u028e",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0290",
+            "\1\u0291",
+            "\1\u0292",
+            "\1\u0293",
+            "",
+            "\1\u0294",
+            "\1\u0295",
+            "\1\u0296",
+            "\1\u0297",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0299",
+            "\1\u029a",
+            "\1\u029b",
+            "",
+            "\1\u029c",
+            "\1\u029d",
+            "\1\u029e",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02a0",
+            "\1\u02a1",
+            "",
+            "\1\u02a2",
+            "\1\u02a3",
+            "\1\u02a4",
+            "\1\u02a5",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u02a7",
+            "",
+            "\1\u02a8",
+            "\1\u02a9",
+            "\1\u02aa",
+            "\1\76\13\uffff\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            ""
+    };
+
+    static final short[] DFA21_eot = DFA.unpackEncodedString(DFA21_eotS);
+    static final short[] DFA21_eof = DFA.unpackEncodedString(DFA21_eofS);
+    static final char[] DFA21_min = DFA.unpackEncodedStringToUnsignedChars(DFA21_minS);
+    static final char[] DFA21_max = DFA.unpackEncodedStringToUnsignedChars(DFA21_maxS);
+    static final short[] DFA21_accept = DFA.unpackEncodedString(DFA21_acceptS);
+    static final short[] DFA21_special = DFA.unpackEncodedString(DFA21_specialS);
+    static final short[][] DFA21_transition;
+
+    static {
+        int numStates = DFA21_transitionS.length;
+        DFA21_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA21_transition[i] = DFA.unpackEncodedString(DFA21_transitionS[i]);
+        }
+    }
+
+    class DFA21 extends DFA {
+
+        public DFA21(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 21;
+            this.eot = DFA21_eot;
+            this.eof = DFA21_eof;
+            this.min = DFA21_min;
+            this.max = DFA21_max;
+            this.accept = DFA21_accept;
+            this.special = DFA21_special;
+            this.transition = DFA21_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            IntStream input = _input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA21_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA21_0=='p') ) {s = 1;}
+
+                        else if ( (LA21_0=='t') ) {s = 2;}
+
+                        else if ( (LA21_0=='{') ) {s = 3;}
+
+                        else if ( (LA21_0=='}') ) {s = 4;}
+
+                        else if ( (LA21_0=='i') ) {s = 5;}
+
+                        else if ( (LA21_0=='d') ) {s = 6;}
+
+                        else if ( (LA21_0=='c') ) {s = 7;}
+
+                        else if ( (LA21_0=='a') ) {s = 8;}
+
+                        else if ( (LA21_0=='r') ) {s = 9;}
+
+                        else if ( (LA21_0=='f') ) {s = 10;}
+
+                        else if ( (LA21_0=='b') ) {s = 11;}
+
+                        else if ( (LA21_0=='X') ) {s = 12;}
+
+                        else if ( (LA21_0=='C') ) {s = 13;}
+
+                        else if ( (LA21_0=='q') ) {s = 14;}
+
+                        else if ( (LA21_0=='s') ) {s = 15;}
+
+                        else if ( (LA21_0=='v') ) {s = 16;}
+
+                        else if ( (LA21_0=='e') ) {s = 17;}
+
+                        else if ( (LA21_0=='E') ) {s = 18;}
+
+                        else if ( (LA21_0=='m') ) {s = 19;}
+
+                        else if ( (LA21_0=='l') ) {s = 20;}
+
+                        else if ( (LA21_0=='o') ) {s = 21;}
+
+                        else if ( (LA21_0=='w') ) {s = 22;}
+
+                        else if ( (LA21_0=='.') ) {s = 23;}
+
+                        else if ( (LA21_0=='*') ) {s = 24;}
+
+                        else if ( (LA21_0=='@') ) {s = 25;}
+
+                        else if ( (LA21_0=='(') ) {s = 26;}
+
+                        else if ( (LA21_0==',') ) {s = 27;}
+
+                        else if ( (LA21_0==')') ) {s = 28;}
+
+                        else if ( (LA21_0=='=') ) {s = 29;}
+
+                        else if ( (LA21_0=='#') ) {s = 30;}
+
+                        else if ( (LA21_0=='[') ) {s = 31;}
+
+                        else if ( (LA21_0==']') ) {s = 32;}
+
+                        else if ( (LA21_0=='+') ) {s = 33;}
+
+                        else if ( (LA21_0=='-') ) {s = 34;}
+
+                        else if ( (LA21_0=='/') ) {s = 35;}
+
+                        else if ( (LA21_0=='%') ) {s = 36;}
+
+                        else if ( (LA21_0=='<') ) {s = 37;}
+
+                        else if ( (LA21_0=='>') ) {s = 38;}
+
+                        else if ( (LA21_0=='|') ) {s = 39;}
+
+                        else if ( (LA21_0=='&') ) {s = 40;}
+
+                        else if ( (LA21_0=='!') ) {s = 41;}
+
+                        else if ( (LA21_0=='?') ) {s = 42;}
+
+                        else if ( (LA21_0==':') ) {s = 43;}
+
+                        else if ( (LA21_0==';') ) {s = 44;}
+
+                        else if ( (LA21_0=='n') ) {s = 45;}
+
+                        else if ( (LA21_0=='N') ) {s = 46;}
+
+                        else if ( (LA21_0=='S') ) {s = 47;}
+
+                        else if ( (LA21_0=='U') ) {s = 48;}
+
+                        else if ( (LA21_0=='D') ) {s = 49;}
+
+                        else if ( (LA21_0=='M') ) {s = 50;}
+
+                        else if ( (LA21_0=='R') ) {s = 51;}
+
+                        else if ( (LA21_0=='0') ) {s = 52;}
+
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 53;}
+
+                        else if ( (LA21_0=='^') ) {s = 54;}
+
+                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='B')||(LA21_0>='F' && LA21_0<='L')||(LA21_0>='O' && LA21_0<='Q')||LA21_0=='T'||(LA21_0>='V' && LA21_0<='W')||(LA21_0>='Y' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='g' && LA21_0<='h')||(LA21_0>='j' && LA21_0<='k')||LA21_0=='u'||(LA21_0>='x' && LA21_0<='z')) ) {s = 55;}
+
+                        else if ( (LA21_0=='\"') ) {s = 56;}
+
+                        else if ( (LA21_0=='\'') ) {s = 57;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 58;}
+
+                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 59;}
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 21, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSLParser.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSLParser.java
new file mode 100644
index 0000000..42a67f7
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSLParser.java
@@ -0,0 +1,10014 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.parser.antlr.internal; 
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+@SuppressWarnings("all")
+public class InternalDataDSLParser extends AbstractInternalAntlrParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_STRING", "RULE_ID", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'title'", "'{'", "'}'", "'interchange'", "'described by'", "'create report'", "'averageElementSize'", "'progressBarStyle'", "'refreshViewWhenFinished'", "'file'", "'beans'", "'XML'", "'CSV'", "'delimiter'", "'quoteCharacter'", "'skipLines'", "'indent'", "'strict'", "'validateHeader'", "'encoding'", "'EDI'", "'mappingModel'", "'validate'", "'entity'", "'createOn'", "'marker'", "'recordElement'", "'recordList'", "'expression'", "'lookup'", "'format'", "'mapping'", "'for'", "'on'", "'with'", "'cacheSize'", "'mapTo'", "'allowNoResult'", "'allowNonuniqueResult'", "'markerPath'", "'markerEntity'", "'markedBy'", "'coding'", "'locale'", "'copy'", "'from'", "'property'", "'assign'", "'as'", "'map'", "'to'", "'import'", "'.'", "'*'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'::'", "'?.'", "'|'", "';'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'static'", "'extension'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'NowDate'", "'StartDate'", "'UniversallyUniqueIdentifier'", "'Date'", "'Milliseconds'", "'Nanoseconds'", "'Random'", "'ExecuteContext'", "'none'", "'normal'", "'important'"
+    };
+    public static final int T__144=144;
+    public static final int T__143=143;
+    public static final int T__146=146;
+    public static final int RULE_HEX=7;
+    public static final int T__50=50;
+    public static final int T__145=145;
+    public static final int T__140=140;
+    public static final int T__142=142;
+    public static final int T__141=141;
+    public static final int T__59=59;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__137=137;
+    public static final int T__52=52;
+    public static final int T__136=136;
+    public static final int T__53=53;
+    public static final int T__139=139;
+    public static final int T__54=54;
+    public static final int T__138=138;
+    public static final int T__133=133;
+    public static final int T__132=132;
+    public static final int T__60=60;
+    public static final int T__135=135;
+    public static final int T__61=61;
+    public static final int T__134=134;
+    public static final int RULE_ID=6;
+    public static final int T__131=131;
+    public static final int T__130=130;
+    public static final int RULE_INT=4;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__91=91;
+    public static final int T__100=100;
+    public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__102=102;
+    public static final int T__94=94;
+    public static final int T__101=101;
+    public static final int T__90=90;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int T__99=99;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    public static final int T__95=95;
+    public static final int T__96=96;
+    public static final int T__97=97;
+    public static final int T__98=98;
+    public static final int RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__70=70;
+    public static final int T__121=121;
+    public static final int T__71=71;
+    public static final int T__124=124;
+    public static final int T__72=72;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__77=77;
+    public static final int T__119=119;
+    public static final int T__78=78;
+    public static final int T__118=118;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__74=74;
+    public static final int T__114=114;
+    public static final int T__75=75;
+    public static final int T__117=117;
+    public static final int T__76=76;
+    public static final int T__116=116;
+    public static final int T__80=80;
+    public static final int T__111=111;
+    public static final int T__81=81;
+    public static final int T__110=110;
+    public static final int T__82=82;
+    public static final int T__113=113;
+    public static final int T__83=83;
+    public static final int T__112=112;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__88=88;
+    public static final int T__108=108;
+    public static final int T__89=89;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__84=84;
+    public static final int T__104=104;
+    public static final int T__85=85;
+    public static final int T__103=103;
+    public static final int T__86=86;
+    public static final int T__106=106;
+    public static final int T__87=87;
+    public static final int T__105=105;
+
+    // delegates
+    // delegators
+
+
+        public InternalDataDSLParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalDataDSLParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalDataDSLParser.tokenNames; }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g"; }
+
+
+
+     	private DataDSLGrammarAccess grammarAccess;
+     	
+        public InternalDataDSLParser(TokenStream input, DataDSLGrammarAccess grammarAccess) {
+            this(input);
+            this.grammarAccess = grammarAccess;
+            registerRules(grammarAccess.getGrammar());
+        }
+        
+        @Override
+        protected String getFirstRuleName() {
+        	return "DataInterchangeModel";	
+       	}
+       	
+       	@Override
+       	protected DataDSLGrammarAccess getGrammarAccess() {
+       		return grammarAccess;
+       	}
+
+
+
+    // $ANTLR start "entryRuleDataInterchangeModel"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:68:1: entryRuleDataInterchangeModel returns [EObject current=null] : iv_ruleDataInterchangeModel= ruleDataInterchangeModel EOF ;
+    public final EObject entryRuleDataInterchangeModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeModel = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:69:2: (iv_ruleDataInterchangeModel= ruleDataInterchangeModel EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:70:2: iv_ruleDataInterchangeModel= ruleDataInterchangeModel EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeModelRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeModel_in_entryRuleDataInterchangeModel75);
+            iv_ruleDataInterchangeModel=ruleDataInterchangeModel();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeModel; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeModel85); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeModel"
+
+
+    // $ANTLR start "ruleDataInterchangeModel"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:77:1: ruleDataInterchangeModel returns [EObject current=null] : ( (lv_packages_0_0= ruleDataInterchangePackage ) )* ;
+    public final EObject ruleDataInterchangeModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_packages_0_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:80:28: ( ( (lv_packages_0_0= ruleDataInterchangePackage ) )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:81:1: ( (lv_packages_0_0= ruleDataInterchangePackage ) )*
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:81:1: ( (lv_packages_0_0= ruleDataInterchangePackage ) )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==13) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:82:1: (lv_packages_0_0= ruleDataInterchangePackage )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:82:1: (lv_packages_0_0= ruleDataInterchangePackage )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:83:3: lv_packages_0_0= ruleDataInterchangePackage
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getDataInterchangeModelAccess().getPackagesDataInterchangePackageParserRuleCall_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleDataInterchangePackage_in_ruleDataInterchangeModel130);
+            	    lv_packages_0_0=ruleDataInterchangePackage();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getDataInterchangeModelRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"packages",
+            	              		lv_packages_0_0, 
+            	              		"DataInterchangePackage");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeModel"
+
+
+    // $ANTLR start "entryRuleDataInterchangePackage"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:107:1: entryRuleDataInterchangePackage returns [EObject current=null] : iv_ruleDataInterchangePackage= ruleDataInterchangePackage EOF ;
+    public final EObject entryRuleDataInterchangePackage() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangePackage = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:108:2: (iv_ruleDataInterchangePackage= ruleDataInterchangePackage EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:109:2: iv_ruleDataInterchangePackage= ruleDataInterchangePackage EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangePackageRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangePackage_in_entryRuleDataInterchangePackage166);
+            iv_ruleDataInterchangePackage=ruleDataInterchangePackage();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangePackage; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangePackage176); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangePackage"
+
+
+    // $ANTLR start "ruleDataInterchangePackage"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:116:1: ruleDataInterchangePackage returns [EObject current=null] : ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= 'title' ( (lv_title_4_0= ruleTRANSLATABLESTRING ) ) (otherlv_5= '{' ( (lv_imports_6_0= ruleDataInterchangeImport ) )* ( (lv_datInts_7_0= ruleDataInterchange ) )* otherlv_8= '}' )? ) ;
+    public final EObject ruleDataInterchangePackage() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_8=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        AntlrDatatypeRuleToken lv_title_4_0 = null;
+
+        EObject lv_imports_6_0 = null;
+
+        EObject lv_datInts_7_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:119:28: ( ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= 'title' ( (lv_title_4_0= ruleTRANSLATABLESTRING ) ) (otherlv_5= '{' ( (lv_imports_6_0= ruleDataInterchangeImport ) )* ( (lv_datInts_7_0= ruleDataInterchange ) )* otherlv_8= '}' )? ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:120:1: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= 'title' ( (lv_title_4_0= ruleTRANSLATABLESTRING ) ) (otherlv_5= '{' ( (lv_imports_6_0= ruleDataInterchangeImport ) )* ( (lv_datInts_7_0= ruleDataInterchange ) )* otherlv_8= '}' )? )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:120:1: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= 'title' ( (lv_title_4_0= ruleTRANSLATABLESTRING ) ) (otherlv_5= '{' ( (lv_imports_6_0= ruleDataInterchangeImport ) )* ( (lv_datInts_7_0= ruleDataInterchange ) )* otherlv_8= '}' )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:120:2: () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= 'title' ( (lv_title_4_0= ruleTRANSLATABLESTRING ) ) (otherlv_5= '{' ( (lv_imports_6_0= ruleDataInterchangeImport ) )* ( (lv_datInts_7_0= ruleDataInterchange ) )* otherlv_8= '}' )?
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:120:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:121:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangePackageAccess().getDataInterchangePackageAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,13,FOLLOW_13_in_ruleDataInterchangePackage222); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangePackageAccess().getPackageKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:130:1: ( (lv_name_2_0= ruleQualifiedName ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:131:1: (lv_name_2_0= ruleQualifiedName )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:131:1: (lv_name_2_0= ruleQualifiedName )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:132:3: lv_name_2_0= ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_ruleDataInterchangePackage243);
+            lv_name_2_0=ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getDataInterchangePackageRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"name",
+                      		lv_name_2_0, 
+                      		"QualifiedName");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleDataInterchangePackage255); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getDataInterchangePackageAccess().getTitleKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:152:1: ( (lv_title_4_0= ruleTRANSLATABLESTRING ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:153:1: (lv_title_4_0= ruleTRANSLATABLESTRING )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:153:1: (lv_title_4_0= ruleTRANSLATABLESTRING )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:154:3: lv_title_4_0= ruleTRANSLATABLESTRING
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangePackageAccess().getTitleTRANSLATABLESTRINGParserRuleCall_4_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_ruleDataInterchangePackage276);
+            lv_title_4_0=ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getDataInterchangePackageRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"title",
+                      		lv_title_4_0, 
+                      		"TRANSLATABLESTRING");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:170:2: (otherlv_5= '{' ( (lv_imports_6_0= ruleDataInterchangeImport ) )* ( (lv_datInts_7_0= ruleDataInterchange ) )* otherlv_8= '}' )?
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==15) ) {
+                alt4=1;
+            }
+            switch (alt4) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:170:4: otherlv_5= '{' ( (lv_imports_6_0= ruleDataInterchangeImport ) )* ( (lv_datInts_7_0= ruleDataInterchange ) )* otherlv_8= '}'
+                    {
+                    otherlv_5=(Token)match(input,15,FOLLOW_15_in_ruleDataInterchangePackage289); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_5, grammarAccess.getDataInterchangePackageAccess().getLeftCurlyBracketKeyword_5_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:174:1: ( (lv_imports_6_0= ruleDataInterchangeImport ) )*
+                    loop2:
+                    do {
+                        int alt2=2;
+                        int LA2_0 = input.LA(1);
+
+                        if ( (LA2_0==65) ) {
+                            alt2=1;
+                        }
+
+
+                        switch (alt2) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:175:1: (lv_imports_6_0= ruleDataInterchangeImport )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:175:1: (lv_imports_6_0= ruleDataInterchangeImport )
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:176:3: lv_imports_6_0= ruleDataInterchangeImport
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+                    	       
+                    	      	        newCompositeNode(grammarAccess.getDataInterchangePackageAccess().getImportsDataInterchangeImportParserRuleCall_5_1_0()); 
+                    	      	    
+                    	    }
+                    	    pushFollow(FOLLOW_ruleDataInterchangeImport_in_ruleDataInterchangePackage310);
+                    	    lv_imports_6_0=ruleDataInterchangeImport();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      	        if (current==null) {
+                    	      	            current = createModelElementForParent(grammarAccess.getDataInterchangePackageRule());
+                    	      	        }
+                    	             		add(
+                    	             			current, 
+                    	             			"imports",
+                    	              		lv_imports_6_0, 
+                    	              		"DataInterchangeImport");
+                    	      	        afterParserOrEnumRuleCall();
+                    	      	    
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop2;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:192:3: ( (lv_datInts_7_0= ruleDataInterchange ) )*
+                    loop3:
+                    do {
+                        int alt3=2;
+                        int LA3_0 = input.LA(1);
+
+                        if ( (LA3_0==17) ) {
+                            alt3=1;
+                        }
+
+
+                        switch (alt3) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:193:1: (lv_datInts_7_0= ruleDataInterchange )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:193:1: (lv_datInts_7_0= ruleDataInterchange )
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:194:3: lv_datInts_7_0= ruleDataInterchange
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+                    	       
+                    	      	        newCompositeNode(grammarAccess.getDataInterchangePackageAccess().getDatIntsDataInterchangeParserRuleCall_5_2_0()); 
+                    	      	    
+                    	    }
+                    	    pushFollow(FOLLOW_ruleDataInterchange_in_ruleDataInterchangePackage332);
+                    	    lv_datInts_7_0=ruleDataInterchange();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      	        if (current==null) {
+                    	      	            current = createModelElementForParent(grammarAccess.getDataInterchangePackageRule());
+                    	      	        }
+                    	             		add(
+                    	             			current, 
+                    	             			"datInts",
+                    	              		lv_datInts_7_0, 
+                    	              		"DataInterchange");
+                    	      	        afterParserOrEnumRuleCall();
+                    	      	    
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop3;
+                        }
+                    } while (true);
+
+                    otherlv_8=(Token)match(input,16,FOLLOW_16_in_ruleDataInterchangePackage345); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_8, grammarAccess.getDataInterchangePackageAccess().getRightCurlyBracketKeyword_5_3());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangePackage"
+
+
+    // $ANTLR start "entryRuleDataInterchange"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:222:1: entryRuleDataInterchange returns [EObject current=null] : iv_ruleDataInterchange= ruleDataInterchange EOF ;
+    public final EObject entryRuleDataInterchange() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchange = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:223:2: (iv_ruleDataInterchange= ruleDataInterchange EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:224:2: iv_ruleDataInterchange= ruleDataInterchange EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchange_in_entryRuleDataInterchange383);
+            iv_ruleDataInterchange=ruleDataInterchange();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchange; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchange393); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchange"
+
+
+    // $ANTLR start "ruleDataInterchange"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:231:1: ruleDataInterchange returns [EObject current=null] : ( () otherlv_1= 'interchange' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? ( (lv_createReport_5_0= 'create report' ) )? (otherlv_6= 'averageElementSize' ( (lv_elementSize_7_0= RULE_INT ) ) )? (otherlv_8= 'progressBarStyle' ( (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum ) ) )? ( ( (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' ) ) ( (lv_refresh_11_0= RULE_STRING ) ) )? otherlv_12= 'file' ( (lv_fileEndpoint_13_0= ruleDataInterchangeFile ) ) otherlv_14= 'beans' otherlv_15= '{' ( (lv_path_16_0= ruleDataInterchangeBean ) )* otherlv_17= '}' ) ;
+    public final EObject ruleDataInterchange() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_description_3_0=null;
+        Token lv_createReport_5_0=null;
+        Token otherlv_6=null;
+        Token lv_elementSize_7_0=null;
+        Token otherlv_8=null;
+        Token lv_refreshEnabled_10_0=null;
+        Token lv_refresh_11_0=null;
+        Token otherlv_12=null;
+        Token otherlv_14=null;
+        Token otherlv_15=null;
+        Token otherlv_17=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        AntlrDatatypeRuleToken lv_descriptionValue_4_0 = null;
+
+        Enumerator lv_progressBarStyle_9_0 = null;
+
+        EObject lv_fileEndpoint_13_0 = null;
+
+        EObject lv_path_16_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:234:28: ( ( () otherlv_1= 'interchange' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? ( (lv_createReport_5_0= 'create report' ) )? (otherlv_6= 'averageElementSize' ( (lv_elementSize_7_0= RULE_INT ) ) )? (otherlv_8= 'progressBarStyle' ( (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum ) ) )? ( ( (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' ) ) ( (lv_refresh_11_0= RULE_STRING ) ) )? otherlv_12= 'file' ( (lv_fileEndpoint_13_0= ruleDataInterchangeFile ) ) otherlv_14= 'beans' otherlv_15= '{' ( (lv_path_16_0= ruleDataInterchangeBean ) )* otherlv_17= '}' ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:235:1: ( () otherlv_1= 'interchange' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? ( (lv_createReport_5_0= 'create report' ) )? (otherlv_6= 'averageElementSize' ( (lv_elementSize_7_0= RULE_INT ) ) )? (otherlv_8= 'progressBarStyle' ( (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum ) ) )? ( ( (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' ) ) ( (lv_refresh_11_0= RULE_STRING ) ) )? otherlv_12= 'file' ( (lv_fileEndpoint_13_0= ruleDataInterchangeFile ) ) otherlv_14= 'beans' otherlv_15= '{' ( (lv_path_16_0= ruleDataInterchangeBean ) )* otherlv_17= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:235:1: ( () otherlv_1= 'interchange' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? ( (lv_createReport_5_0= 'create report' ) )? (otherlv_6= 'averageElementSize' ( (lv_elementSize_7_0= RULE_INT ) ) )? (otherlv_8= 'progressBarStyle' ( (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum ) ) )? ( ( (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' ) ) ( (lv_refresh_11_0= RULE_STRING ) ) )? otherlv_12= 'file' ( (lv_fileEndpoint_13_0= ruleDataInterchangeFile ) ) otherlv_14= 'beans' otherlv_15= '{' ( (lv_path_16_0= ruleDataInterchangeBean ) )* otherlv_17= '}' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:235:2: () otherlv_1= 'interchange' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? ( (lv_createReport_5_0= 'create report' ) )? (otherlv_6= 'averageElementSize' ( (lv_elementSize_7_0= RULE_INT ) ) )? (otherlv_8= 'progressBarStyle' ( (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum ) ) )? ( ( (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' ) ) ( (lv_refresh_11_0= RULE_STRING ) ) )? otherlv_12= 'file' ( (lv_fileEndpoint_13_0= ruleDataInterchangeFile ) ) otherlv_14= 'beans' otherlv_15= '{' ( (lv_path_16_0= ruleDataInterchangeBean ) )* otherlv_17= '}'
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:235:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:236:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeAccess().getDataInterchangeAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,17,FOLLOW_17_in_ruleDataInterchange439); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeAccess().getInterchangeKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:245:1: ( (lv_name_2_0= ruleTRANSLATABLEID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:246:1: (lv_name_2_0= ruleTRANSLATABLEID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:246:1: (lv_name_2_0= ruleTRANSLATABLEID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:247:3: lv_name_2_0= ruleTRANSLATABLEID
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLEID_in_ruleDataInterchange460);
+            lv_name_2_0=ruleTRANSLATABLEID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"name",
+                      		lv_name_2_0, 
+                      		"TRANSLATABLEID");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:263:2: ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==18) ) {
+                alt5=1;
+            }
+            switch (alt5) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:263:3: ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:263:3: ( (lv_description_3_0= 'described by' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:264:1: (lv_description_3_0= 'described by' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:264:1: (lv_description_3_0= 'described by' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:265:3: lv_description_3_0= 'described by'
+                    {
+                    lv_description_3_0=(Token)match(input,18,FOLLOW_18_in_ruleDataInterchange479); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_description_3_0, grammarAccess.getDataInterchangeAccess().getDescriptionDescribedByKeyword_3_0_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeRule());
+                      	        }
+                             		setWithLastConsumed(current, "description", true, "described by");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:278:2: ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:279:1: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:279:1: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:280:3: lv_descriptionValue_4_0= ruleTRANSLATABLESTRING
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_ruleDataInterchange513);
+                    lv_descriptionValue_4_0=ruleTRANSLATABLESTRING();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"descriptionValue",
+                              		lv_descriptionValue_4_0, 
+                              		"TRANSLATABLESTRING");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:296:4: ( (lv_createReport_5_0= 'create report' ) )?
+            int alt6=2;
+            int LA6_0 = input.LA(1);
+
+            if ( (LA6_0==19) ) {
+                alt6=1;
+            }
+            switch (alt6) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:297:1: (lv_createReport_5_0= 'create report' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:297:1: (lv_createReport_5_0= 'create report' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:298:3: lv_createReport_5_0= 'create report'
+                    {
+                    lv_createReport_5_0=(Token)match(input,19,FOLLOW_19_in_ruleDataInterchange533); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_createReport_5_0, grammarAccess.getDataInterchangeAccess().getCreateReportCreateReportKeyword_4_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeRule());
+                      	        }
+                             		setWithLastConsumed(current, "createReport", true, "create report");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:311:3: (otherlv_6= 'averageElementSize' ( (lv_elementSize_7_0= RULE_INT ) ) )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==20) ) {
+                alt7=1;
+            }
+            switch (alt7) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:311:5: otherlv_6= 'averageElementSize' ( (lv_elementSize_7_0= RULE_INT ) )
+                    {
+                    otherlv_6=(Token)match(input,20,FOLLOW_20_in_ruleDataInterchange560); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_6, grammarAccess.getDataInterchangeAccess().getAverageElementSizeKeyword_5_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:315:1: ( (lv_elementSize_7_0= RULE_INT ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:316:1: (lv_elementSize_7_0= RULE_INT )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:316:1: (lv_elementSize_7_0= RULE_INT )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:317:3: lv_elementSize_7_0= RULE_INT
+                    {
+                    lv_elementSize_7_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDataInterchange577); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_elementSize_7_0, grammarAccess.getDataInterchangeAccess().getElementSizeINTTerminalRuleCall_5_1_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"elementSize",
+                              		lv_elementSize_7_0, 
+                              		"INT");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:333:4: (otherlv_8= 'progressBarStyle' ( (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum ) ) )?
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==21) ) {
+                alt8=1;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:333:6: otherlv_8= 'progressBarStyle' ( (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum ) )
+                    {
+                    otherlv_8=(Token)match(input,21,FOLLOW_21_in_ruleDataInterchange597); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_8, grammarAccess.getDataInterchangeAccess().getProgressBarStyleKeyword_6_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:337:1: ( (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:338:1: (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:338:1: (lv_progressBarStyle_9_0= ruleProgressBarStylesEnum )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:339:3: lv_progressBarStyle_9_0= ruleProgressBarStylesEnum
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getProgressBarStyleProgressBarStylesEnumEnumRuleCall_6_1_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleProgressBarStylesEnum_in_ruleDataInterchange618);
+                    lv_progressBarStyle_9_0=ruleProgressBarStylesEnum();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"progressBarStyle",
+                              		lv_progressBarStyle_9_0, 
+                              		"ProgressBarStylesEnum");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:355:4: ( ( (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' ) ) ( (lv_refresh_11_0= RULE_STRING ) ) )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0==22) ) {
+                alt9=1;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:355:5: ( (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' ) ) ( (lv_refresh_11_0= RULE_STRING ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:355:5: ( (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:356:1: (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:356:1: (lv_refreshEnabled_10_0= 'refreshViewWhenFinished' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:357:3: lv_refreshEnabled_10_0= 'refreshViewWhenFinished'
+                    {
+                    lv_refreshEnabled_10_0=(Token)match(input,22,FOLLOW_22_in_ruleDataInterchange639); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_refreshEnabled_10_0, grammarAccess.getDataInterchangeAccess().getRefreshEnabledRefreshViewWhenFinishedKeyword_7_0_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeRule());
+                      	        }
+                             		setWithLastConsumed(current, "refreshEnabled", true, "refreshViewWhenFinished");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:370:2: ( (lv_refresh_11_0= RULE_STRING ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:371:1: (lv_refresh_11_0= RULE_STRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:371:1: (lv_refresh_11_0= RULE_STRING )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:372:3: lv_refresh_11_0= RULE_STRING
+                    {
+                    lv_refresh_11_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchange669); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_refresh_11_0, grammarAccess.getDataInterchangeAccess().getRefreshSTRINGTerminalRuleCall_7_1_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"refresh",
+                              		lv_refresh_11_0, 
+                              		"STRING");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_12=(Token)match(input,23,FOLLOW_23_in_ruleDataInterchange688); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_12, grammarAccess.getDataInterchangeAccess().getFileKeyword_8());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:392:1: ( (lv_fileEndpoint_13_0= ruleDataInterchangeFile ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:393:1: (lv_fileEndpoint_13_0= ruleDataInterchangeFile )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:393:1: (lv_fileEndpoint_13_0= ruleDataInterchangeFile )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:394:3: lv_fileEndpoint_13_0= ruleDataInterchangeFile
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getFileEndpointDataInterchangeFileParserRuleCall_9_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFile_in_ruleDataInterchange709);
+            lv_fileEndpoint_13_0=ruleDataInterchangeFile();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"fileEndpoint",
+                      		lv_fileEndpoint_13_0, 
+                      		"DataInterchangeFile");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_14=(Token)match(input,24,FOLLOW_24_in_ruleDataInterchange721); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_14, grammarAccess.getDataInterchangeAccess().getBeansKeyword_10());
+                  
+            }
+            otherlv_15=(Token)match(input,15,FOLLOW_15_in_ruleDataInterchange733); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_15, grammarAccess.getDataInterchangeAccess().getLeftCurlyBracketKeyword_11());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:418:1: ( (lv_path_16_0= ruleDataInterchangeBean ) )*
+            loop10:
+            do {
+                int alt10=2;
+                int LA10_0 = input.LA(1);
+
+                if ( (LA10_0==37) ) {
+                    alt10=1;
+                }
+
+
+                switch (alt10) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:419:1: (lv_path_16_0= ruleDataInterchangeBean )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:419:1: (lv_path_16_0= ruleDataInterchangeBean )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:420:3: lv_path_16_0= ruleDataInterchangeBean
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getDataInterchangeAccess().getPathDataInterchangeBeanParserRuleCall_12_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleDataInterchangeBean_in_ruleDataInterchange754);
+            	    lv_path_16_0=ruleDataInterchangeBean();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getDataInterchangeRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"path",
+            	              		lv_path_16_0, 
+            	              		"DataInterchangeBean");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop10;
+                }
+            } while (true);
+
+            otherlv_17=(Token)match(input,16,FOLLOW_16_in_ruleDataInterchange767); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_17, grammarAccess.getDataInterchangeAccess().getRightCurlyBracketKeyword_13());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchange"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFile"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:448:1: entryRuleDataInterchangeFile returns [EObject current=null] : iv_ruleDataInterchangeFile= ruleDataInterchangeFile EOF ;
+    public final EObject entryRuleDataInterchangeFile() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeFile = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:449:2: (iv_ruleDataInterchangeFile= ruleDataInterchangeFile EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:450:2: iv_ruleDataInterchangeFile= ruleDataInterchangeFile EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeFileRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFile_in_entryRuleDataInterchangeFile803);
+            iv_ruleDataInterchangeFile=ruleDataInterchangeFile();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeFile; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFile813); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFile"
+
+
+    // $ANTLR start "ruleDataInterchangeFile"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:457:1: ruleDataInterchangeFile returns [EObject current=null] : (this_DataInterchangeFileXML_0= ruleDataInterchangeFileXML | this_DataInterchangeFileCSV_1= ruleDataInterchangeFileCSV | this_DataInterchangeFileEDI_2= ruleDataInterchangeFileEDI ) ;
+    public final EObject ruleDataInterchangeFile() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_DataInterchangeFileXML_0 = null;
+
+        EObject this_DataInterchangeFileCSV_1 = null;
+
+        EObject this_DataInterchangeFileEDI_2 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:460:28: ( (this_DataInterchangeFileXML_0= ruleDataInterchangeFileXML | this_DataInterchangeFileCSV_1= ruleDataInterchangeFileCSV | this_DataInterchangeFileEDI_2= ruleDataInterchangeFileEDI ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:461:1: (this_DataInterchangeFileXML_0= ruleDataInterchangeFileXML | this_DataInterchangeFileCSV_1= ruleDataInterchangeFileCSV | this_DataInterchangeFileEDI_2= ruleDataInterchangeFileEDI )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:461:1: (this_DataInterchangeFileXML_0= ruleDataInterchangeFileXML | this_DataInterchangeFileCSV_1= ruleDataInterchangeFileCSV | this_DataInterchangeFileEDI_2= ruleDataInterchangeFileEDI )
+            int alt11=3;
+            switch ( input.LA(1) ) {
+            case 25:
+                {
+                alt11=1;
+                }
+                break;
+            case 26:
+                {
+                alt11=2;
+                }
+                break;
+            case 34:
+                {
+                alt11=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt11) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:462:5: this_DataInterchangeFileXML_0= ruleDataInterchangeFileXML
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileXMLParserRuleCall_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangeFileXML_in_ruleDataInterchangeFile860);
+                    this_DataInterchangeFileXML_0=ruleDataInterchangeFileXML();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_DataInterchangeFileXML_0; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:472:5: this_DataInterchangeFileCSV_1= ruleDataInterchangeFileCSV
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileCSVParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangeFileCSV_in_ruleDataInterchangeFile887);
+                    this_DataInterchangeFileCSV_1=ruleDataInterchangeFileCSV();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_DataInterchangeFileCSV_1; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:482:5: this_DataInterchangeFileEDI_2= ruleDataInterchangeFileEDI
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getDataInterchangeFileAccess().getDataInterchangeFileEDIParserRuleCall_2()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangeFileEDI_in_ruleDataInterchangeFile914);
+                    this_DataInterchangeFileEDI_2=ruleDataInterchangeFileEDI();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_DataInterchangeFileEDI_2; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeFile"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFileXML"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:498:1: entryRuleDataInterchangeFileXML returns [EObject current=null] : iv_ruleDataInterchangeFileXML= ruleDataInterchangeFileXML EOF ;
+    public final EObject entryRuleDataInterchangeFileXML() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeFileXML = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:499:2: (iv_ruleDataInterchangeFileXML= ruleDataInterchangeFileXML EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:500:2: iv_ruleDataInterchangeFileXML= ruleDataInterchangeFileXML EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeFileXMLRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFileXML_in_entryRuleDataInterchangeFileXML949);
+            iv_ruleDataInterchangeFileXML=ruleDataInterchangeFileXML();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeFileXML; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFileXML959); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFileXML"
+
+
+    // $ANTLR start "ruleDataInterchangeFileXML"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:507:1: ruleDataInterchangeFileXML returns [EObject current=null] : ( () otherlv_1= 'XML' ( (lv_fileURL_2_0= RULE_STRING ) ) ) ;
+    public final EObject ruleDataInterchangeFileXML() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_fileURL_2_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:510:28: ( ( () otherlv_1= 'XML' ( (lv_fileURL_2_0= RULE_STRING ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:511:1: ( () otherlv_1= 'XML' ( (lv_fileURL_2_0= RULE_STRING ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:511:1: ( () otherlv_1= 'XML' ( (lv_fileURL_2_0= RULE_STRING ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:511:2: () otherlv_1= 'XML' ( (lv_fileURL_2_0= RULE_STRING ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:511:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:512:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeFileXMLAccess().getDataInterchangeFileXMLAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,25,FOLLOW_25_in_ruleDataInterchangeFileXML1005); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeFileXMLAccess().getXMLKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:521:1: ( (lv_fileURL_2_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:522:1: (lv_fileURL_2_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:522:1: (lv_fileURL_2_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:523:3: lv_fileURL_2_0= RULE_STRING
+            {
+            lv_fileURL_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeFileXML1022); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_fileURL_2_0, grammarAccess.getDataInterchangeFileXMLAccess().getFileURLSTRINGTerminalRuleCall_2_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeFileXMLRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"fileURL",
+                      		lv_fileURL_2_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeFileXML"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFileCSV"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:547:1: entryRuleDataInterchangeFileCSV returns [EObject current=null] : iv_ruleDataInterchangeFileCSV= ruleDataInterchangeFileCSV EOF ;
+    public final EObject entryRuleDataInterchangeFileCSV() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeFileCSV = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:548:2: (iv_ruleDataInterchangeFileCSV= ruleDataInterchangeFileCSV EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:549:2: iv_ruleDataInterchangeFileCSV= ruleDataInterchangeFileCSV EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeFileCSVRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFileCSV_in_entryRuleDataInterchangeFileCSV1063);
+            iv_ruleDataInterchangeFileCSV=ruleDataInterchangeFileCSV();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeFileCSV; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFileCSV1073); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFileCSV"
+
+
+    // $ANTLR start "ruleDataInterchangeFileCSV"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:556:1: ruleDataInterchangeFileCSV returns [EObject current=null] : ( () otherlv_1= 'CSV' ( (lv_fileURL_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) ) ;
+    public final EObject ruleDataInterchangeFileCSV() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_fileURL_2_0=null;
+        Token otherlv_4=null;
+        Token lv_delimiter_5_0=null;
+        Token otherlv_6=null;
+        Token lv_quoteCharacter_7_0=null;
+        Token otherlv_8=null;
+        Token lv_skipLines_9_0=null;
+        Token lv_indent_10_0=null;
+        Token lv_strict_11_0=null;
+        Token lv_validateHeader_12_0=null;
+        Token otherlv_13=null;
+        Token lv_encoding_14_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:559:28: ( ( () otherlv_1= 'CSV' ( (lv_fileURL_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:560:1: ( () otherlv_1= 'CSV' ( (lv_fileURL_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:560:1: ( () otherlv_1= 'CSV' ( (lv_fileURL_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:560:2: () otherlv_1= 'CSV' ( (lv_fileURL_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:560:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:561:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeFileCSVAccess().getDataInterchangeFileCSVAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,26,FOLLOW_26_in_ruleDataInterchangeFileCSV1119); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeFileCSVAccess().getCSVKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:570:1: ( (lv_fileURL_2_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:571:1: (lv_fileURL_2_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:571:1: (lv_fileURL_2_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:572:3: lv_fileURL_2_0= RULE_STRING
+            {
+            lv_fileURL_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeFileCSV1136); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_fileURL_2_0, grammarAccess.getDataInterchangeFileCSVAccess().getFileURLSTRINGTerminalRuleCall_2_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"fileURL",
+                      		lv_fileURL_2_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:588:2: ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:590:1: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:590:1: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:591:2: ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* )
+            {
+            getUnorderedGroupHelper().enter(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:594:2: ( ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:595:3: ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )*
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:595:3: ( ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) ) )*
+            loop12:
+            do {
+                int alt12=8;
+                int LA12_0 = input.LA(1);
+
+                if ( LA12_0 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 0) ) {
+                    alt12=1;
+                }
+                else if ( LA12_0 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 1) ) {
+                    alt12=2;
+                }
+                else if ( LA12_0 ==29 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 2) ) {
+                    alt12=3;
+                }
+                else if ( LA12_0 ==30 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 3) ) {
+                    alt12=4;
+                }
+                else if ( LA12_0 ==31 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 4) ) {
+                    alt12=5;
+                }
+                else if ( LA12_0 ==32 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 5) ) {
+                    alt12=6;
+                }
+                else if ( LA12_0 ==33 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 6) ) {
+                    alt12=7;
+                }
+
+
+                switch (alt12) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:597:4: ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:597:4: ({...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:598:5: {...}? => ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 0) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 0)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:598:119: ( ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:599:6: ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 0);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:602:6: ({...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:602:7: {...}? => (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:602:16: (otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:602:18: otherlv_4= 'delimiter' ( (lv_delimiter_5_0= RULE_STRING ) )
+            	    {
+            	    otherlv_4=(Token)match(input,27,FOLLOW_27_in_ruleDataInterchangeFileCSV1199); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_4, grammarAccess.getDataInterchangeFileCSVAccess().getDelimiterKeyword_3_0_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:606:1: ( (lv_delimiter_5_0= RULE_STRING ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:607:1: (lv_delimiter_5_0= RULE_STRING )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:607:1: (lv_delimiter_5_0= RULE_STRING )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:608:3: lv_delimiter_5_0= RULE_STRING
+            	    {
+            	    lv_delimiter_5_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeFileCSV1216); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      			newLeafNode(lv_delimiter_5_0, grammarAccess.getDataInterchangeFileCSVAccess().getDelimiterSTRINGTerminalRuleCall_3_0_1_0()); 
+            	      		
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+            	      	        }
+            	             		setWithLastConsumed(
+            	             			current, 
+            	             			"delimiter",
+            	              		lv_delimiter_5_0, 
+            	              		"STRING");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:631:4: ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:631:4: ({...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:632:5: {...}? => ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 1) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 1)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:632:119: ( ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:633:6: ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 1);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:636:6: ({...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:636:7: {...}? => (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:636:16: (otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:636:18: otherlv_6= 'quoteCharacter' ( (lv_quoteCharacter_7_0= RULE_STRING ) )
+            	    {
+            	    otherlv_6=(Token)match(input,28,FOLLOW_28_in_ruleDataInterchangeFileCSV1289); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_6, grammarAccess.getDataInterchangeFileCSVAccess().getQuoteCharacterKeyword_3_1_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:640:1: ( (lv_quoteCharacter_7_0= RULE_STRING ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:641:1: (lv_quoteCharacter_7_0= RULE_STRING )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:641:1: (lv_quoteCharacter_7_0= RULE_STRING )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:642:3: lv_quoteCharacter_7_0= RULE_STRING
+            	    {
+            	    lv_quoteCharacter_7_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeFileCSV1306); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      			newLeafNode(lv_quoteCharacter_7_0, grammarAccess.getDataInterchangeFileCSVAccess().getQuoteCharacterSTRINGTerminalRuleCall_3_1_1_0()); 
+            	      		
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+            	      	        }
+            	             		setWithLastConsumed(
+            	             			current, 
+            	             			"quoteCharacter",
+            	              		lv_quoteCharacter_7_0, 
+            	              		"STRING");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 3 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:665:4: ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:665:4: ({...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:666:5: {...}? => ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 2) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 2)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:666:119: ( ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:667:6: ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 2);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:670:6: ({...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:670:7: {...}? => (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:670:16: (otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:670:18: otherlv_8= 'skipLines' ( (lv_skipLines_9_0= RULE_INT ) )
+            	    {
+            	    otherlv_8=(Token)match(input,29,FOLLOW_29_in_ruleDataInterchangeFileCSV1379); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_8, grammarAccess.getDataInterchangeFileCSVAccess().getSkipLinesKeyword_3_2_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:674:1: ( (lv_skipLines_9_0= RULE_INT ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:675:1: (lv_skipLines_9_0= RULE_INT )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:675:1: (lv_skipLines_9_0= RULE_INT )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:676:3: lv_skipLines_9_0= RULE_INT
+            	    {
+            	    lv_skipLines_9_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDataInterchangeFileCSV1396); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      			newLeafNode(lv_skipLines_9_0, grammarAccess.getDataInterchangeFileCSVAccess().getSkipLinesINTTerminalRuleCall_3_2_1_0()); 
+            	      		
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+            	      	        }
+            	             		setWithLastConsumed(
+            	             			current, 
+            	             			"skipLines",
+            	              		lv_skipLines_9_0, 
+            	              		"INT");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 4 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:699:4: ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:699:4: ({...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:700:5: {...}? => ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 3) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 3)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:700:119: ( ({...}? => ( (lv_indent_10_0= 'indent' ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:701:6: ({...}? => ( (lv_indent_10_0= 'indent' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 3);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:704:6: ({...}? => ( (lv_indent_10_0= 'indent' ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:704:7: {...}? => ( (lv_indent_10_0= 'indent' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:704:16: ( (lv_indent_10_0= 'indent' ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:705:1: (lv_indent_10_0= 'indent' )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:705:1: (lv_indent_10_0= 'indent' )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:706:3: lv_indent_10_0= 'indent'
+            	    {
+            	    lv_indent_10_0=(Token)match(input,30,FOLLOW_30_in_ruleDataInterchangeFileCSV1474); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	              newLeafNode(lv_indent_10_0, grammarAccess.getDataInterchangeFileCSVAccess().getIndentIndentKeyword_3_3_0());
+            	          
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+            	      	        }
+            	             		setWithLastConsumed(current, "indent", true, "indent");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 5 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:726:4: ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:726:4: ({...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:727:5: {...}? => ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 4) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 4)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:727:119: ( ({...}? => ( (lv_strict_11_0= 'strict' ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:728:6: ({...}? => ( (lv_strict_11_0= 'strict' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 4);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:731:6: ({...}? => ( (lv_strict_11_0= 'strict' ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:731:7: {...}? => ( (lv_strict_11_0= 'strict' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:731:16: ( (lv_strict_11_0= 'strict' ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:732:1: (lv_strict_11_0= 'strict' )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:732:1: (lv_strict_11_0= 'strict' )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:733:3: lv_strict_11_0= 'strict'
+            	    {
+            	    lv_strict_11_0=(Token)match(input,31,FOLLOW_31_in_ruleDataInterchangeFileCSV1559); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	              newLeafNode(lv_strict_11_0, grammarAccess.getDataInterchangeFileCSVAccess().getStrictStrictKeyword_3_4_0());
+            	          
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+            	      	        }
+            	             		setWithLastConsumed(current, "strict", true, "strict");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 6 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:753:4: ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:753:4: ({...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:754:5: {...}? => ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 5) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 5)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:754:119: ( ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:755:6: ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 5);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:758:6: ({...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:758:7: {...}? => ( (lv_validateHeader_12_0= 'validateHeader' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:758:16: ( (lv_validateHeader_12_0= 'validateHeader' ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:759:1: (lv_validateHeader_12_0= 'validateHeader' )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:759:1: (lv_validateHeader_12_0= 'validateHeader' )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:760:3: lv_validateHeader_12_0= 'validateHeader'
+            	    {
+            	    lv_validateHeader_12_0=(Token)match(input,32,FOLLOW_32_in_ruleDataInterchangeFileCSV1644); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	              newLeafNode(lv_validateHeader_12_0, grammarAccess.getDataInterchangeFileCSVAccess().getValidateHeaderValidateHeaderKeyword_3_5_0());
+            	          
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+            	      	        }
+            	             		setWithLastConsumed(current, "validateHeader", true, "validateHeader");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 7 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:780:4: ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:780:4: ({...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:781:5: {...}? => ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 6) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 6)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:781:119: ( ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:782:6: ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3(), 6);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:785:6: ({...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:785:7: {...}? => (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeFileCSV", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:785:16: (otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:785:18: otherlv_13= 'encoding' ( (lv_encoding_14_0= RULE_STRING ) )
+            	    {
+            	    otherlv_13=(Token)match(input,33,FOLLOW_33_in_ruleDataInterchangeFileCSV1724); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_13, grammarAccess.getDataInterchangeFileCSVAccess().getEncodingKeyword_3_6_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:789:1: ( (lv_encoding_14_0= RULE_STRING ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:790:1: (lv_encoding_14_0= RULE_STRING )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:790:1: (lv_encoding_14_0= RULE_STRING )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:791:3: lv_encoding_14_0= RULE_STRING
+            	    {
+            	    lv_encoding_14_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeFileCSV1741); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      			newLeafNode(lv_encoding_14_0, grammarAccess.getDataInterchangeFileCSVAccess().getEncodingSTRINGTerminalRuleCall_3_6_1_0()); 
+            	      		
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getDataInterchangeFileCSVRule());
+            	      	        }
+            	             		setWithLastConsumed(
+            	             			current, 
+            	             			"encoding",
+            	              		lv_encoding_14_0, 
+            	              		"STRING");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop12;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            getUnorderedGroupHelper().leave(grammarAccess.getDataInterchangeFileCSVAccess().getUnorderedGroup_3());
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeFileCSV"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFileEDI"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:829:1: entryRuleDataInterchangeFileEDI returns [EObject current=null] : iv_ruleDataInterchangeFileEDI= ruleDataInterchangeFileEDI EOF ;
+    public final EObject entryRuleDataInterchangeFileEDI() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeFileEDI = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:830:2: (iv_ruleDataInterchangeFileEDI= ruleDataInterchangeFileEDI EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:831:2: iv_ruleDataInterchangeFileEDI= ruleDataInterchangeFileEDI EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeFileEDIRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFileEDI_in_entryRuleDataInterchangeFileEDI1823);
+            iv_ruleDataInterchangeFileEDI=ruleDataInterchangeFileEDI();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeFileEDI; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFileEDI1833); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFileEDI"
+
+
+    // $ANTLR start "ruleDataInterchangeFileEDI"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:838:1: ruleDataInterchangeFileEDI returns [EObject current=null] : ( () otherlv_1= 'EDI' ( (lv_fileURL_2_0= RULE_STRING ) ) otherlv_3= 'mappingModel' ( (lv_mappingModel_4_0= RULE_STRING ) ) ( (lv_validate_5_0= 'validate' ) )? ) ;
+    public final EObject ruleDataInterchangeFileEDI() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_fileURL_2_0=null;
+        Token otherlv_3=null;
+        Token lv_mappingModel_4_0=null;
+        Token lv_validate_5_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:841:28: ( ( () otherlv_1= 'EDI' ( (lv_fileURL_2_0= RULE_STRING ) ) otherlv_3= 'mappingModel' ( (lv_mappingModel_4_0= RULE_STRING ) ) ( (lv_validate_5_0= 'validate' ) )? ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:842:1: ( () otherlv_1= 'EDI' ( (lv_fileURL_2_0= RULE_STRING ) ) otherlv_3= 'mappingModel' ( (lv_mappingModel_4_0= RULE_STRING ) ) ( (lv_validate_5_0= 'validate' ) )? )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:842:1: ( () otherlv_1= 'EDI' ( (lv_fileURL_2_0= RULE_STRING ) ) otherlv_3= 'mappingModel' ( (lv_mappingModel_4_0= RULE_STRING ) ) ( (lv_validate_5_0= 'validate' ) )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:842:2: () otherlv_1= 'EDI' ( (lv_fileURL_2_0= RULE_STRING ) ) otherlv_3= 'mappingModel' ( (lv_mappingModel_4_0= RULE_STRING ) ) ( (lv_validate_5_0= 'validate' ) )?
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:842:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:843:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeFileEDIAccess().getDataInterchangeFileEDIAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,34,FOLLOW_34_in_ruleDataInterchangeFileEDI1879); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeFileEDIAccess().getEDIKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:852:1: ( (lv_fileURL_2_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:853:1: (lv_fileURL_2_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:853:1: (lv_fileURL_2_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:854:3: lv_fileURL_2_0= RULE_STRING
+            {
+            lv_fileURL_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeFileEDI1896); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_fileURL_2_0, grammarAccess.getDataInterchangeFileEDIAccess().getFileURLSTRINGTerminalRuleCall_2_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeFileEDIRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"fileURL",
+                      		lv_fileURL_2_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,35,FOLLOW_35_in_ruleDataInterchangeFileEDI1913); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeFileEDIAccess().getMappingModelKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:874:1: ( (lv_mappingModel_4_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:875:1: (lv_mappingModel_4_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:875:1: (lv_mappingModel_4_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:876:3: lv_mappingModel_4_0= RULE_STRING
+            {
+            lv_mappingModel_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeFileEDI1930); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_mappingModel_4_0, grammarAccess.getDataInterchangeFileEDIAccess().getMappingModelSTRINGTerminalRuleCall_4_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeFileEDIRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"mappingModel",
+                      		lv_mappingModel_4_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:892:2: ( (lv_validate_5_0= 'validate' ) )?
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0==36) ) {
+                alt13=1;
+            }
+            switch (alt13) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:893:1: (lv_validate_5_0= 'validate' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:893:1: (lv_validate_5_0= 'validate' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:894:3: lv_validate_5_0= 'validate'
+                    {
+                    lv_validate_5_0=(Token)match(input,36,FOLLOW_36_in_ruleDataInterchangeFileEDI1953); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_validate_5_0, grammarAccess.getDataInterchangeFileEDIAccess().getValidateValidateKeyword_5_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeFileEDIRule());
+                      	        }
+                             		setWithLastConsumed(current, "validate", true, "validate");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeFileEDI"
+
+
+    // $ANTLR start "entryRuleDataInterchangeBean"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:915:1: entryRuleDataInterchangeBean returns [EObject current=null] : iv_ruleDataInterchangeBean= ruleDataInterchangeBean EOF ;
+    public final EObject entryRuleDataInterchangeBean() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeBean = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:916:2: (iv_ruleDataInterchangeBean= ruleDataInterchangeBean EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:917:2: iv_ruleDataInterchangeBean= ruleDataInterchangeBean EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeBeanRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeBean_in_entryRuleDataInterchangeBean2003);
+            iv_ruleDataInterchangeBean=ruleDataInterchangeBean();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeBean; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeBean2013); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeBean"
+
+
+    // $ANTLR start "ruleDataInterchangeBean"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:924:1: ruleDataInterchangeBean returns [EObject current=null] : ( () otherlv_1= 'entity' ( ( ruleLFQN ) ) (otherlv_3= 'createOn' ( (lv_elementMap_4_0= RULE_STRING ) ) )? ( ( (lv_markLatest_5_0= 'marker' ) ) ( (otherlv_6= RULE_ID ) ) )? ( ( (lv_recordElement_7_0= 'recordElement' ) ) | ( (lv_recordList_8_0= 'recordList' ) ) )? (otherlv_9= 'expression' otherlv_10= '{' ( (lv_expression_11_0= ruleDataInterchangeExpression ) )* otherlv_12= '}' )? (otherlv_13= 'lookup' otherlv_14= '{' ( (lv_lookup_15_0= ruleDataInterchangeLookup ) )* otherlv_16= '}' )? (otherlv_17= 'format' otherlv_18= '{' ( (lv_format_19_0= ruleDataInterchangeFormat ) )* otherlv_20= '}' )? (otherlv_21= 'mapping' otherlv_22= '{' ( (lv_mappings_23_0= ruleDataInterchangeMapping ) )* otherlv_24= '}' )? ) ;
+    public final EObject ruleDataInterchangeBean() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token lv_elementMap_4_0=null;
+        Token lv_markLatest_5_0=null;
+        Token otherlv_6=null;
+        Token lv_recordElement_7_0=null;
+        Token lv_recordList_8_0=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token otherlv_14=null;
+        Token otherlv_16=null;
+        Token otherlv_17=null;
+        Token otherlv_18=null;
+        Token otherlv_20=null;
+        Token otherlv_21=null;
+        Token otherlv_22=null;
+        Token otherlv_24=null;
+        EObject lv_expression_11_0 = null;
+
+        EObject lv_lookup_15_0 = null;
+
+        EObject lv_format_19_0 = null;
+
+        EObject lv_mappings_23_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:927:28: ( ( () otherlv_1= 'entity' ( ( ruleLFQN ) ) (otherlv_3= 'createOn' ( (lv_elementMap_4_0= RULE_STRING ) ) )? ( ( (lv_markLatest_5_0= 'marker' ) ) ( (otherlv_6= RULE_ID ) ) )? ( ( (lv_recordElement_7_0= 'recordElement' ) ) | ( (lv_recordList_8_0= 'recordList' ) ) )? (otherlv_9= 'expression' otherlv_10= '{' ( (lv_expression_11_0= ruleDataInterchangeExpression ) )* otherlv_12= '}' )? (otherlv_13= 'lookup' otherlv_14= '{' ( (lv_lookup_15_0= ruleDataInterchangeLookup ) )* otherlv_16= '}' )? (otherlv_17= 'format' otherlv_18= '{' ( (lv_format_19_0= ruleDataInterchangeFormat ) )* otherlv_20= '}' )? (otherlv_21= 'mapping' otherlv_22= '{' ( (lv_mappings_23_0= ruleDataInterchangeMapping ) )* otherlv_24= '}' )? ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:928:1: ( () otherlv_1= 'entity' ( ( ruleLFQN ) ) (otherlv_3= 'createOn' ( (lv_elementMap_4_0= RULE_STRING ) ) )? ( ( (lv_markLatest_5_0= 'marker' ) ) ( (otherlv_6= RULE_ID ) ) )? ( ( (lv_recordElement_7_0= 'recordElement' ) ) | ( (lv_recordList_8_0= 'recordList' ) ) )? (otherlv_9= 'expression' otherlv_10= '{' ( (lv_expression_11_0= ruleDataInterchangeExpression ) )* otherlv_12= '}' )? (otherlv_13= 'lookup' otherlv_14= '{' ( (lv_lookup_15_0= ruleDataInterchangeLookup ) )* otherlv_16= '}' )? (otherlv_17= 'format' otherlv_18= '{' ( (lv_format_19_0= ruleDataInterchangeFormat ) )* otherlv_20= '}' )? (otherlv_21= 'mapping' otherlv_22= '{' ( (lv_mappings_23_0= ruleDataInterchangeMapping ) )* otherlv_24= '}' )? )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:928:1: ( () otherlv_1= 'entity' ( ( ruleLFQN ) ) (otherlv_3= 'createOn' ( (lv_elementMap_4_0= RULE_STRING ) ) )? ( ( (lv_markLatest_5_0= 'marker' ) ) ( (otherlv_6= RULE_ID ) ) )? ( ( (lv_recordElement_7_0= 'recordElement' ) ) | ( (lv_recordList_8_0= 'recordList' ) ) )? (otherlv_9= 'expression' otherlv_10= '{' ( (lv_expression_11_0= ruleDataInterchangeExpression ) )* otherlv_12= '}' )? (otherlv_13= 'lookup' otherlv_14= '{' ( (lv_lookup_15_0= ruleDataInterchangeLookup ) )* otherlv_16= '}' )? (otherlv_17= 'format' otherlv_18= '{' ( (lv_format_19_0= ruleDataInterchangeFormat ) )* otherlv_20= '}' )? (otherlv_21= 'mapping' otherlv_22= '{' ( (lv_mappings_23_0= ruleDataInterchangeMapping ) )* otherlv_24= '}' )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:928:2: () otherlv_1= 'entity' ( ( ruleLFQN ) ) (otherlv_3= 'createOn' ( (lv_elementMap_4_0= RULE_STRING ) ) )? ( ( (lv_markLatest_5_0= 'marker' ) ) ( (otherlv_6= RULE_ID ) ) )? ( ( (lv_recordElement_7_0= 'recordElement' ) ) | ( (lv_recordList_8_0= 'recordList' ) ) )? (otherlv_9= 'expression' otherlv_10= '{' ( (lv_expression_11_0= ruleDataInterchangeExpression ) )* otherlv_12= '}' )? (otherlv_13= 'lookup' otherlv_14= '{' ( (lv_lookup_15_0= ruleDataInterchangeLookup ) )* otherlv_16= '}' )? (otherlv_17= 'format' otherlv_18= '{' ( (lv_format_19_0= ruleDataInterchangeFormat ) )* otherlv_20= '}' )? (otherlv_21= 'mapping' otherlv_22= '{' ( (lv_mappings_23_0= ruleDataInterchangeMapping ) )* otherlv_24= '}' )?
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:928:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:929:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeBeanAccess().getDataInterchangeBeanAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,37,FOLLOW_37_in_ruleDataInterchangeBean2059); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeBeanAccess().getEntityKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:938:1: ( ( ruleLFQN ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:939:1: ( ruleLFQN )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:939:1: ( ruleLFQN )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:940:3: ruleLFQN
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+              	        }
+                      
+            }
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getEntityLEntityCrossReference_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleLFQN_in_ruleDataInterchangeBean2082);
+            ruleLFQN();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:953:2: (otherlv_3= 'createOn' ( (lv_elementMap_4_0= RULE_STRING ) ) )?
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+
+            if ( (LA14_0==38) ) {
+                alt14=1;
+            }
+            switch (alt14) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:953:4: otherlv_3= 'createOn' ( (lv_elementMap_4_0= RULE_STRING ) )
+                    {
+                    otherlv_3=(Token)match(input,38,FOLLOW_38_in_ruleDataInterchangeBean2095); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeBeanAccess().getCreateOnKeyword_3_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:957:1: ( (lv_elementMap_4_0= RULE_STRING ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:958:1: (lv_elementMap_4_0= RULE_STRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:958:1: (lv_elementMap_4_0= RULE_STRING )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:959:3: lv_elementMap_4_0= RULE_STRING
+                    {
+                    lv_elementMap_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeBean2112); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_elementMap_4_0, grammarAccess.getDataInterchangeBeanAccess().getElementMapSTRINGTerminalRuleCall_3_1_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"elementMap",
+                              		lv_elementMap_4_0, 
+                              		"STRING");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:975:4: ( ( (lv_markLatest_5_0= 'marker' ) ) ( (otherlv_6= RULE_ID ) ) )?
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==39) ) {
+                alt15=1;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:975:5: ( (lv_markLatest_5_0= 'marker' ) ) ( (otherlv_6= RULE_ID ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:975:5: ( (lv_markLatest_5_0= 'marker' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:976:1: (lv_markLatest_5_0= 'marker' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:976:1: (lv_markLatest_5_0= 'marker' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:977:3: lv_markLatest_5_0= 'marker'
+                    {
+                    lv_markLatest_5_0=(Token)match(input,39,FOLLOW_39_in_ruleDataInterchangeBean2138); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_markLatest_5_0, grammarAccess.getDataInterchangeBeanAccess().getMarkLatestMarkerKeyword_4_0_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+                      	        }
+                             		setWithLastConsumed(current, "markLatest", true, "marker");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:990:2: ( (otherlv_6= RULE_ID ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:991:1: (otherlv_6= RULE_ID )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:991:1: (otherlv_6= RULE_ID )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:992:3: otherlv_6= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+                      	        }
+                              
+                    }
+                    otherlv_6=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangeBean2171); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      		newLeafNode(otherlv_6, grammarAccess.getDataInterchangeBeanAccess().getLatestPropertyLEntityAttributeCrossReference_4_1_0()); 
+                      	
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1003:4: ( ( (lv_recordElement_7_0= 'recordElement' ) ) | ( (lv_recordList_8_0= 'recordList' ) ) )?
+            int alt16=3;
+            int LA16_0 = input.LA(1);
+
+            if ( (LA16_0==40) ) {
+                alt16=1;
+            }
+            else if ( (LA16_0==41) ) {
+                alt16=2;
+            }
+            switch (alt16) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1003:5: ( (lv_recordElement_7_0= 'recordElement' ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1003:5: ( (lv_recordElement_7_0= 'recordElement' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1004:1: (lv_recordElement_7_0= 'recordElement' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1004:1: (lv_recordElement_7_0= 'recordElement' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1005:3: lv_recordElement_7_0= 'recordElement'
+                    {
+                    lv_recordElement_7_0=(Token)match(input,40,FOLLOW_40_in_ruleDataInterchangeBean2192); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_recordElement_7_0, grammarAccess.getDataInterchangeBeanAccess().getRecordElementRecordElementKeyword_5_0_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+                      	        }
+                             		setWithLastConsumed(current, "recordElement", true, "recordElement");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1019:6: ( (lv_recordList_8_0= 'recordList' ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1019:6: ( (lv_recordList_8_0= 'recordList' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1020:1: (lv_recordList_8_0= 'recordList' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1020:1: (lv_recordList_8_0= 'recordList' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1021:3: lv_recordList_8_0= 'recordList'
+                    {
+                    lv_recordList_8_0=(Token)match(input,41,FOLLOW_41_in_ruleDataInterchangeBean2229); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_recordList_8_0, grammarAccess.getDataInterchangeBeanAccess().getRecordListRecordListKeyword_5_1_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeBeanRule());
+                      	        }
+                             		setWithLastConsumed(current, "recordList", true, "recordList");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1034:4: (otherlv_9= 'expression' otherlv_10= '{' ( (lv_expression_11_0= ruleDataInterchangeExpression ) )* otherlv_12= '}' )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0==42) ) {
+                alt18=1;
+            }
+            switch (alt18) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1034:6: otherlv_9= 'expression' otherlv_10= '{' ( (lv_expression_11_0= ruleDataInterchangeExpression ) )* otherlv_12= '}'
+                    {
+                    otherlv_9=(Token)match(input,42,FOLLOW_42_in_ruleDataInterchangeBean2257); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_9, grammarAccess.getDataInterchangeBeanAccess().getExpressionKeyword_6_0());
+                          
+                    }
+                    otherlv_10=(Token)match(input,15,FOLLOW_15_in_ruleDataInterchangeBean2269); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_10, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_6_1());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1042:1: ( (lv_expression_11_0= ruleDataInterchangeExpression ) )*
+                    loop17:
+                    do {
+                        int alt17=2;
+                        int LA17_0 = input.LA(1);
+
+                        if ( (LA17_0==58||LA17_0==61) ) {
+                            alt17=1;
+                        }
+
+
+                        switch (alt17) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1043:1: (lv_expression_11_0= ruleDataInterchangeExpression )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1043:1: (lv_expression_11_0= ruleDataInterchangeExpression )
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1044:3: lv_expression_11_0= ruleDataInterchangeExpression
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+                    	       
+                    	      	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getExpressionDataInterchangeExpressionParserRuleCall_6_2_0()); 
+                    	      	    
+                    	    }
+                    	    pushFollow(FOLLOW_ruleDataInterchangeExpression_in_ruleDataInterchangeBean2290);
+                    	    lv_expression_11_0=ruleDataInterchangeExpression();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      	        if (current==null) {
+                    	      	            current = createModelElementForParent(grammarAccess.getDataInterchangeBeanRule());
+                    	      	        }
+                    	             		add(
+                    	             			current, 
+                    	             			"expression",
+                    	              		lv_expression_11_0, 
+                    	              		"DataInterchangeExpression");
+                    	      	        afterParserOrEnumRuleCall();
+                    	      	    
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop17;
+                        }
+                    } while (true);
+
+                    otherlv_12=(Token)match(input,16,FOLLOW_16_in_ruleDataInterchangeBean2303); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_12, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_6_3());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1064:3: (otherlv_13= 'lookup' otherlv_14= '{' ( (lv_lookup_15_0= ruleDataInterchangeLookup ) )* otherlv_16= '}' )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==43) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1064:5: otherlv_13= 'lookup' otherlv_14= '{' ( (lv_lookup_15_0= ruleDataInterchangeLookup ) )* otherlv_16= '}'
+                    {
+                    otherlv_13=(Token)match(input,43,FOLLOW_43_in_ruleDataInterchangeBean2318); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_13, grammarAccess.getDataInterchangeBeanAccess().getLookupKeyword_7_0());
+                          
+                    }
+                    otherlv_14=(Token)match(input,15,FOLLOW_15_in_ruleDataInterchangeBean2330); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_14, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_7_1());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1072:1: ( (lv_lookup_15_0= ruleDataInterchangeLookup ) )*
+                    loop19:
+                    do {
+                        int alt19=2;
+                        int LA19_0 = input.LA(1);
+
+                        if ( (LA19_0==46) ) {
+                            alt19=1;
+                        }
+
+
+                        switch (alt19) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1073:1: (lv_lookup_15_0= ruleDataInterchangeLookup )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1073:1: (lv_lookup_15_0= ruleDataInterchangeLookup )
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1074:3: lv_lookup_15_0= ruleDataInterchangeLookup
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+                    	       
+                    	      	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getLookupDataInterchangeLookupParserRuleCall_7_2_0()); 
+                    	      	    
+                    	    }
+                    	    pushFollow(FOLLOW_ruleDataInterchangeLookup_in_ruleDataInterchangeBean2351);
+                    	    lv_lookup_15_0=ruleDataInterchangeLookup();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      	        if (current==null) {
+                    	      	            current = createModelElementForParent(grammarAccess.getDataInterchangeBeanRule());
+                    	      	        }
+                    	             		add(
+                    	             			current, 
+                    	             			"lookup",
+                    	              		lv_lookup_15_0, 
+                    	              		"DataInterchangeLookup");
+                    	      	        afterParserOrEnumRuleCall();
+                    	      	    
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop19;
+                        }
+                    } while (true);
+
+                    otherlv_16=(Token)match(input,16,FOLLOW_16_in_ruleDataInterchangeBean2364); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_16, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_7_3());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1094:3: (otherlv_17= 'format' otherlv_18= '{' ( (lv_format_19_0= ruleDataInterchangeFormat ) )* otherlv_20= '}' )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0==44) ) {
+                alt22=1;
+            }
+            switch (alt22) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1094:5: otherlv_17= 'format' otherlv_18= '{' ( (lv_format_19_0= ruleDataInterchangeFormat ) )* otherlv_20= '}'
+                    {
+                    otherlv_17=(Token)match(input,44,FOLLOW_44_in_ruleDataInterchangeBean2379); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_17, grammarAccess.getDataInterchangeBeanAccess().getFormatKeyword_8_0());
+                          
+                    }
+                    otherlv_18=(Token)match(input,15,FOLLOW_15_in_ruleDataInterchangeBean2391); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_18, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_8_1());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1102:1: ( (lv_format_19_0= ruleDataInterchangeFormat ) )*
+                    loop21:
+                    do {
+                        int alt21=2;
+                        int LA21_0 = input.LA(1);
+
+                        if ( (LA21_0==46) ) {
+                            alt21=1;
+                        }
+
+
+                        switch (alt21) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1103:1: (lv_format_19_0= ruleDataInterchangeFormat )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1103:1: (lv_format_19_0= ruleDataInterchangeFormat )
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1104:3: lv_format_19_0= ruleDataInterchangeFormat
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+                    	       
+                    	      	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getFormatDataInterchangeFormatParserRuleCall_8_2_0()); 
+                    	      	    
+                    	    }
+                    	    pushFollow(FOLLOW_ruleDataInterchangeFormat_in_ruleDataInterchangeBean2412);
+                    	    lv_format_19_0=ruleDataInterchangeFormat();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      	        if (current==null) {
+                    	      	            current = createModelElementForParent(grammarAccess.getDataInterchangeBeanRule());
+                    	      	        }
+                    	             		add(
+                    	             			current, 
+                    	             			"format",
+                    	              		lv_format_19_0, 
+                    	              		"DataInterchangeFormat");
+                    	      	        afterParserOrEnumRuleCall();
+                    	      	    
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop21;
+                        }
+                    } while (true);
+
+                    otherlv_20=(Token)match(input,16,FOLLOW_16_in_ruleDataInterchangeBean2425); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_20, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_8_3());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1124:3: (otherlv_21= 'mapping' otherlv_22= '{' ( (lv_mappings_23_0= ruleDataInterchangeMapping ) )* otherlv_24= '}' )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==45) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1124:5: otherlv_21= 'mapping' otherlv_22= '{' ( (lv_mappings_23_0= ruleDataInterchangeMapping ) )* otherlv_24= '}'
+                    {
+                    otherlv_21=(Token)match(input,45,FOLLOW_45_in_ruleDataInterchangeBean2440); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_21, grammarAccess.getDataInterchangeBeanAccess().getMappingKeyword_9_0());
+                          
+                    }
+                    otherlv_22=(Token)match(input,15,FOLLOW_15_in_ruleDataInterchangeBean2452); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_22, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_9_1());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1132:1: ( (lv_mappings_23_0= ruleDataInterchangeMapping ) )*
+                    loop23:
+                    do {
+                        int alt23=2;
+                        int LA23_0 = input.LA(1);
+
+                        if ( (LA23_0==63) ) {
+                            alt23=1;
+                        }
+
+
+                        switch (alt23) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1133:1: (lv_mappings_23_0= ruleDataInterchangeMapping )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1133:1: (lv_mappings_23_0= ruleDataInterchangeMapping )
+                    	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1134:3: lv_mappings_23_0= ruleDataInterchangeMapping
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+                    	       
+                    	      	        newCompositeNode(grammarAccess.getDataInterchangeBeanAccess().getMappingsDataInterchangeMappingParserRuleCall_9_2_0()); 
+                    	      	    
+                    	    }
+                    	    pushFollow(FOLLOW_ruleDataInterchangeMapping_in_ruleDataInterchangeBean2473);
+                    	    lv_mappings_23_0=ruleDataInterchangeMapping();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      	        if (current==null) {
+                    	      	            current = createModelElementForParent(grammarAccess.getDataInterchangeBeanRule());
+                    	      	        }
+                    	             		add(
+                    	             			current, 
+                    	             			"mappings",
+                    	              		lv_mappings_23_0, 
+                    	              		"DataInterchangeMapping");
+                    	      	        afterParserOrEnumRuleCall();
+                    	      	    
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop23;
+                        }
+                    } while (true);
+
+                    otherlv_24=(Token)match(input,16,FOLLOW_16_in_ruleDataInterchangeBean2486); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_24, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_9_3());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeBean"
+
+
+    // $ANTLR start "entryRuleDataInterchangeLookup"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1162:1: entryRuleDataInterchangeLookup returns [EObject current=null] : iv_ruleDataInterchangeLookup= ruleDataInterchangeLookup EOF ;
+    public final EObject entryRuleDataInterchangeLookup() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeLookup = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1163:2: (iv_ruleDataInterchangeLookup= ruleDataInterchangeLookup EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1164:2: iv_ruleDataInterchangeLookup= ruleDataInterchangeLookup EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeLookupRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeLookup_in_entryRuleDataInterchangeLookup2524);
+            iv_ruleDataInterchangeLookup=ruleDataInterchangeLookup();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeLookup; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeLookup2534); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeLookup"
+
+
+    // $ANTLR start "ruleDataInterchangeLookup"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1171:1: ruleDataInterchangeLookup returns [EObject current=null] : ( () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'on' ( (otherlv_4= RULE_ID ) ) (otherlv_5= 'createOn' ( (lv_elementMap_6_0= RULE_STRING ) ) )? otherlv_7= 'with' ( (otherlv_8= RULE_ID ) ) ( ( (lv_cached_9_0= 'cacheSize' ) ) ( (lv_cacheSize_10_0= RULE_INT ) ) )? (otherlv_11= 'mapTo' ( (lv_dataMap_12_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* ) ) ) ) ;
+    public final EObject ruleDataInterchangeLookup() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token lv_elementMap_6_0=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token lv_cached_9_0=null;
+        Token lv_cacheSize_10_0=null;
+        Token otherlv_11=null;
+        Token lv_dataMap_12_0=null;
+        Token lv_allowNoResult_14_0=null;
+        Token lv_allowNonuniqueResult_15_0=null;
+        EObject lv_markerPath_16_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1174:28: ( ( () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'on' ( (otherlv_4= RULE_ID ) ) (otherlv_5= 'createOn' ( (lv_elementMap_6_0= RULE_STRING ) ) )? otherlv_7= 'with' ( (otherlv_8= RULE_ID ) ) ( ( (lv_cached_9_0= 'cacheSize' ) ) ( (lv_cacheSize_10_0= RULE_INT ) ) )? (otherlv_11= 'mapTo' ( (lv_dataMap_12_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* ) ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1175:1: ( () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'on' ( (otherlv_4= RULE_ID ) ) (otherlv_5= 'createOn' ( (lv_elementMap_6_0= RULE_STRING ) ) )? otherlv_7= 'with' ( (otherlv_8= RULE_ID ) ) ( ( (lv_cached_9_0= 'cacheSize' ) ) ( (lv_cacheSize_10_0= RULE_INT ) ) )? (otherlv_11= 'mapTo' ( (lv_dataMap_12_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* ) ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1175:1: ( () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'on' ( (otherlv_4= RULE_ID ) ) (otherlv_5= 'createOn' ( (lv_elementMap_6_0= RULE_STRING ) ) )? otherlv_7= 'with' ( (otherlv_8= RULE_ID ) ) ( ( (lv_cached_9_0= 'cacheSize' ) ) ( (lv_cacheSize_10_0= RULE_INT ) ) )? (otherlv_11= 'mapTo' ( (lv_dataMap_12_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1175:2: () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'on' ( (otherlv_4= RULE_ID ) ) (otherlv_5= 'createOn' ( (lv_elementMap_6_0= RULE_STRING ) ) )? otherlv_7= 'with' ( (otherlv_8= RULE_ID ) ) ( ( (lv_cached_9_0= 'cacheSize' ) ) ( (lv_cacheSize_10_0= RULE_INT ) ) )? (otherlv_11= 'mapTo' ( (lv_dataMap_12_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1175:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1176:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeLookupAccess().getDataInterchangeLookupAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleDataInterchangeLookup2580); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeLookupAccess().getForKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1185:1: ( (otherlv_2= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1186:1: (otherlv_2= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1186:1: (otherlv_2= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1187:3: otherlv_2= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+              	        }
+                      
+            }
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangeLookup2600); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_2, grammarAccess.getDataInterchangeLookupAccess().getTargetPropertyLEntityReferenceCrossReference_2_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleDataInterchangeLookup2612); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeLookupAccess().getOnKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1202:1: ( (otherlv_4= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1203:1: (otherlv_4= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1203:1: (otherlv_4= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1204:3: otherlv_4= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+              	        }
+                      
+            }
+            otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangeLookup2632); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_4, grammarAccess.getDataInterchangeLookupAccess().getEntityLEntityCrossReference_4_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1215:2: (otherlv_5= 'createOn' ( (lv_elementMap_6_0= RULE_STRING ) ) )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==38) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1215:4: otherlv_5= 'createOn' ( (lv_elementMap_6_0= RULE_STRING ) )
+                    {
+                    otherlv_5=(Token)match(input,38,FOLLOW_38_in_ruleDataInterchangeLookup2645); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_5, grammarAccess.getDataInterchangeLookupAccess().getCreateOnKeyword_5_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1219:1: ( (lv_elementMap_6_0= RULE_STRING ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1220:1: (lv_elementMap_6_0= RULE_STRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1220:1: (lv_elementMap_6_0= RULE_STRING )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1221:3: lv_elementMap_6_0= RULE_STRING
+                    {
+                    lv_elementMap_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeLookup2662); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_elementMap_6_0, grammarAccess.getDataInterchangeLookupAccess().getElementMapSTRINGTerminalRuleCall_5_1_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"elementMap",
+                              		lv_elementMap_6_0, 
+                              		"STRING");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_7=(Token)match(input,48,FOLLOW_48_in_ruleDataInterchangeLookup2681); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_7, grammarAccess.getDataInterchangeLookupAccess().getWithKeyword_6());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1241:1: ( (otherlv_8= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1242:1: (otherlv_8= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1242:1: (otherlv_8= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1243:3: otherlv_8= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+              	        }
+                      
+            }
+            otherlv_8=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangeLookup2701); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_8, grammarAccess.getDataInterchangeLookupAccess().getQueryPropertyLEntityAttributeCrossReference_7_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1254:2: ( ( (lv_cached_9_0= 'cacheSize' ) ) ( (lv_cacheSize_10_0= RULE_INT ) ) )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
+
+            if ( (LA26_0==49) ) {
+                alt26=1;
+            }
+            switch (alt26) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1254:3: ( (lv_cached_9_0= 'cacheSize' ) ) ( (lv_cacheSize_10_0= RULE_INT ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1254:3: ( (lv_cached_9_0= 'cacheSize' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1255:1: (lv_cached_9_0= 'cacheSize' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1255:1: (lv_cached_9_0= 'cacheSize' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1256:3: lv_cached_9_0= 'cacheSize'
+                    {
+                    lv_cached_9_0=(Token)match(input,49,FOLLOW_49_in_ruleDataInterchangeLookup2720); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_cached_9_0, grammarAccess.getDataInterchangeLookupAccess().getCachedCacheSizeKeyword_8_0_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+                      	        }
+                             		setWithLastConsumed(current, "cached", true, "cacheSize");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1269:2: ( (lv_cacheSize_10_0= RULE_INT ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1270:1: (lv_cacheSize_10_0= RULE_INT )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1270:1: (lv_cacheSize_10_0= RULE_INT )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1271:3: lv_cacheSize_10_0= RULE_INT
+                    {
+                    lv_cacheSize_10_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDataInterchangeLookup2750); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_cacheSize_10_0, grammarAccess.getDataInterchangeLookupAccess().getCacheSizeINTTerminalRuleCall_8_1_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"cacheSize",
+                              		lv_cacheSize_10_0, 
+                              		"INT");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1287:4: (otherlv_11= 'mapTo' ( (lv_dataMap_12_0= RULE_STRING ) ) )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( (LA27_0==50) ) {
+                alt27=1;
+            }
+            switch (alt27) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1287:6: otherlv_11= 'mapTo' ( (lv_dataMap_12_0= RULE_STRING ) )
+                    {
+                    otherlv_11=(Token)match(input,50,FOLLOW_50_in_ruleDataInterchangeLookup2770); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_11, grammarAccess.getDataInterchangeLookupAccess().getMapToKeyword_9_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1291:1: ( (lv_dataMap_12_0= RULE_STRING ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1292:1: (lv_dataMap_12_0= RULE_STRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1292:1: (lv_dataMap_12_0= RULE_STRING )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1293:3: lv_dataMap_12_0= RULE_STRING
+                    {
+                    lv_dataMap_12_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeLookup2787); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_dataMap_12_0, grammarAccess.getDataInterchangeLookupAccess().getDataMapSTRINGTerminalRuleCall_9_1_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"dataMap",
+                              		lv_dataMap_12_0, 
+                              		"STRING");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1309:4: ( ( ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1311:1: ( ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1311:1: ( ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1312:2: ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* )
+            {
+            getUnorderedGroupHelper().enter(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1315:2: ( ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1316:3: ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )*
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1316:3: ( ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) ) )*
+            loop28:
+            do {
+                int alt28=4;
+                int LA28_0 = input.LA(1);
+
+                if ( LA28_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 0) ) {
+                    alt28=1;
+                }
+                else if ( LA28_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 1) ) {
+                    alt28=2;
+                }
+                else if ( LA28_0 ==53 && getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 2) ) {
+                    alt28=3;
+                }
+
+
+                switch (alt28) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1318:4: ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1318:4: ({...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1319:5: {...}? => ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 0) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeLookup", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 0)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1319:119: ( ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1320:6: ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 0);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1323:6: ({...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1323:7: {...}? => ( (lv_allowNoResult_14_0= 'allowNoResult' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeLookup", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1323:16: ( (lv_allowNoResult_14_0= 'allowNoResult' ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1324:1: (lv_allowNoResult_14_0= 'allowNoResult' )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1324:1: (lv_allowNoResult_14_0= 'allowNoResult' )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1325:3: lv_allowNoResult_14_0= 'allowNoResult'
+            	    {
+            	    lv_allowNoResult_14_0=(Token)match(input,51,FOLLOW_51_in_ruleDataInterchangeLookup2857); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	              newLeafNode(lv_allowNoResult_14_0, grammarAccess.getDataInterchangeLookupAccess().getAllowNoResultAllowNoResultKeyword_10_0_0());
+            	          
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+            	      	        }
+            	             		setWithLastConsumed(current, "allowNoResult", true, "allowNoResult");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1345:4: ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1345:4: ({...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1346:5: {...}? => ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 1) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeLookup", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 1)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1346:119: ( ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1347:6: ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 1);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1350:6: ({...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1350:7: {...}? => ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeLookup", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1350:16: ( (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1351:1: (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1351:1: (lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult' )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1352:3: lv_allowNonuniqueResult_15_0= 'allowNonuniqueResult'
+            	    {
+            	    lv_allowNonuniqueResult_15_0=(Token)match(input,52,FOLLOW_52_in_ruleDataInterchangeLookup2942); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	              newLeafNode(lv_allowNonuniqueResult_15_0, grammarAccess.getDataInterchangeLookupAccess().getAllowNonuniqueResultAllowNonuniqueResultKeyword_10_1_0());
+            	          
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getDataInterchangeLookupRule());
+            	      	        }
+            	             		setWithLastConsumed(current, "allowNonuniqueResult", true, "allowNonuniqueResult");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 3 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1372:4: ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1372:4: ({...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1373:5: {...}? => ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 2) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeLookup", "getUnorderedGroupHelper().canSelect(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 2)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1373:119: ( ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1374:6: ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10(), 2);
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1377:6: ({...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1377:7: {...}? => ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleDataInterchangeLookup", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1377:16: ( (lv_markerPath_16_0= ruleDataInterchangeMarkerPath ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1378:1: (lv_markerPath_16_0= ruleDataInterchangeMarkerPath )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1378:1: (lv_markerPath_16_0= ruleDataInterchangeMarkerPath )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1379:3: lv_markerPath_16_0= ruleDataInterchangeMarkerPath
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getDataInterchangeLookupAccess().getMarkerPathDataInterchangeMarkerPathParserRuleCall_10_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleDataInterchangeMarkerPath_in_ruleDataInterchangeLookup3030);
+            	    lv_markerPath_16_0=ruleDataInterchangeMarkerPath();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getDataInterchangeLookupRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"markerPath",
+            	              		lv_markerPath_16_0, 
+            	              		"DataInterchangeMarkerPath");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop28;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            getUnorderedGroupHelper().leave(grammarAccess.getDataInterchangeLookupAccess().getUnorderedGroup_10());
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeLookup"
+
+
+    // $ANTLR start "entryRuleDataInterchangeMarkerPath"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1417:1: entryRuleDataInterchangeMarkerPath returns [EObject current=null] : iv_ruleDataInterchangeMarkerPath= ruleDataInterchangeMarkerPath EOF ;
+    public final EObject entryRuleDataInterchangeMarkerPath() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeMarkerPath = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1418:2: (iv_ruleDataInterchangeMarkerPath= ruleDataInterchangeMarkerPath EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1419:2: iv_ruleDataInterchangeMarkerPath= ruleDataInterchangeMarkerPath EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeMarkerPathRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeMarkerPath_in_entryRuleDataInterchangeMarkerPath3106);
+            iv_ruleDataInterchangeMarkerPath=ruleDataInterchangeMarkerPath();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeMarkerPath; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeMarkerPath3116); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeMarkerPath"
+
+
+    // $ANTLR start "ruleDataInterchangeMarkerPath"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1426:1: ruleDataInterchangeMarkerPath returns [EObject current=null] : ( () otherlv_1= 'markerPath' otherlv_2= '{' ( (lv_path_3_0= ruleDataInterchangeMarkerEntity ) )* otherlv_4= '}' ) ;
+    public final EObject ruleDataInterchangeMarkerPath() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_path_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1429:28: ( ( () otherlv_1= 'markerPath' otherlv_2= '{' ( (lv_path_3_0= ruleDataInterchangeMarkerEntity ) )* otherlv_4= '}' ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1430:1: ( () otherlv_1= 'markerPath' otherlv_2= '{' ( (lv_path_3_0= ruleDataInterchangeMarkerEntity ) )* otherlv_4= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1430:1: ( () otherlv_1= 'markerPath' otherlv_2= '{' ( (lv_path_3_0= ruleDataInterchangeMarkerEntity ) )* otherlv_4= '}' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1430:2: () otherlv_1= 'markerPath' otherlv_2= '{' ( (lv_path_3_0= ruleDataInterchangeMarkerEntity ) )* otherlv_4= '}'
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1430:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1431:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeMarkerPathAccess().getDataInterchangeMarkerPathAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,53,FOLLOW_53_in_ruleDataInterchangeMarkerPath3162); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeMarkerPathAccess().getMarkerPathKeyword_1());
+                  
+            }
+            otherlv_2=(Token)match(input,15,FOLLOW_15_in_ruleDataInterchangeMarkerPath3174); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getDataInterchangeMarkerPathAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1444:1: ( (lv_path_3_0= ruleDataInterchangeMarkerEntity ) )*
+            loop29:
+            do {
+                int alt29=2;
+                int LA29_0 = input.LA(1);
+
+                if ( (LA29_0==54) ) {
+                    alt29=1;
+                }
+
+
+                switch (alt29) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1445:1: (lv_path_3_0= ruleDataInterchangeMarkerEntity )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1445:1: (lv_path_3_0= ruleDataInterchangeMarkerEntity )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1446:3: lv_path_3_0= ruleDataInterchangeMarkerEntity
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getDataInterchangeMarkerPathAccess().getPathDataInterchangeMarkerEntityParserRuleCall_3_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleDataInterchangeMarkerEntity_in_ruleDataInterchangeMarkerPath3195);
+            	    lv_path_3_0=ruleDataInterchangeMarkerEntity();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getDataInterchangeMarkerPathRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"path",
+            	              		lv_path_3_0, 
+            	              		"DataInterchangeMarkerEntity");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop29;
+                }
+            } while (true);
+
+            otherlv_4=(Token)match(input,16,FOLLOW_16_in_ruleDataInterchangeMarkerPath3208); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_4, grammarAccess.getDataInterchangeMarkerPathAccess().getRightCurlyBracketKeyword_4());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeMarkerPath"
+
+
+    // $ANTLR start "entryRuleDataInterchangeMarkerEntity"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1474:1: entryRuleDataInterchangeMarkerEntity returns [EObject current=null] : iv_ruleDataInterchangeMarkerEntity= ruleDataInterchangeMarkerEntity EOF ;
+    public final EObject entryRuleDataInterchangeMarkerEntity() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeMarkerEntity = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1475:2: (iv_ruleDataInterchangeMarkerEntity= ruleDataInterchangeMarkerEntity EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1476:2: iv_ruleDataInterchangeMarkerEntity= ruleDataInterchangeMarkerEntity EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeMarkerEntityRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeMarkerEntity_in_entryRuleDataInterchangeMarkerEntity3244);
+            iv_ruleDataInterchangeMarkerEntity=ruleDataInterchangeMarkerEntity();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeMarkerEntity; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeMarkerEntity3254); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeMarkerEntity"
+
+
+    // $ANTLR start "ruleDataInterchangeMarkerEntity"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1483:1: ruleDataInterchangeMarkerEntity returns [EObject current=null] : ( () otherlv_1= 'markerEntity' ( ( ruleLFQN ) ) ( ( (lv_markLatest_3_0= 'markedBy' ) ) ( (otherlv_4= RULE_ID ) ) )? ) ;
+    public final EObject ruleDataInterchangeMarkerEntity() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_markLatest_3_0=null;
+        Token otherlv_4=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1486:28: ( ( () otherlv_1= 'markerEntity' ( ( ruleLFQN ) ) ( ( (lv_markLatest_3_0= 'markedBy' ) ) ( (otherlv_4= RULE_ID ) ) )? ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1487:1: ( () otherlv_1= 'markerEntity' ( ( ruleLFQN ) ) ( ( (lv_markLatest_3_0= 'markedBy' ) ) ( (otherlv_4= RULE_ID ) ) )? )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1487:1: ( () otherlv_1= 'markerEntity' ( ( ruleLFQN ) ) ( ( (lv_markLatest_3_0= 'markedBy' ) ) ( (otherlv_4= RULE_ID ) ) )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1487:2: () otherlv_1= 'markerEntity' ( ( ruleLFQN ) ) ( ( (lv_markLatest_3_0= 'markedBy' ) ) ( (otherlv_4= RULE_ID ) ) )?
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1487:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1488:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeMarkerEntityAccess().getDataInterchangeMarkerEntityAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,54,FOLLOW_54_in_ruleDataInterchangeMarkerEntity3300); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerEntityKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1497:1: ( ( ruleLFQN ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1498:1: ( ruleLFQN )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1498:1: ( ruleLFQN )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1499:3: ruleLFQN
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeMarkerEntityRule());
+              	        }
+                      
+            }
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerEntityLEntityCrossReference_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleLFQN_in_ruleDataInterchangeMarkerEntity3323);
+            ruleLFQN();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1512:2: ( ( (lv_markLatest_3_0= 'markedBy' ) ) ( (otherlv_4= RULE_ID ) ) )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
+
+            if ( (LA30_0==55) ) {
+                alt30=1;
+            }
+            switch (alt30) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1512:3: ( (lv_markLatest_3_0= 'markedBy' ) ) ( (otherlv_4= RULE_ID ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1512:3: ( (lv_markLatest_3_0= 'markedBy' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1513:1: (lv_markLatest_3_0= 'markedBy' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1513:1: (lv_markLatest_3_0= 'markedBy' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1514:3: lv_markLatest_3_0= 'markedBy'
+                    {
+                    lv_markLatest_3_0=(Token)match(input,55,FOLLOW_55_in_ruleDataInterchangeMarkerEntity3342); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_markLatest_3_0, grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkLatestMarkedByKeyword_3_0_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeMarkerEntityRule());
+                      	        }
+                             		setWithLastConsumed(current, "markLatest", true, "markedBy");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1527:2: ( (otherlv_4= RULE_ID ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1528:1: (otherlv_4= RULE_ID )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1528:1: (otherlv_4= RULE_ID )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1529:3: otherlv_4= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeMarkerEntityRule());
+                      	        }
+                              
+                    }
+                    otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangeMarkerEntity3375); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      		newLeafNode(otherlv_4, grammarAccess.getDataInterchangeMarkerEntityAccess().getMarkerPropertyLEntityAttributeCrossReference_3_1_0()); 
+                      	
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeMarkerEntity"
+
+
+    // $ANTLR start "entryRuleDataInterchangeFormat"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1548:1: entryRuleDataInterchangeFormat returns [EObject current=null] : iv_ruleDataInterchangeFormat= ruleDataInterchangeFormat EOF ;
+    public final EObject entryRuleDataInterchangeFormat() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeFormat = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1549:2: (iv_ruleDataInterchangeFormat= ruleDataInterchangeFormat EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1550:2: iv_ruleDataInterchangeFormat= ruleDataInterchangeFormat EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeFormatRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeFormat_in_entryRuleDataInterchangeFormat3413);
+            iv_ruleDataInterchangeFormat=ruleDataInterchangeFormat();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeFormat; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeFormat3423); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeFormat"
+
+
+    // $ANTLR start "ruleDataInterchangeFormat"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1557:1: ruleDataInterchangeFormat returns [EObject current=null] : ( () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'coding' ( (lv_format_4_0= RULE_STRING ) ) (otherlv_5= 'locale' ( (lv_locale_6_0= RULE_STRING ) ) )? ) ;
+    public final EObject ruleDataInterchangeFormat() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token lv_format_4_0=null;
+        Token otherlv_5=null;
+        Token lv_locale_6_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1560:28: ( ( () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'coding' ( (lv_format_4_0= RULE_STRING ) ) (otherlv_5= 'locale' ( (lv_locale_6_0= RULE_STRING ) ) )? ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1561:1: ( () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'coding' ( (lv_format_4_0= RULE_STRING ) ) (otherlv_5= 'locale' ( (lv_locale_6_0= RULE_STRING ) ) )? )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1561:1: ( () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'coding' ( (lv_format_4_0= RULE_STRING ) ) (otherlv_5= 'locale' ( (lv_locale_6_0= RULE_STRING ) ) )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1561:2: () otherlv_1= 'for' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'coding' ( (lv_format_4_0= RULE_STRING ) ) (otherlv_5= 'locale' ( (lv_locale_6_0= RULE_STRING ) ) )?
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1561:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1562:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeFormatAccess().getDataInterchangeFormatAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleDataInterchangeFormat3469); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeFormatAccess().getForKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1571:1: ( (otherlv_2= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1572:1: (otherlv_2= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1572:1: (otherlv_2= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1573:3: otherlv_2= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeFormatRule());
+              	        }
+                      
+            }
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangeFormat3489); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_2, grammarAccess.getDataInterchangeFormatAccess().getTargetPropertyLEntityAttributeCrossReference_2_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,56,FOLLOW_56_in_ruleDataInterchangeFormat3501); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeFormatAccess().getCodingKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1588:1: ( (lv_format_4_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1589:1: (lv_format_4_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1589:1: (lv_format_4_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1590:3: lv_format_4_0= RULE_STRING
+            {
+            lv_format_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeFormat3518); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_format_4_0, grammarAccess.getDataInterchangeFormatAccess().getFormatSTRINGTerminalRuleCall_4_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"format",
+                      		lv_format_4_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1606:2: (otherlv_5= 'locale' ( (lv_locale_6_0= RULE_STRING ) ) )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==57) ) {
+                alt31=1;
+            }
+            switch (alt31) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1606:4: otherlv_5= 'locale' ( (lv_locale_6_0= RULE_STRING ) )
+                    {
+                    otherlv_5=(Token)match(input,57,FOLLOW_57_in_ruleDataInterchangeFormat3536); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_5, grammarAccess.getDataInterchangeFormatAccess().getLocaleKeyword_5_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1610:1: ( (lv_locale_6_0= RULE_STRING ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1611:1: (lv_locale_6_0= RULE_STRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1611:1: (lv_locale_6_0= RULE_STRING )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1612:3: lv_locale_6_0= RULE_STRING
+                    {
+                    lv_locale_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeFormat3553); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_locale_6_0, grammarAccess.getDataInterchangeFormatAccess().getLocaleSTRINGTerminalRuleCall_5_1_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getDataInterchangeFormatRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"locale",
+                              		lv_locale_6_0, 
+                              		"STRING");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeFormat"
+
+
+    // $ANTLR start "entryRuleDataInterchangeExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1636:1: entryRuleDataInterchangeExpression returns [EObject current=null] : iv_ruleDataInterchangeExpression= ruleDataInterchangeExpression EOF ;
+    public final EObject entryRuleDataInterchangeExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1637:2: (iv_ruleDataInterchangeExpression= ruleDataInterchangeExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1638:2: iv_ruleDataInterchangeExpression= ruleDataInterchangeExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeExpression_in_entryRuleDataInterchangeExpression3596);
+            iv_ruleDataInterchangeExpression=ruleDataInterchangeExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeExpression3606); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeExpression"
+
+
+    // $ANTLR start "ruleDataInterchangeExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1645:1: ruleDataInterchangeExpression returns [EObject current=null] : (this_DataInterchangeEntityExpression_0= ruleDataInterchangeEntityExpression | this_DataInterchangePredefinedExpression_1= ruleDataInterchangePredefinedExpression ) ;
+    public final EObject ruleDataInterchangeExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_DataInterchangeEntityExpression_0 = null;
+
+        EObject this_DataInterchangePredefinedExpression_1 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1648:28: ( (this_DataInterchangeEntityExpression_0= ruleDataInterchangeEntityExpression | this_DataInterchangePredefinedExpression_1= ruleDataInterchangePredefinedExpression ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1649:1: (this_DataInterchangeEntityExpression_0= ruleDataInterchangeEntityExpression | this_DataInterchangePredefinedExpression_1= ruleDataInterchangePredefinedExpression )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1649:1: (this_DataInterchangeEntityExpression_0= ruleDataInterchangeEntityExpression | this_DataInterchangePredefinedExpression_1= ruleDataInterchangePredefinedExpression )
+            int alt32=2;
+            int LA32_0 = input.LA(1);
+
+            if ( (LA32_0==58) ) {
+                alt32=1;
+            }
+            else if ( (LA32_0==61) ) {
+                alt32=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 32, 0, input);
+
+                throw nvae;
+            }
+            switch (alt32) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1650:5: this_DataInterchangeEntityExpression_0= ruleDataInterchangeEntityExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangeEntityExpressionParserRuleCall_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangeEntityExpression_in_ruleDataInterchangeExpression3653);
+                    this_DataInterchangeEntityExpression_0=ruleDataInterchangeEntityExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_DataInterchangeEntityExpression_0; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1660:5: this_DataInterchangePredefinedExpression_1= ruleDataInterchangePredefinedExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getDataInterchangeExpressionAccess().getDataInterchangePredefinedExpressionParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleDataInterchangePredefinedExpression_in_ruleDataInterchangeExpression3680);
+                    this_DataInterchangePredefinedExpression_1=ruleDataInterchangePredefinedExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_DataInterchangePredefinedExpression_1; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeExpression"
+
+
+    // $ANTLR start "entryRuleDataInterchangeEntityExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1676:1: entryRuleDataInterchangeEntityExpression returns [EObject current=null] : iv_ruleDataInterchangeEntityExpression= ruleDataInterchangeEntityExpression EOF ;
+    public final EObject entryRuleDataInterchangeEntityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeEntityExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1677:2: (iv_ruleDataInterchangeEntityExpression= ruleDataInterchangeEntityExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1678:2: iv_ruleDataInterchangeEntityExpression= ruleDataInterchangeEntityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeEntityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeEntityExpression_in_entryRuleDataInterchangeEntityExpression3715);
+            iv_ruleDataInterchangeEntityExpression=ruleDataInterchangeEntityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeEntityExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeEntityExpression3725); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeEntityExpression"
+
+
+    // $ANTLR start "ruleDataInterchangeEntityExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1685:1: ruleDataInterchangeEntityExpression returns [EObject current=null] : ( () otherlv_1= 'copy' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'from' ( ( ruleLFQN ) ) otherlv_5= 'property' ( (otherlv_6= RULE_ID ) ) ) ;
+    public final EObject ruleDataInterchangeEntityExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1688:28: ( ( () otherlv_1= 'copy' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'from' ( ( ruleLFQN ) ) otherlv_5= 'property' ( (otherlv_6= RULE_ID ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1689:1: ( () otherlv_1= 'copy' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'from' ( ( ruleLFQN ) ) otherlv_5= 'property' ( (otherlv_6= RULE_ID ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1689:1: ( () otherlv_1= 'copy' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'from' ( ( ruleLFQN ) ) otherlv_5= 'property' ( (otherlv_6= RULE_ID ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1689:2: () otherlv_1= 'copy' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'from' ( ( ruleLFQN ) ) otherlv_5= 'property' ( (otherlv_6= RULE_ID ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1689:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1690:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeEntityExpressionAccess().getDataInterchangeEntityExpressionAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,58,FOLLOW_58_in_ruleDataInterchangeEntityExpression3771); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeEntityExpressionAccess().getCopyKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1699:1: ( (otherlv_2= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1700:1: (otherlv_2= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1700:1: (otherlv_2= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1701:3: otherlv_2= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeEntityExpressionRule());
+              	        }
+                      
+            }
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangeEntityExpression3791); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_2, grammarAccess.getDataInterchangeEntityExpressionAccess().getTargetPropertyLEntityAttributeCrossReference_2_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,59,FOLLOW_59_in_ruleDataInterchangeEntityExpression3803); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeEntityExpressionAccess().getFromKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1716:1: ( ( ruleLFQN ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1717:1: ( ruleLFQN )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1717:1: ( ruleLFQN )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1718:3: ruleLFQN
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeEntityExpressionRule());
+              	        }
+                      
+            }
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangeEntityExpressionAccess().getEntityLEntityCrossReference_4_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleLFQN_in_ruleDataInterchangeEntityExpression3826);
+            ruleLFQN();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,60,FOLLOW_60_in_ruleDataInterchangeEntityExpression3838); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_5, grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyKeyword_5());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1735:1: ( (otherlv_6= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1736:1: (otherlv_6= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1736:1: (otherlv_6= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1737:3: otherlv_6= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeEntityExpressionRule());
+              	        }
+                      
+            }
+            otherlv_6=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangeEntityExpression3858); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_6, grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyLEntityAttributeCrossReference_6_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeEntityExpression"
+
+
+    // $ANTLR start "entryRuleDataInterchangePredefinedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1756:1: entryRuleDataInterchangePredefinedExpression returns [EObject current=null] : iv_ruleDataInterchangePredefinedExpression= ruleDataInterchangePredefinedExpression EOF ;
+    public final EObject entryRuleDataInterchangePredefinedExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangePredefinedExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1757:2: (iv_ruleDataInterchangePredefinedExpression= ruleDataInterchangePredefinedExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1758:2: iv_ruleDataInterchangePredefinedExpression= ruleDataInterchangePredefinedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangePredefinedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangePredefinedExpression_in_entryRuleDataInterchangePredefinedExpression3894);
+            iv_ruleDataInterchangePredefinedExpression=ruleDataInterchangePredefinedExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangePredefinedExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangePredefinedExpression3904); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangePredefinedExpression"
+
+
+    // $ANTLR start "ruleDataInterchangePredefinedExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1765:1: ruleDataInterchangePredefinedExpression returns [EObject current=null] : ( () otherlv_1= 'assign' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'with' ( (lv_bean_4_0= rulePredefinedBeanEnum ) ) otherlv_5= 'as' ( (lv_beanType_6_0= rulePredefinedBeanTypeEnum ) ) ) ;
+    public final EObject ruleDataInterchangePredefinedExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Enumerator lv_bean_4_0 = null;
+
+        Enumerator lv_beanType_6_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1768:28: ( ( () otherlv_1= 'assign' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'with' ( (lv_bean_4_0= rulePredefinedBeanEnum ) ) otherlv_5= 'as' ( (lv_beanType_6_0= rulePredefinedBeanTypeEnum ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1769:1: ( () otherlv_1= 'assign' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'with' ( (lv_bean_4_0= rulePredefinedBeanEnum ) ) otherlv_5= 'as' ( (lv_beanType_6_0= rulePredefinedBeanTypeEnum ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1769:1: ( () otherlv_1= 'assign' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'with' ( (lv_bean_4_0= rulePredefinedBeanEnum ) ) otherlv_5= 'as' ( (lv_beanType_6_0= rulePredefinedBeanTypeEnum ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1769:2: () otherlv_1= 'assign' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'with' ( (lv_bean_4_0= rulePredefinedBeanEnum ) ) otherlv_5= 'as' ( (lv_beanType_6_0= rulePredefinedBeanTypeEnum ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1769:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1770:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangePredefinedExpressionAccess().getDataInterchangePredefinedExpressionAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,61,FOLLOW_61_in_ruleDataInterchangePredefinedExpression3950); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangePredefinedExpressionAccess().getAssignKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1779:1: ( (otherlv_2= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1780:1: (otherlv_2= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1780:1: (otherlv_2= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1781:3: otherlv_2= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangePredefinedExpressionRule());
+              	        }
+                      
+            }
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangePredefinedExpression3970); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_2, grammarAccess.getDataInterchangePredefinedExpressionAccess().getTargetPropertyLEntityAttributeCrossReference_2_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,48,FOLLOW_48_in_ruleDataInterchangePredefinedExpression3982); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getDataInterchangePredefinedExpressionAccess().getWithKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1796:1: ( (lv_bean_4_0= rulePredefinedBeanEnum ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1797:1: (lv_bean_4_0= rulePredefinedBeanEnum )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1797:1: (lv_bean_4_0= rulePredefinedBeanEnum )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1798:3: lv_bean_4_0= rulePredefinedBeanEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanPredefinedBeanEnumEnumRuleCall_4_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_rulePredefinedBeanEnum_in_ruleDataInterchangePredefinedExpression4003);
+            lv_bean_4_0=rulePredefinedBeanEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getDataInterchangePredefinedExpressionRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"bean",
+                      		lv_bean_4_0, 
+                      		"PredefinedBeanEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,62,FOLLOW_62_in_ruleDataInterchangePredefinedExpression4015); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_5, grammarAccess.getDataInterchangePredefinedExpressionAccess().getAsKeyword_5());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1818:1: ( (lv_beanType_6_0= rulePredefinedBeanTypeEnum ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1819:1: (lv_beanType_6_0= rulePredefinedBeanTypeEnum )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1819:1: (lv_beanType_6_0= rulePredefinedBeanTypeEnum )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1820:3: lv_beanType_6_0= rulePredefinedBeanTypeEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanTypePredefinedBeanTypeEnumEnumRuleCall_6_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_rulePredefinedBeanTypeEnum_in_ruleDataInterchangePredefinedExpression4036);
+            lv_beanType_6_0=rulePredefinedBeanTypeEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getDataInterchangePredefinedExpressionRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"beanType",
+                      		lv_beanType_6_0, 
+                      		"PredefinedBeanTypeEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangePredefinedExpression"
+
+
+    // $ANTLR start "entryRuleDataInterchangeMapping"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1844:1: entryRuleDataInterchangeMapping returns [EObject current=null] : iv_ruleDataInterchangeMapping= ruleDataInterchangeMapping EOF ;
+    public final EObject entryRuleDataInterchangeMapping() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeMapping = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1845:2: (iv_ruleDataInterchangeMapping= ruleDataInterchangeMapping EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1846:2: iv_ruleDataInterchangeMapping= ruleDataInterchangeMapping EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeMappingRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeMapping_in_entryRuleDataInterchangeMapping4072);
+            iv_ruleDataInterchangeMapping=ruleDataInterchangeMapping();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeMapping; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeMapping4082); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeMapping"
+
+
+    // $ANTLR start "ruleDataInterchangeMapping"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1853:1: ruleDataInterchangeMapping returns [EObject current=null] : ( () otherlv_1= 'map' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'to' ( (lv_data_4_0= RULE_STRING ) ) ) ;
+    public final EObject ruleDataInterchangeMapping() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token lv_data_4_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1856:28: ( ( () otherlv_1= 'map' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'to' ( (lv_data_4_0= RULE_STRING ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1857:1: ( () otherlv_1= 'map' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'to' ( (lv_data_4_0= RULE_STRING ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1857:1: ( () otherlv_1= 'map' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'to' ( (lv_data_4_0= RULE_STRING ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1857:2: () otherlv_1= 'map' ( (otherlv_2= RULE_ID ) ) otherlv_3= 'to' ( (lv_data_4_0= RULE_STRING ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1857:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1858:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getDataInterchangeMappingAccess().getDataInterchangeMappingAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,63,FOLLOW_63_in_ruleDataInterchangeMapping4128); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getDataInterchangeMappingAccess().getMapKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1867:1: ( (otherlv_2= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1868:1: (otherlv_2= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1868:1: (otherlv_2= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1869:3: otherlv_2= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeMappingRule());
+              	        }
+                      
+            }
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDataInterchangeMapping4148); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_2, grammarAccess.getDataInterchangeMappingAccess().getPropertyLEntityAttributeCrossReference_2_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,64,FOLLOW_64_in_ruleDataInterchangeMapping4160); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getDataInterchangeMappingAccess().getToKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1884:1: ( (lv_data_4_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1885:1: (lv_data_4_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1885:1: (lv_data_4_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1886:3: lv_data_4_0= RULE_STRING
+            {
+            lv_data_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDataInterchangeMapping4177); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_data_4_0, grammarAccess.getDataInterchangeMappingAccess().getDataSTRINGTerminalRuleCall_4_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getDataInterchangeMappingRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"data",
+                      		lv_data_4_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeMapping"
+
+
+    // $ANTLR start "entryRuleDataInterchangeImport"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1910:1: entryRuleDataInterchangeImport returns [EObject current=null] : iv_ruleDataInterchangeImport= ruleDataInterchangeImport EOF ;
+    public final EObject entryRuleDataInterchangeImport() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDataInterchangeImport = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1911:2: (iv_ruleDataInterchangeImport= ruleDataInterchangeImport EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1912:2: iv_ruleDataInterchangeImport= ruleDataInterchangeImport EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeImportRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeImport_in_entryRuleDataInterchangeImport4218);
+            iv_ruleDataInterchangeImport=ruleDataInterchangeImport();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeImport; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeImport4228); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeImport"
+
+
+    // $ANTLR start "ruleDataInterchangeImport"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1919:1: ruleDataInterchangeImport returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleDataInterchangeQualifiedNameWithWildCard ) ) ) ;
+    public final EObject ruleDataInterchangeImport() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        AntlrDatatypeRuleToken lv_importedNamespace_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1922:28: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleDataInterchangeQualifiedNameWithWildCard ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1923:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleDataInterchangeQualifiedNameWithWildCard ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1923:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleDataInterchangeQualifiedNameWithWildCard ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1923:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleDataInterchangeQualifiedNameWithWildCard ) )
+            {
+            otherlv_0=(Token)match(input,65,FOLLOW_65_in_ruleDataInterchangeImport4265); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getDataInterchangeImportAccess().getImportKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1927:1: ( (lv_importedNamespace_1_0= ruleDataInterchangeQualifiedNameWithWildCard ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1928:1: (lv_importedNamespace_1_0= ruleDataInterchangeQualifiedNameWithWildCard )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1928:1: (lv_importedNamespace_1_0= ruleDataInterchangeQualifiedNameWithWildCard )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1929:3: lv_importedNamespace_1_0= ruleDataInterchangeQualifiedNameWithWildCard
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDataInterchangeImportAccess().getImportedNamespaceDataInterchangeQualifiedNameWithWildCardParserRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeQualifiedNameWithWildCard_in_ruleDataInterchangeImport4286);
+            lv_importedNamespace_1_0=ruleDataInterchangeQualifiedNameWithWildCard();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getDataInterchangeImportRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"importedNamespace",
+                      		lv_importedNamespace_1_0, 
+                      		"DataInterchangeQualifiedNameWithWildCard");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeImport"
+
+
+    // $ANTLR start "entryRuleDataInterchangeQualifiedNameWithWildCard"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1953:1: entryRuleDataInterchangeQualifiedNameWithWildCard returns [String current=null] : iv_ruleDataInterchangeQualifiedNameWithWildCard= ruleDataInterchangeQualifiedNameWithWildCard EOF ;
+    public final String entryRuleDataInterchangeQualifiedNameWithWildCard() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleDataInterchangeQualifiedNameWithWildCard = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1954:2: (iv_ruleDataInterchangeQualifiedNameWithWildCard= ruleDataInterchangeQualifiedNameWithWildCard EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1955:2: iv_ruleDataInterchangeQualifiedNameWithWildCard= ruleDataInterchangeQualifiedNameWithWildCard EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDataInterchangeQualifiedNameWithWildCardRule()); 
+            }
+            pushFollow(FOLLOW_ruleDataInterchangeQualifiedNameWithWildCard_in_entryRuleDataInterchangeQualifiedNameWithWildCard4323);
+            iv_ruleDataInterchangeQualifiedNameWithWildCard=ruleDataInterchangeQualifiedNameWithWildCard();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDataInterchangeQualifiedNameWithWildCard.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDataInterchangeQualifiedNameWithWildCard4334); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDataInterchangeQualifiedNameWithWildCard"
+
+
+    // $ANTLR start "ruleDataInterchangeQualifiedNameWithWildCard"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1962:1: ruleDataInterchangeQualifiedNameWithWildCard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) ;
+    public final AntlrDatatypeRuleToken ruleDataInterchangeQualifiedNameWithWildCard() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_QualifiedName_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1965:28: ( (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1966:1: (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1966:1: (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1967:5: this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )?
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_ruleDataInterchangeQualifiedNameWithWildCard4381);
+            this_QualifiedName_0=ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_QualifiedName_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1977:1: (kw= '.' kw= '*' )?
+            int alt33=2;
+            int LA33_0 = input.LA(1);
+
+            if ( (LA33_0==66) ) {
+                alt33=1;
+            }
+            switch (alt33) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1978:2: kw= '.' kw= '*'
+                    {
+                    kw=(Token)match(input,66,FOLLOW_66_in_ruleDataInterchangeQualifiedNameWithWildCard4400); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); 
+                          
+                    }
+                    kw=(Token)match(input,67,FOLLOW_67_in_ruleDataInterchangeQualifiedNameWithWildCard4413); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getDataInterchangeQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDataInterchangeQualifiedNameWithWildCard"
+
+
+    // $ANTLR start "entryRuleQualifiedName"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1997:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    public final String entryRuleQualifiedName() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1998:2: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:1999:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getQualifiedNameRule()); 
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName4456);
+            iv_ruleQualifiedName=ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleQualifiedName.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName4467); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleQualifiedName"
+
+
+    // $ANTLR start "ruleQualifiedName"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2006:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
+    public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_ValidID_0 = null;
+
+        AntlrDatatypeRuleToken this_ValidID_2 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2009:28: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2010:1: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2010:1: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2011:5: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleValidID_in_ruleQualifiedName4514);
+            this_ValidID_0=ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_ValidID_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2021:1: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            loop34:
+            do {
+                int alt34=2;
+                int LA34_0 = input.LA(1);
+
+                if ( (LA34_0==66) ) {
+                    int LA34_2 = input.LA(2);
+
+                    if ( (LA34_2==RULE_ID) ) {
+                        int LA34_3 = input.LA(3);
+
+                        if ( (synpred1_InternalDataDSL()) ) {
+                            alt34=1;
+                        }
+
+
+                    }
+
+
+                }
+
+
+                switch (alt34) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2021:2: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2021:2: ( ( '.' )=>kw= '.' )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2021:3: ( '.' )=>kw= '.'
+            	    {
+            	    kw=(Token)match(input,66,FOLLOW_66_in_ruleQualifiedName4542); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	              current.merge(kw);
+            	              newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
+            	          
+            	    }
+
+            	    }
+
+            	    if ( state.backtracking==0 ) {
+            	       
+            	              newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
+            	          
+            	    }
+            	    pushFollow(FOLLOW_ruleValidID_in_ruleQualifiedName4565);
+            	    this_ValidID_2=ruleValidID();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		current.merge(this_ValidID_2);
+            	          
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	              afterParserOrEnumRuleCall();
+            	          
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop34;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleQualifiedName"
+
+
+    // $ANTLR start "entryRuleValidID"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2048:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+    public final String entryRuleValidID() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleValidID = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2049:2: (iv_ruleValidID= ruleValidID EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2050:2: iv_ruleValidID= ruleValidID EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getValidIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleValidID_in_entryRuleValidID4613);
+            iv_ruleValidID=ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleValidID.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleValidID4624); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleValidID"
+
+
+    // $ANTLR start "ruleValidID"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2057:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_ID_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2060:28: (this_ID_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2061:5: this_ID_0= RULE_ID
+            {
+            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleValidID4663); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_ID_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                  newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleValidID"
+
+
+    // $ANTLR start "entryRuleLFQN"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2076:1: entryRuleLFQN returns [String current=null] : iv_ruleLFQN= ruleLFQN EOF ;
+    public final String entryRuleLFQN() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleLFQN = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2077:2: (iv_ruleLFQN= ruleLFQN EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2078:2: iv_ruleLFQN= ruleLFQN EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getLFQNRule()); 
+            }
+            pushFollow(FOLLOW_ruleLFQN_in_entryRuleLFQN4708);
+            iv_ruleLFQN=ruleLFQN();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleLFQN.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleLFQN4719); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleLFQN"
+
+
+    // $ANTLR start "ruleLFQN"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2085:1: ruleLFQN returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ;
+    public final AntlrDatatypeRuleToken ruleLFQN() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_ID_0=null;
+        Token kw=null;
+        Token this_ID_2=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2088:28: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2089:1: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2089:1: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2089:6: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
+            {
+            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLFQN4759); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_ID_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                  newLeafNode(this_ID_0, grammarAccess.getLFQNAccess().getIDTerminalRuleCall_0()); 
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2096:1: (kw= '.' this_ID_2= RULE_ID )*
+            loop35:
+            do {
+                int alt35=2;
+                int LA35_0 = input.LA(1);
+
+                if ( (LA35_0==66) ) {
+                    alt35=1;
+                }
+
+
+                switch (alt35) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2097:2: kw= '.' this_ID_2= RULE_ID
+            	    {
+            	    kw=(Token)match(input,66,FOLLOW_66_in_ruleLFQN4778); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	              current.merge(kw);
+            	              newLeafNode(kw, grammarAccess.getLFQNAccess().getFullStopKeyword_1_0()); 
+            	          
+            	    }
+            	    this_ID_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLFQN4793); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		current.merge(this_ID_2);
+            	          
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	          newLeafNode(this_ID_2, grammarAccess.getLFQNAccess().getIDTerminalRuleCall_1_1()); 
+            	          
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop35;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleLFQN"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLESTRING"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2117:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
+    public final String entryRuleTRANSLATABLESTRING() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleTRANSLATABLESTRING = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2118:2: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2119:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); 
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_entryRuleTRANSLATABLESTRING4841);
+            iv_ruleTRANSLATABLESTRING=ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTRANSLATABLESTRING.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLESTRING4852); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "ruleTRANSLATABLESTRING"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2126:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
+    public final AntlrDatatypeRuleToken ruleTRANSLATABLESTRING() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_STRING_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2129:28: (this_STRING_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2130:5: this_STRING_0= RULE_STRING
+            {
+            this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTRANSLATABLESTRING4891); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_STRING_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                  newLeafNode(this_STRING_0, grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLEID"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2145:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
+    public final String entryRuleTRANSLATABLEID() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleTRANSLATABLEID = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2146:2: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2147:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLEID_in_entryRuleTRANSLATABLEID4936);
+            iv_ruleTRANSLATABLEID=ruleTRANSLATABLEID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTRANSLATABLEID.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLEID4947); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLEID"
+
+
+    // $ANTLR start "ruleTRANSLATABLEID"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2154:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    public final AntlrDatatypeRuleToken ruleTRANSLATABLEID() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_ID_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2157:28: (this_ID_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2158:5: this_ID_0= RULE_ID
+            {
+            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTRANSLATABLEID4986); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_ID_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                  newLeafNode(this_ID_0, grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTRANSLATABLEID"
+
+
+    // $ANTLR start "entryRuleXAnnotation"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2173:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
+    public final EObject entryRuleXAnnotation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotation = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2174:2: (iv_ruleXAnnotation= ruleXAnnotation EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2175:2: iv_ruleXAnnotation= ruleXAnnotation EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotation_in_entryRuleXAnnotation5030);
+            iv_ruleXAnnotation=ruleXAnnotation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotation; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotation5040); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotation"
+
+
+    // $ANTLR start "ruleXAnnotation"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2182:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
+    public final EObject ruleXAnnotation() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_8=null;
+        EObject lv_elementValuePairs_4_0 = null;
+
+        EObject lv_elementValuePairs_6_0 = null;
+
+        EObject lv_value_7_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2185:28: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2186:1: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2186:1: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2186:2: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2186:2: ()
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2187:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getXAnnotationAccess().getXAnnotationAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,68,FOLLOW_68_in_ruleXAnnotation5086); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2196:1: ( ( ruleQualifiedName ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2197:1: ( ruleQualifiedName )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2197:1: ( ruleQualifiedName )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2198:3: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getXAnnotationRule());
+              	        }
+                      
+            }
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_ruleXAnnotation5109);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2211:2: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==69) && (synpred2_InternalDataDSL())) {
+                alt38=1;
+            }
+            switch (alt38) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2211:3: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2211:3: ( ( '(' )=>otherlv_3= '(' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2211:4: ( '(' )=>otherlv_3= '('
+                    {
+                    otherlv_3=(Token)match(input,69,FOLLOW_69_in_ruleXAnnotation5130); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
+                          
+                    }
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2216:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
+                    int alt37=3;
+                    alt37 = dfa37.predict(input);
+                    switch (alt37) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2216:3: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2216:3: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2216:4: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2216:4: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2216:5: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2222:1: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2223:3: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAnnotationElementValuePair_in_ruleXAnnotation5174);
+                            lv_elementValuePairs_4_0=ruleXAnnotationElementValuePair();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+                              	        }
+                                     		add(
+                                     			current, 
+                                     			"elementValuePairs",
+                                      		lv_elementValuePairs_4_0, 
+                                      		"XAnnotationElementValuePair");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2239:2: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            loop36:
+                            do {
+                                int alt36=2;
+                                int LA36_0 = input.LA(1);
+
+                                if ( (LA36_0==70) ) {
+                                    alt36=1;
+                                }
+
+
+                                switch (alt36) {
+                            	case 1 :
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2239:4: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    {
+                            	    otherlv_5=(Token)match(input,70,FOLLOW_70_in_ruleXAnnotation5187); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	          	newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
+                            	          
+                            	    }
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2243:1: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2243:2: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    {
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2249:1: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2250:3: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+                            	       
+                            	      	        newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
+                            	      	    
+                            	    }
+                            	    pushFollow(FOLLOW_ruleXAnnotationElementValuePair_in_ruleXAnnotation5228);
+                            	    lv_elementValuePairs_6_0=ruleXAnnotationElementValuePair();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      	        if (current==null) {
+                            	      	            current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+                            	      	        }
+                            	             		add(
+                            	             			current, 
+                            	             			"elementValuePairs",
+                            	              		lv_elementValuePairs_6_0, 
+                            	              		"XAnnotationElementValuePair");
+                            	      	        afterParserOrEnumRuleCall();
+                            	      	    
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop36;
+                                }
+                            } while (true);
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2267:6: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2267:6: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2268:1: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2268:1: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2269:3: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAnnotationElementValueOrCommaList_in_ruleXAnnotation5258);
+                            lv_value_7_0=ruleXAnnotationElementValueOrCommaList();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+                              	        }
+                                     		set(
+                                     			current, 
+                                     			"value",
+                                      		lv_value_7_0, 
+                                      		"XAnnotationElementValueOrCommaList");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_8=(Token)match(input,71,FOLLOW_71_in_ruleXAnnotation5272); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotation"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValuePair"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2297:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
+    public final EObject entryRuleXAnnotationElementValuePair() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationElementValuePair = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2298:2: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2299:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValuePair_in_entryRuleXAnnotationElementValuePair5310);
+            iv_ruleXAnnotationElementValuePair=ruleXAnnotationElementValuePair();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationElementValuePair; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValuePair5320); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "ruleXAnnotationElementValuePair"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2306:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
+    public final EObject ruleXAnnotationElementValuePair() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        EObject lv_value_2_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2309:28: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2310:1: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2310:1: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2310:2: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2310:2: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2310:3: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2315:5: ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2315:6: ( ( ruleValidID ) ) otherlv_1= '='
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2315:6: ( ( ruleValidID ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2316:1: ( ruleValidID )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2316:1: ( ruleValidID )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2317:3: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getXAnnotationElementValuePairRule());
+              	        }
+                      
+            }
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleValidID_in_ruleXAnnotationElementValuePair5390);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,72,FOLLOW_72_in_ruleXAnnotationElementValuePair5402); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
+                  
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2334:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2335:1: (lv_value_2_0= ruleXAnnotationElementValue )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2335:1: (lv_value_2_0= ruleXAnnotationElementValue )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2336:3: lv_value_2_0= ruleXAnnotationElementValue
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValue_in_ruleXAnnotationElementValuePair5425);
+            lv_value_2_0=ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValuePairRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"value",
+                      		lv_value_2_0, 
+                      		"XAnnotationElementValue");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2360:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
+    public final EObject entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationElementValueOrCommaList = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2361:2: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2362:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValueOrCommaList_in_entryRuleXAnnotationElementValueOrCommaList5461);
+            iv_ruleXAnnotationElementValueOrCommaList=ruleXAnnotationElementValueOrCommaList();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationElementValueOrCommaList; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValueOrCommaList5471); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2369:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
+    public final EObject ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_9=null;
+        EObject lv_elements_3_0 = null;
+
+        EObject lv_elements_5_0 = null;
+
+        EObject this_XAnnotationOrExpression_7 = null;
+
+        EObject lv_elements_10_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2372:28: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2373:1: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2373:1: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            int alt43=2;
+            alt43 = dfa43.predict(input);
+            switch (alt43) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2373:2: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2373:2: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2373:3: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2373:3: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2373:4: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2376:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2376:6: () otherlv_1= '#' otherlv_2= '['
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2376:6: ()
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2377:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                              current = forceCreateModelElement(
+                                  grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0(),
+                                  current);
+                          
+                    }
+
+                    }
+
+                    otherlv_1=(Token)match(input,73,FOLLOW_73_in_ruleXAnnotationElementValueOrCommaList5536); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
+                          
+                    }
+                    otherlv_2=(Token)match(input,74,FOLLOW_74_in_ruleXAnnotationElementValueOrCommaList5548); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
+                          
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2390:3: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt40=2;
+                    int LA40_0 = input.LA(1);
+
+                    if ( ((LA40_0>=RULE_INT && LA40_0<=RULE_DECIMAL)||LA40_0==15||LA40_0==46||LA40_0==65||(LA40_0>=68 && LA40_0<=69)||(LA40_0>=73 && LA40_0<=74)||LA40_0==81||(LA40_0>=97 && LA40_0<=98)||LA40_0==102||LA40_0==109||LA40_0==111||(LA40_0>=115 && LA40_0<=116)||(LA40_0>=119 && LA40_0<=130)||LA40_0==132) ) {
+                        alt40=1;
+                    }
+                    switch (alt40) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2390:4: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2390:4: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2391:1: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2391:1: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2392:3: lv_elements_3_0= ruleXAnnotationOrExpression
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValueOrCommaList5572);
+                            lv_elements_3_0=ruleXAnnotationOrExpression();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+                              	        }
+                                     		add(
+                                     			current, 
+                                     			"elements",
+                                      		lv_elements_3_0, 
+                                      		"XAnnotationOrExpression");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2408:2: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop39:
+                            do {
+                                int alt39=2;
+                                int LA39_0 = input.LA(1);
+
+                                if ( (LA39_0==70) ) {
+                                    alt39=1;
+                                }
+
+
+                                switch (alt39) {
+                            	case 1 :
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2408:4: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    {
+                            	    otherlv_4=(Token)match(input,70,FOLLOW_70_in_ruleXAnnotationElementValueOrCommaList5585); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	          	newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
+                            	          
+                            	    }
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2412:1: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2413:1: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    {
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2413:1: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2414:3: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+                            	       
+                            	      	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+                            	      	    
+                            	    }
+                            	    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValueOrCommaList5606);
+                            	    lv_elements_5_0=ruleXAnnotationOrExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      	        if (current==null) {
+                            	      	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+                            	      	        }
+                            	             		add(
+                            	             			current, 
+                            	             			"elements",
+                            	              		lv_elements_5_0, 
+                            	              		"XAnnotationOrExpression");
+                            	      	        afterParserOrEnumRuleCall();
+                            	      	    
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop39;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_6=(Token)match(input,75,FOLLOW_75_in_ruleXAnnotationElementValueOrCommaList5622); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2435:6: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2435:6: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2436:5: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValueOrCommaList5652);
+                    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XAnnotationOrExpression_7; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2444:1: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    int alt42=2;
+                    int LA42_0 = input.LA(1);
+
+                    if ( (LA42_0==70) ) {
+                        alt42=1;
+                    }
+                    switch (alt42) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2444:2: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2444:2: ()
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2445:5: 
+                            {
+                            if ( state.backtracking==0 ) {
+
+                                      current = forceCreateModelElementAndAdd(
+                                          grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0(),
+                                          current);
+                                  
+                            }
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2450:2: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            int cnt41=0;
+                            loop41:
+                            do {
+                                int alt41=2;
+                                int LA41_0 = input.LA(1);
+
+                                if ( (LA41_0==70) ) {
+                                    alt41=1;
+                                }
+
+
+                                switch (alt41) {
+                            	case 1 :
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2450:4: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    {
+                            	    otherlv_9=(Token)match(input,70,FOLLOW_70_in_ruleXAnnotationElementValueOrCommaList5674); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	          	newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
+                            	          
+                            	    }
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2454:1: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2455:1: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    {
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2455:1: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2456:3: lv_elements_10_0= ruleXAnnotationOrExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+                            	       
+                            	      	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
+                            	      	    
+                            	    }
+                            	    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValueOrCommaList5695);
+                            	    lv_elements_10_0=ruleXAnnotationOrExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      	        if (current==null) {
+                            	      	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+                            	      	        }
+                            	             		add(
+                            	             			current, 
+                            	             			"elements",
+                            	              		lv_elements_10_0, 
+                            	              		"XAnnotationOrExpression");
+                            	      	        afterParserOrEnumRuleCall();
+                            	      	    
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    if ( cnt41 >= 1 ) break loop41;
+                            	    if (state.backtracking>0) {state.failed=true; return current;}
+                                        EarlyExitException eee =
+                                            new EarlyExitException(41, input);
+                                        throw eee;
+                                }
+                                cnt41++;
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValue"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2480:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
+    public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationElementValue = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2481:2: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2482:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValue_in_entryRuleXAnnotationElementValue5736);
+            iv_ruleXAnnotationElementValue=ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationElementValue; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValue5746); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValue"
+
+
+    // $ANTLR start "ruleXAnnotationElementValue"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2489:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
+    public final EObject ruleXAnnotationElementValue() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_elements_3_0 = null;
+
+        EObject lv_elements_5_0 = null;
+
+        EObject this_XAnnotationOrExpression_7 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2492:28: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2493:1: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2493:1: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            int alt46=2;
+            alt46 = dfa46.predict(input);
+            switch (alt46) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2493:2: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2493:2: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2493:3: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2493:3: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2493:4: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2496:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2496:6: () otherlv_1= '#' otherlv_2= '['
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2496:6: ()
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2497:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                              current = forceCreateModelElement(
+                                  grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0(),
+                                  current);
+                          
+                    }
+
+                    }
+
+                    otherlv_1=(Token)match(input,73,FOLLOW_73_in_ruleXAnnotationElementValue5811); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
+                          
+                    }
+                    otherlv_2=(Token)match(input,74,FOLLOW_74_in_ruleXAnnotationElementValue5823); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
+                          
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2510:3: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt45=2;
+                    int LA45_0 = input.LA(1);
+
+                    if ( ((LA45_0>=RULE_INT && LA45_0<=RULE_DECIMAL)||LA45_0==15||LA45_0==46||LA45_0==65||(LA45_0>=68 && LA45_0<=69)||(LA45_0>=73 && LA45_0<=74)||LA45_0==81||(LA45_0>=97 && LA45_0<=98)||LA45_0==102||LA45_0==109||LA45_0==111||(LA45_0>=115 && LA45_0<=116)||(LA45_0>=119 && LA45_0<=130)||LA45_0==132) ) {
+                        alt45=1;
+                    }
+                    switch (alt45) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2510:4: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2510:4: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2511:1: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2511:1: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2512:3: lv_elements_3_0= ruleXAnnotationOrExpression
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValue5847);
+                            lv_elements_3_0=ruleXAnnotationOrExpression();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+                              	        }
+                                     		add(
+                                     			current, 
+                                     			"elements",
+                                      		lv_elements_3_0, 
+                                      		"XAnnotationOrExpression");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2528:2: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop44:
+                            do {
+                                int alt44=2;
+                                int LA44_0 = input.LA(1);
+
+                                if ( (LA44_0==70) ) {
+                                    alt44=1;
+                                }
+
+
+                                switch (alt44) {
+                            	case 1 :
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2528:4: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    {
+                            	    otherlv_4=(Token)match(input,70,FOLLOW_70_in_ruleXAnnotationElementValue5860); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	          	newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
+                            	          
+                            	    }
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2532:1: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2533:1: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    {
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2533:1: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2534:3: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+                            	       
+                            	      	        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+                            	      	    
+                            	    }
+                            	    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValue5881);
+                            	    lv_elements_5_0=ruleXAnnotationOrExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      	        if (current==null) {
+                            	      	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+                            	      	        }
+                            	             		add(
+                            	             			current, 
+                            	             			"elements",
+                            	              		lv_elements_5_0, 
+                            	              		"XAnnotationOrExpression");
+                            	      	        afterParserOrEnumRuleCall();
+                            	      	    
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop44;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_6=(Token)match(input,75,FOLLOW_75_in_ruleXAnnotationElementValue5897); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2556:5: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValue5926);
+                    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XAnnotationOrExpression_7; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationElementValue"
+
+
+    // $ANTLR start "entryRuleXAnnotationOrExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2572:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
+    public final EObject entryRuleXAnnotationOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationOrExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2573:2: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2574:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_entryRuleXAnnotationOrExpression5961);
+            iv_ruleXAnnotationOrExpression=ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationOrExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationOrExpression5971); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationOrExpression"
+
+
+    // $ANTLR start "ruleXAnnotationOrExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2581:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
+    public final EObject ruleXAnnotationOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAnnotation_0 = null;
+
+        EObject this_XExpression_1 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2584:28: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2585:1: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2585:1: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
+
+            if ( (LA47_0==68) ) {
+                alt47=1;
+            }
+            else if ( ((LA47_0>=RULE_INT && LA47_0<=RULE_DECIMAL)||LA47_0==15||LA47_0==46||LA47_0==65||LA47_0==69||(LA47_0>=73 && LA47_0<=74)||LA47_0==81||(LA47_0>=97 && LA47_0<=98)||LA47_0==102||LA47_0==109||LA47_0==111||(LA47_0>=115 && LA47_0<=116)||(LA47_0>=119 && LA47_0<=130)||LA47_0==132) ) {
+                alt47=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 47, 0, input);
+
+                throw nvae;
+            }
+            switch (alt47) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2586:5: this_XAnnotation_0= ruleXAnnotation
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotation_in_ruleXAnnotationOrExpression6018);
+                    this_XAnnotation_0=ruleXAnnotation();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XAnnotation_0; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2596:5: this_XExpression_1= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXExpression_in_ruleXAnnotationOrExpression6045);
+                    this_XExpression_1=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XExpression_1; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationOrExpression"
+
+
+    // $ANTLR start "entryRuleXExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2612:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+    public final EObject entryRuleXExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2613:2: (iv_ruleXExpression= ruleXExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2614:2: iv_ruleXExpression= ruleXExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXExpression_in_entryRuleXExpression6080);
+            iv_ruleXExpression=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpression6090); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXExpression"
+
+
+    // $ANTLR start "ruleXExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2621:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+    public final EObject ruleXExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAssignment_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2624:28: (this_XAssignment_0= ruleXAssignment )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2626:5: this_XAssignment_0= ruleXAssignment
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXAssignment_in_ruleXExpression6136);
+            this_XAssignment_0=ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XAssignment_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXExpression"
+
+
+    // $ANTLR start "entryRuleXAssignment"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2642:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+    public final EObject entryRuleXAssignment() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAssignment = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2643:2: (iv_ruleXAssignment= ruleXAssignment EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2644:2: iv_ruleXAssignment= ruleXAssignment EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAssignmentRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAssignment_in_entryRuleXAssignment6170);
+            iv_ruleXAssignment=ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAssignment; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAssignment6180); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAssignment"
+
+
+    // $ANTLR start "ruleXAssignment"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2651:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
+    public final EObject ruleXAssignment() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_value_3_0 = null;
+
+        EObject this_XOrExpression_4 = null;
+
+        EObject lv_rightOperand_7_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2654:28: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2655:1: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2655:1: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            int alt49=2;
+            switch ( input.LA(1) ) {
+            case RULE_ID:
+                {
+                int LA49_1 = input.LA(2);
+
+                if ( (LA49_1==EOF||(LA49_1>=RULE_INT && LA49_1<=RULE_DECIMAL)||(LA49_1>=15 && LA49_1<=16)||LA49_1==46||LA49_1==62||(LA49_1>=65 && LA49_1<=67)||(LA49_1>=69 && LA49_1<=71)||(LA49_1>=73 && LA49_1<=106)||(LA49_1>=108 && LA49_1<=133)) ) {
+                    alt49=2;
+                }
+                else if ( (LA49_1==72) ) {
+                    alt49=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 49, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 119:
+                {
+                int LA49_2 = input.LA(2);
+
+                if ( (LA49_2==EOF||(LA49_2>=RULE_INT && LA49_2<=RULE_DECIMAL)||(LA49_2>=15 && LA49_2<=16)||LA49_2==46||LA49_2==62||(LA49_2>=65 && LA49_2<=67)||(LA49_2>=69 && LA49_2<=71)||(LA49_2>=73 && LA49_2<=106)||(LA49_2>=108 && LA49_2<=133)) ) {
+                    alt49=2;
+                }
+                else if ( (LA49_2==72) ) {
+                    alt49=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 49, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 120:
+                {
+                int LA49_3 = input.LA(2);
+
+                if ( (LA49_3==EOF||(LA49_3>=RULE_INT && LA49_3<=RULE_DECIMAL)||(LA49_3>=15 && LA49_3<=16)||LA49_3==46||LA49_3==62||(LA49_3>=65 && LA49_3<=67)||(LA49_3>=69 && LA49_3<=71)||(LA49_3>=73 && LA49_3<=106)||(LA49_3>=108 && LA49_3<=133)) ) {
+                    alt49=2;
+                }
+                else if ( (LA49_3==72) ) {
+                    alt49=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 49, 3, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 65:
+                {
+                int LA49_4 = input.LA(2);
+
+                if ( (LA49_4==EOF||(LA49_4>=RULE_INT && LA49_4<=RULE_DECIMAL)||(LA49_4>=15 && LA49_4<=16)||LA49_4==46||LA49_4==62||(LA49_4>=65 && LA49_4<=67)||(LA49_4>=69 && LA49_4<=71)||(LA49_4>=73 && LA49_4<=106)||(LA49_4>=108 && LA49_4<=133)) ) {
+                    alt49=2;
+                }
+                else if ( (LA49_4==72) ) {
+                    alt49=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 49, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 121:
+                {
+                int LA49_5 = input.LA(2);
+
+                if ( (LA49_5==EOF||(LA49_5>=RULE_INT && LA49_5<=RULE_DECIMAL)||(LA49_5>=15 && LA49_5<=16)||LA49_5==46||LA49_5==62||(LA49_5>=65 && LA49_5<=67)||(LA49_5>=69 && LA49_5<=71)||(LA49_5>=73 && LA49_5<=106)||(LA49_5>=108 && LA49_5<=133)) ) {
+                    alt49=2;
+                }
+                else if ( (LA49_5==72) ) {
+                    alt49=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 49, 5, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case RULE_INT:
+            case RULE_STRING:
+            case RULE_HEX:
+            case RULE_DECIMAL:
+            case 15:
+            case 46:
+            case 69:
+            case 73:
+            case 74:
+            case 81:
+            case 97:
+            case 98:
+            case 102:
+            case 109:
+            case 111:
+            case 115:
+            case 116:
+            case 122:
+            case 123:
+            case 124:
+            case 125:
+            case 126:
+            case 127:
+            case 128:
+            case 129:
+            case 130:
+            case 132:
+                {
+                alt49=2;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 49, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt49) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2655:2: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2655:2: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2655:3: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2655:3: ()
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2656:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                              current = forceCreateModelElement(
+                                  grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0(),
+                                  current);
+                          
+                    }
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2661:2: ( ( ruleFeatureCallID ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2662:1: ( ruleFeatureCallID )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2662:1: ( ruleFeatureCallID )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2663:3: ruleFeatureCallID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getXAssignmentRule());
+                      	        }
+                              
+                    }
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleFeatureCallID_in_ruleXAssignment6238);
+                    ruleFeatureCallID();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleOpSingleAssign_in_ruleXAssignment6254);
+                    ruleOpSingleAssign();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2684:1: ( (lv_value_3_0= ruleXAssignment ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2685:1: (lv_value_3_0= ruleXAssignment )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2685:1: (lv_value_3_0= ruleXAssignment )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2686:3: lv_value_3_0= ruleXAssignment
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleXAssignment_in_ruleXAssignment6274);
+                    lv_value_3_0=ruleXAssignment();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"value",
+                              		lv_value_3_0, 
+                              		"XAssignment");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2703:6: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2703:6: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2704:5: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXOrExpression_in_ruleXAssignment6304);
+                    this_XOrExpression_4=ruleXOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XOrExpression_4; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2712:1: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    int alt48=2;
+                    alt48 = dfa48.predict(input);
+                    switch (alt48) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2712:2: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2712:2: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2712:3: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2717:6: ( () ( ( ruleOpMultiAssign ) ) )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2717:7: () ( ( ruleOpMultiAssign ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2717:7: ()
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2718:5: 
+                            {
+                            if ( state.backtracking==0 ) {
+
+                                      current = forceCreateModelElementAndSet(
+                                          grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+                                          current);
+                                  
+                            }
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2723:2: ( ( ruleOpMultiAssign ) )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2724:1: ( ruleOpMultiAssign )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2724:1: ( ruleOpMultiAssign )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2725:3: ruleOpMultiAssign
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              			if (current==null) {
+                              	            current = createModelElement(grammarAccess.getXAssignmentRule());
+                              	        }
+                                      
+                            }
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleOpMultiAssign_in_ruleXAssignment6357);
+                            ruleOpMultiAssign();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+                               
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2738:4: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2739:1: (lv_rightOperand_7_0= ruleXAssignment )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2739:1: (lv_rightOperand_7_0= ruleXAssignment )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2740:3: lv_rightOperand_7_0= ruleXAssignment
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAssignment_in_ruleXAssignment6380);
+                            lv_rightOperand_7_0=ruleXAssignment();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+                              	        }
+                                     		set(
+                                     			current, 
+                                     			"rightOperand",
+                                      		lv_rightOperand_7_0, 
+                                      		"XAssignment");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAssignment"
+
+
+    // $ANTLR start "entryRuleOpSingleAssign"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2764:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+    public final String entryRuleOpSingleAssign() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpSingleAssign = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2765:2: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2766:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpSingleAssignRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign6420);
+            iv_ruleOpSingleAssign=ruleOpSingleAssign();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpSingleAssign.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpSingleAssign6431); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpSingleAssign"
+
+
+    // $ANTLR start "ruleOpSingleAssign"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2773:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+    public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2776:28: (kw= '=' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2778:2: kw= '='
+            {
+            kw=(Token)match(input,72,FOLLOW_72_in_ruleOpSingleAssign6468); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                      current.merge(kw);
+                      newLeafNode(kw, grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpSingleAssign"
+
+
+    // $ANTLR start "entryRuleOpMultiAssign"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2791:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+    public final String entryRuleOpMultiAssign() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpMultiAssign = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2792:2: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2793:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpMultiAssignRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign6508);
+            iv_ruleOpMultiAssign=ruleOpMultiAssign();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpMultiAssign.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpMultiAssign6519); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpMultiAssign"
+
+
+    // $ANTLR start "ruleOpMultiAssign"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2800:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
+    public final AntlrDatatypeRuleToken ruleOpMultiAssign() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2803:28: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2804:1: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2804:1: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            int alt51=7;
+            switch ( input.LA(1) ) {
+            case 76:
+                {
+                alt51=1;
+                }
+                break;
+            case 77:
+                {
+                alt51=2;
+                }
+                break;
+            case 78:
+                {
+                alt51=3;
+                }
+                break;
+            case 79:
+                {
+                alt51=4;
+                }
+                break;
+            case 80:
+                {
+                alt51=5;
+                }
+                break;
+            case 81:
+                {
+                alt51=6;
+                }
+                break;
+            case 82:
+                {
+                alt51=7;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 51, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt51) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2805:2: kw= '+='
+                    {
+                    kw=(Token)match(input,76,FOLLOW_76_in_ruleOpMultiAssign6557); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2812:2: kw= '-='
+                    {
+                    kw=(Token)match(input,77,FOLLOW_77_in_ruleOpMultiAssign6576); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2819:2: kw= '*='
+                    {
+                    kw=(Token)match(input,78,FOLLOW_78_in_ruleOpMultiAssign6595); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2826:2: kw= '/='
+                    {
+                    kw=(Token)match(input,79,FOLLOW_79_in_ruleOpMultiAssign6614); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2833:2: kw= '%='
+                    {
+                    kw=(Token)match(input,80,FOLLOW_80_in_ruleOpMultiAssign6633); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2839:6: (kw= '<' kw= '<' kw= '=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2839:6: (kw= '<' kw= '<' kw= '=' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2840:2: kw= '<' kw= '<' kw= '='
+                    {
+                    kw=(Token)match(input,81,FOLLOW_81_in_ruleOpMultiAssign6653); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
+                          
+                    }
+                    kw=(Token)match(input,81,FOLLOW_81_in_ruleOpMultiAssign6666); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
+                          
+                    }
+                    kw=(Token)match(input,72,FOLLOW_72_in_ruleOpMultiAssign6679); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2858:6: (kw= '>' (kw= '>' )? kw= '>=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2858:6: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2859:2: kw= '>' (kw= '>' )? kw= '>='
+                    {
+                    kw=(Token)match(input,82,FOLLOW_82_in_ruleOpMultiAssign6700); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2864:1: (kw= '>' )?
+                    int alt50=2;
+                    int LA50_0 = input.LA(1);
+
+                    if ( (LA50_0==82) ) {
+                        alt50=1;
+                    }
+                    switch (alt50) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2865:2: kw= '>'
+                            {
+                            kw=(Token)match(input,82,FOLLOW_82_in_ruleOpMultiAssign6714); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
+                                  
+                            }
+
+                            }
+                            break;
+
+                    }
+
+                    kw=(Token)match(input,83,FOLLOW_83_in_ruleOpMultiAssign6729); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpMultiAssign"
+
+
+    // $ANTLR start "entryRuleXOrExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2884:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+    public final EObject entryRuleXOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXOrExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2885:2: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2886:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression6770);
+            iv_ruleXOrExpression=ruleXOrExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXOrExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXOrExpression6780); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXOrExpression"
+
+
+    // $ANTLR start "ruleXOrExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2893:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+    public final EObject ruleXOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAndExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2896:28: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2897:1: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2897:1: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2898:5: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXAndExpression_in_ruleXOrExpression6827);
+            this_XAndExpression_0=ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XAndExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2906:1: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            loop52:
+            do {
+                int alt52=2;
+                int LA52_0 = input.LA(1);
+
+                if ( (LA52_0==84) ) {
+                    int LA52_2 = input.LA(2);
+
+                    if ( (synpred9_InternalDataDSL()) ) {
+                        alt52=1;
+                    }
+
+
+                }
+
+
+                switch (alt52) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2906:2: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2906:2: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2906:3: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2911:6: ( () ( ( ruleOpOr ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2911:7: () ( ( ruleOpOr ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2911:7: ()
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2912:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2917:2: ( ( ruleOpOr ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2918:1: ( ruleOpOr )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2918:1: ( ruleOpOr )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2919:3: ruleOpOr
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXOrExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpOr_in_ruleXOrExpression6880);
+            	    ruleOpOr();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2932:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2933:1: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2933:1: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2934:3: lv_rightOperand_3_0= ruleXAndExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXAndExpression_in_ruleXOrExpression6903);
+            	    lv_rightOperand_3_0=ruleXAndExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXOrExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XAndExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop52;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXOrExpression"
+
+
+    // $ANTLR start "entryRuleOpOr"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2958:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+    public final String entryRuleOpOr() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpOr = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2959:2: (iv_ruleOpOr= ruleOpOr EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2960:2: iv_ruleOpOr= ruleOpOr EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpOrRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpOr_in_entryRuleOpOr6942);
+            iv_ruleOpOr=ruleOpOr();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpOr.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOr6953); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpOr"
+
+
+    // $ANTLR start "ruleOpOr"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2967:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+    public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2970:28: (kw= '||' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2972:2: kw= '||'
+            {
+            kw=(Token)match(input,84,FOLLOW_84_in_ruleOpOr6990); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                      current.merge(kw);
+                      newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpOr"
+
+
+    // $ANTLR start "entryRuleXAndExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2985:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+    public final EObject entryRuleXAndExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAndExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2986:2: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2987:2: iv_ruleXAndExpression= ruleXAndExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAndExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression7029);
+            iv_ruleXAndExpression=ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAndExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAndExpression7039); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAndExpression"
+
+
+    // $ANTLR start "ruleXAndExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2994:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
+    public final EObject ruleXAndExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XEqualityExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2997:28: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2998:1: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2998:1: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:2999:5: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXEqualityExpression_in_ruleXAndExpression7086);
+            this_XEqualityExpression_0=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XEqualityExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3007:1: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            loop53:
+            do {
+                int alt53=2;
+                int LA53_0 = input.LA(1);
+
+                if ( (LA53_0==85) ) {
+                    int LA53_2 = input.LA(2);
+
+                    if ( (synpred10_InternalDataDSL()) ) {
+                        alt53=1;
+                    }
+
+
+                }
+
+
+                switch (alt53) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3007:2: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3007:2: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3007:3: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3012:6: ( () ( ( ruleOpAnd ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3012:7: () ( ( ruleOpAnd ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3012:7: ()
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3013:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3018:2: ( ( ruleOpAnd ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3019:1: ( ruleOpAnd )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3019:1: ( ruleOpAnd )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3020:3: ruleOpAnd
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXAndExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpAnd_in_ruleXAndExpression7139);
+            	    ruleOpAnd();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3033:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3034:1: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3034:1: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3035:3: lv_rightOperand_3_0= ruleXEqualityExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXEqualityExpression_in_ruleXAndExpression7162);
+            	    lv_rightOperand_3_0=ruleXEqualityExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XEqualityExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop53;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAndExpression"
+
+
+    // $ANTLR start "entryRuleOpAnd"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3059:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+    public final String entryRuleOpAnd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3060:2: (iv_ruleOpAnd= ruleOpAnd EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3061:2: iv_ruleOpAnd= ruleOpAnd EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpAndRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpAnd_in_entryRuleOpAnd7201);
+            iv_ruleOpAnd=ruleOpAnd();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpAnd.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpAnd7212); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpAnd"
+
+
+    // $ANTLR start "ruleOpAnd"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3068:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3071:28: (kw= '&&' )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3073:2: kw= '&&'
+            {
+            kw=(Token)match(input,85,FOLLOW_85_in_ruleOpAnd7249); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                      current.merge(kw);
+                      newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAnd"
+
+
+    // $ANTLR start "entryRuleXEqualityExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3086:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXEqualityExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3087:2: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3088:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression7288);
+            iv_ruleXEqualityExpression=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXEqualityExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXEqualityExpression7298); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXEqualityExpression"
+
+
+    // $ANTLR start "ruleXEqualityExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3095:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
+    public final EObject ruleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XRelationalExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3098:28: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3099:1: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3099:1: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3100:5: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXRelationalExpression_in_ruleXEqualityExpression7345);
+            this_XRelationalExpression_0=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XRelationalExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3108:1: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            loop54:
+            do {
+                int alt54=2;
+                switch ( input.LA(1) ) {
+                case 86:
+                    {
+                    int LA54_2 = input.LA(2);
+
+                    if ( (synpred11_InternalDataDSL()) ) {
+                        alt54=1;
+                    }
+
+
+                    }
+                    break;
+                case 87:
+                    {
+                    int LA54_3 = input.LA(2);
+
+                    if ( (synpred11_InternalDataDSL()) ) {
+                        alt54=1;
+                    }
+
+
+                    }
+                    break;
+                case 88:
+                    {
+                    int LA54_4 = input.LA(2);
+
+                    if ( (synpred11_InternalDataDSL()) ) {
+                        alt54=1;
+                    }
+
+
+                    }
+                    break;
+                case 89:
+                    {
+                    int LA54_5 = input.LA(2);
+
+                    if ( (synpred11_InternalDataDSL()) ) {
+                        alt54=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt54) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3108:2: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3108:2: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3108:3: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3113:6: ( () ( ( ruleOpEquality ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3113:7: () ( ( ruleOpEquality ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3113:7: ()
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3114:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3119:2: ( ( ruleOpEquality ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3120:1: ( ruleOpEquality )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3120:1: ( ruleOpEquality )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3121:3: ruleOpEquality
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpEquality_in_ruleXEqualityExpression7398);
+            	    ruleOpEquality();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3134:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3135:1: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3135:1: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3136:3: lv_rightOperand_3_0= ruleXRelationalExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXRelationalExpression_in_ruleXEqualityExpression7421);
+            	    lv_rightOperand_3_0=ruleXRelationalExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XRelationalExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop54;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXEqualityExpression"
+
+
+    // $ANTLR start "entryRuleOpEquality"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3160:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+    public final String entryRuleOpEquality() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpEquality = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3161:2: (iv_ruleOpEquality= ruleOpEquality EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3162:2: iv_ruleOpEquality= ruleOpEquality EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpEqualityRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpEquality_in_entryRuleOpEquality7460);
+            iv_ruleOpEquality=ruleOpEquality();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpEquality.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpEquality7471); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpEquality"
+
+
+    // $ANTLR start "ruleOpEquality"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3169:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+    public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3172:28: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3173:1: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3173:1: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            int alt55=4;
+            switch ( input.LA(1) ) {
+            case 86:
+                {
+                alt55=1;
+                }
+                break;
+            case 87:
+                {
+                alt55=2;
+                }
+                break;
+            case 88:
+                {
+                alt55=3;
+                }
+                break;
+            case 89:
+                {
+                alt55=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 55, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt55) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3174:2: kw= '=='
+                    {
+                    kw=(Token)match(input,86,FOLLOW_86_in_ruleOpEquality7509); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3181:2: kw= '!='
+                    {
+                    kw=(Token)match(input,87,FOLLOW_87_in_ruleOpEquality7528); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3188:2: kw= '==='
+                    {
+                    kw=(Token)match(input,88,FOLLOW_88_in_ruleOpEquality7547); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3195:2: kw= '!=='
+                    {
+                    kw=(Token)match(input,89,FOLLOW_89_in_ruleOpEquality7566); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpEquality"
+
+
+    // $ANTLR start "entryRuleXRelationalExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3208:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+    public final EObject entryRuleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXRelationalExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3209:2: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3210:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression7606);
+            iv_ruleXRelationalExpression=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXRelationalExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXRelationalExpression7616); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXRelationalExpression"
+
+
+    // $ANTLR start "ruleXRelationalExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3217:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
+    public final EObject ruleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        EObject this_XOtherOperatorExpression_0 = null;
+
+        EObject lv_type_3_0 = null;
+
+        EObject lv_rightOperand_6_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3220:28: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3221:1: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3221:1: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3222:5: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_ruleXRelationalExpression7663);
+            this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XOtherOperatorExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3230:1: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            loop56:
+            do {
+                int alt56=3;
+                switch ( input.LA(1) ) {
+                case 81:
+                    {
+                    int LA56_2 = input.LA(2);
+
+                    if ( (synpred13_InternalDataDSL()) ) {
+                        alt56=2;
+                    }
+
+
+                    }
+                    break;
+                case 82:
+                    {
+                    int LA56_3 = input.LA(2);
+
+                    if ( (synpred13_InternalDataDSL()) ) {
+                        alt56=2;
+                    }
+
+
+                    }
+                    break;
+                case 90:
+                    {
+                    int LA56_4 = input.LA(2);
+
+                    if ( (synpred12_InternalDataDSL()) ) {
+                        alt56=1;
+                    }
+
+
+                    }
+                    break;
+                case 83:
+                    {
+                    int LA56_5 = input.LA(2);
+
+                    if ( (synpred13_InternalDataDSL()) ) {
+                        alt56=2;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt56) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3230:2: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3230:2: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3230:3: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3230:3: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3230:4: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3232:5: ( () otherlv_2= 'instanceof' )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3232:6: () otherlv_2= 'instanceof'
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3232:6: ()
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3233:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    otherlv_2=(Token)match(input,90,FOLLOW_90_in_ruleXRelationalExpression7699); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+            	          
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3242:3: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3243:1: (lv_type_3_0= ruleJvmTypeReference )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3243:1: (lv_type_3_0= ruleJvmTypeReference )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3244:3: lv_type_3_0= ruleJvmTypeReference
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXRelationalExpression7722);
+            	    lv_type_3_0=ruleJvmTypeReference();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"type",
+            	              		lv_type_3_0, 
+            	              		"JvmTypeReference");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3261:6: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3261:6: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3261:7: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3261:7: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3261:8: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3266:6: ( () ( ( ruleOpCompare ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3266:7: () ( ( ruleOpCompare ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3266:7: ()
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3267:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3272:2: ( ( ruleOpCompare ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3273:1: ( ruleOpCompare )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3273:1: ( ruleOpCompare )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3274:3: ruleOpCompare
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpCompare_in_ruleXRelationalExpression7783);
+            	    ruleOpCompare();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3287:4: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3288:1: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3288:1: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3289:3: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_ruleXRelationalExpression7806);
+            	    lv_rightOperand_6_0=ruleXOtherOperatorExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_6_0, 
+            	              		"XOtherOperatorExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop56;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXRelationalExpression"
+
+
+    // $ANTLR start "entryRuleOpCompare"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3313:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+    public final String entryRuleOpCompare() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpCompare = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3314:2: (iv_ruleOpCompare= ruleOpCompare EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3315:2: iv_ruleOpCompare= ruleOpCompare EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpCompareRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpCompare_in_entryRuleOpCompare7846);
+            iv_ruleOpCompare=ruleOpCompare();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpCompare.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpCompare7857); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpCompare"
+
+
+    // $ANTLR start "ruleOpCompare"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3322:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
+    public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3325:28: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3326:1: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3326:1: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            int alt57=4;
+            switch ( input.LA(1) ) {
+            case 83:
+                {
+                alt57=1;
+                }
+                break;
+            case 81:
+                {
+                int LA57_2 = input.LA(2);
+
+                if ( (LA57_2==EOF||(LA57_2>=RULE_INT && LA57_2<=RULE_DECIMAL)||LA57_2==15||LA57_2==46||LA57_2==65||LA57_2==69||(LA57_2>=73 && LA57_2<=74)||LA57_2==81||(LA57_2>=97 && LA57_2<=98)||LA57_2==102||LA57_2==109||LA57_2==111||(LA57_2>=115 && LA57_2<=116)||(LA57_2>=119 && LA57_2<=130)||LA57_2==132) ) {
+                    alt57=4;
+                }
+                else if ( (LA57_2==72) ) {
+                    alt57=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 57, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 82:
+                {
+                alt57=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 57, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt57) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3327:2: kw= '>='
+                    {
+                    kw=(Token)match(input,83,FOLLOW_83_in_ruleOpCompare7895); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3333:6: (kw= '<' kw= '=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3333:6: (kw= '<' kw= '=' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3334:2: kw= '<' kw= '='
+                    {
+                    kw=(Token)match(input,81,FOLLOW_81_in_ruleOpCompare7915); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
+                          
+                    }
+                    kw=(Token)match(input,72,FOLLOW_72_in_ruleOpCompare7928); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3347:2: kw= '>'
+                    {
+                    kw=(Token)match(input,82,FOLLOW_82_in_ruleOpCompare7948); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3354:2: kw= '<'
+                    {
+                    kw=(Token)match(input,81,FOLLOW_81_in_ruleOpCompare7967); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpCompare"
+
+
+    // $ANTLR start "entryRuleXOtherOperatorExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3367:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+    public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXOtherOperatorExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3368:2: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3369:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression8007);
+            iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXOtherOperatorExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXOtherOperatorExpression8017); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+    // $ANTLR start "ruleXOtherOperatorExpression"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3376:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
+    public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAdditiveExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3379:28: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3380:1: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3380:1: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3381:5: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXAdditiveExpression_in_ruleXOtherOperatorExpression8064);
+            this_XAdditiveExpression_0=ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XAdditiveExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3389:1: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            loop58:
+            do {
+                int alt58=2;
+                alt58 = dfa58.predict(input);
+                switch (alt58) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3389:2: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3389:2: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3389:3: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3394:6: ( () ( ( ruleOpOther ) ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3394:7: () ( ( ruleOpOther ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3394:7: ()
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3395:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3400:2: ( ( ruleOpOther ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3401:1: ( ruleOpOther )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3401:1: ( ruleOpOther )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3402:3: ruleOpOther
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpOther_in_ruleXOtherOperatorExpression8117);
+            	    ruleOpOther();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3415:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3416:1: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3416:1: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3417:3: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXAdditiveExpression_in_ruleXOtherOperatorExpression8140);
+            	    lv_rightOperand_3_0=ruleXAdditiveExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XAdditiveExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop58;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXOtherOperatorExpression"
+
+
+    // $ANTLR start "entryRuleOpOther"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3441:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+    public final String entryRuleOpOther() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpOther = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3442:2: (iv_ruleOpOther= ruleOpOther EOF )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3443:2: iv_ruleOpOther= ruleOpOther EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpOtherRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpOther_in_entryRuleOpOther8179);
+            iv_ruleOpOther=ruleOpOther();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpOther.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOther8190); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpOther"
+
+
+    // $ANTLR start "ruleOpOther"
+    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3450:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
+    public final AntlrDatatypeRuleToken ruleOpOther() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3453:28: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3454:1: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            {
+            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3454:1: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            int alt61=9;
+            alt61 = dfa61.predict(input);
+            switch (alt61) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3455:2: kw= '->'
+                    {
+                    kw=(Token)match(input,91,FOLLOW_91_in_ruleOpOther8228); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3462:2: kw= '..<'
+                    {
+                    kw=(Token)match(input,92,FOLLOW_92_in_ruleOpOther8247); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3468:6: (kw= '>' kw= '..' )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3468:6: (kw= '>' kw= '..' )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3469:2: kw= '>' kw= '..'
+                    {
+                    kw=(Token)match(input,82,FOLLOW_82_in_ruleOpOther8267); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
+                          
+                    }
+                    kw=(Token)match(input,93,FOLLOW_93_in_ruleOpOther8280); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3482:2: kw= '..'
+                    {
+                    kw=(Token)match(input,93,FOLLOW_93_in_ruleOpOther8300); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3489:2: kw= '=>'
+                    {
+                    kw=(Token)match(input,94,FOLLOW_94_in_ruleOpOther8319); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3495:6: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3495:6: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3496:2: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    {
+                    kw=(Token)match(input,82,FOLLOW_82_in_ruleOpOther8339); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3501:1: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    int alt59=2;
+                    int LA59_0 = input.LA(1);
+
+                    if ( (LA59_0==82) ) {
+                        int LA59_1 = input.LA(2);
+
+                        if ( (LA59_1==82) && (synpred15_InternalDataDSL())) {
+                            alt59=1;
+                        }
+                        else if ( (LA59_1==EOF||(LA59_1>=RULE_INT && LA59_1<=RULE_DECIMAL)||LA59_1==15||LA59_1==46||LA59_1==65||LA59_1==69||(LA59_1>=73 && LA59_1<=74)||LA59_1==81||(LA59_1>=97 && LA59_1<=98)||LA59_1==102||LA59_1==109||LA59_1==111||(LA59_1>=115 && LA59_1<=116)||(LA59_1>=119 && LA59_1<=130)||LA59_1==132) ) {
+                            alt59=2;
+                        }
+                        else {
+                            if (state.backtracking>0) {state.failed=true; return current;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("", 59, 1, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 59, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt59) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3501:2: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3501:2: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3501:3: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+                            {
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3505:5: (kw= '>' kw= '>' )
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3506:2: kw= '>' kw= '>'
+                            {
+                            kw=(Token)match(input,82,FOLLOW_82_in_ruleOpOther8370); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
+                                  
+                            }
+                            kw=(Token)match(input,82,FOLLOW_82_in_ruleOpOther8383); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
+                                  
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // ../org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/parser/antlr/internal/InternalDataDSL.g:3519:2: kw= '>'
+                            {
+                            kw=(Token)match(input,82,FOLLOW_82_in_ruleOpOther8404); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
+                                  
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/serializer/DataDSLSemanticSequencer.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/serializer/DataDSLSemanticSequencer.java
new file mode 100644
index 0000000..cceff5c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/serializer/DataDSLSemanticSequencer.java
@@ -0,0 +1,1668 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.serializer;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.dsl.semantic.common.types.LImport;
+import org.eclipse.osbp.dsl.semantic.common.types.OSBPTypesPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeModel;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression;
+import org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess;
+import org.eclipse.xtext.common.types.JvmFormalParameter;
+import org.eclipse.xtext.common.types.JvmGenericArrayTypeReference;
+import org.eclipse.xtext.common.types.JvmInnerTypeReference;
+import org.eclipse.xtext.common.types.JvmLowerBound;
+import org.eclipse.xtext.common.types.JvmParameterizedTypeReference;
+import org.eclipse.xtext.common.types.JvmTypeParameter;
+import org.eclipse.xtext.common.types.JvmUpperBound;
+import org.eclipse.xtext.common.types.JvmWildcardTypeReference;
+import org.eclipse.xtext.common.types.TypesPackage;
+import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider;
+import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
+import org.eclipse.xtext.serializer.sequencer.GenericSequencer;
+import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider;
+import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+import org.eclipse.xtext.xbase.XAssignment;
+import org.eclipse.xtext.xbase.XBasicForLoopExpression;
+import org.eclipse.xtext.xbase.XBinaryOperation;
+import org.eclipse.xtext.xbase.XBlockExpression;
+import org.eclipse.xtext.xbase.XBooleanLiteral;
+import org.eclipse.xtext.xbase.XCasePart;
+import org.eclipse.xtext.xbase.XCastedExpression;
+import org.eclipse.xtext.xbase.XCatchClause;
+import org.eclipse.xtext.xbase.XClosure;
+import org.eclipse.xtext.xbase.XConstructorCall;
+import org.eclipse.xtext.xbase.XDoWhileExpression;
+import org.eclipse.xtext.xbase.XFeatureCall;
+import org.eclipse.xtext.xbase.XForLoopExpression;
+import org.eclipse.xtext.xbase.XIfExpression;
+import org.eclipse.xtext.xbase.XInstanceOfExpression;
+import org.eclipse.xtext.xbase.XListLiteral;
+import org.eclipse.xtext.xbase.XMemberFeatureCall;
+import org.eclipse.xtext.xbase.XNullLiteral;
+import org.eclipse.xtext.xbase.XNumberLiteral;
+import org.eclipse.xtext.xbase.XPostfixOperation;
+import org.eclipse.xtext.xbase.XReturnExpression;
+import org.eclipse.xtext.xbase.XSetLiteral;
+import org.eclipse.xtext.xbase.XStringLiteral;
+import org.eclipse.xtext.xbase.XSwitchExpression;
+import org.eclipse.xtext.xbase.XSynchronizedExpression;
+import org.eclipse.xtext.xbase.XThrowExpression;
+import org.eclipse.xtext.xbase.XTryCatchFinallyExpression;
+import org.eclipse.xtext.xbase.XTypeLiteral;
+import org.eclipse.xtext.xbase.XUnaryOperation;
+import org.eclipse.xtext.xbase.XVariableDeclaration;
+import org.eclipse.xtext.xbase.XWhileExpression;
+import org.eclipse.xtext.xbase.XbasePackage;
+import org.eclipse.xtext.xbase.annotations.serializer.XbaseWithAnnotationsSemanticSequencer;
+import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotation;
+import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotationElementValuePair;
+import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotationsPackage;
+import org.eclipse.xtext.xtype.XFunctionTypeRef;
+import org.eclipse.xtext.xtype.XImportDeclaration;
+import org.eclipse.xtext.xtype.XImportSection;
+import org.eclipse.xtext.xtype.XtypePackage;
+
+@SuppressWarnings("all")
+public class DataDSLSemanticSequencer extends XbaseWithAnnotationsSemanticSequencer {
+
+	@Inject
+	private DataDSLGrammarAccess grammarAccess;
+	
+	public void createSequence(EObject context, EObject semanticObject) {
+		if(semanticObject.eClass().getEPackage() == DataDSLPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case DataDSLPackage.DATA_INTERCHANGE:
+				if(context == grammarAccess.getDataInterchangeRule()) {
+					sequence_DataInterchange(context, (DataInterchange) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_BEAN:
+				if(context == grammarAccess.getDataInterchangeBeanRule()) {
+					sequence_DataInterchangeBean(context, (DataInterchangeBean) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_ENTITY_EXPRESSION:
+				if(context == grammarAccess.getDataInterchangeEntityExpressionRule() ||
+				   context == grammarAccess.getDataInterchangeExpressionRule()) {
+					sequence_DataInterchangeEntityExpression(context, (DataInterchangeEntityExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_CSV:
+				if(context == grammarAccess.getDataInterchangeFileRule() ||
+				   context == grammarAccess.getDataInterchangeFileCSVRule()) {
+					sequence_DataInterchangeFileCSV(context, (DataInterchangeFileCSV) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_EDI:
+				if(context == grammarAccess.getDataInterchangeFileRule() ||
+				   context == grammarAccess.getDataInterchangeFileEDIRule()) {
+					sequence_DataInterchangeFileEDI(context, (DataInterchangeFileEDI) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_FILE_XML:
+				if(context == grammarAccess.getDataInterchangeFileRule() ||
+				   context == grammarAccess.getDataInterchangeFileXMLRule()) {
+					sequence_DataInterchangeFileXML(context, (DataInterchangeFileXML) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_FORMAT:
+				if(context == grammarAccess.getDataInterchangeFormatRule()) {
+					sequence_DataInterchangeFormat(context, (DataInterchangeFormat) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_LOOKUP:
+				if(context == grammarAccess.getDataInterchangeLookupRule()) {
+					sequence_DataInterchangeLookup(context, (DataInterchangeLookup) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_MAPPING:
+				if(context == grammarAccess.getDataInterchangeMappingRule()) {
+					sequence_DataInterchangeMapping(context, (DataInterchangeMapping) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_ENTITY:
+				if(context == grammarAccess.getDataInterchangeMarkerEntityRule()) {
+					sequence_DataInterchangeMarkerEntity(context, (DataInterchangeMarkerEntity) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_MARKER_PATH:
+				if(context == grammarAccess.getDataInterchangeMarkerPathRule()) {
+					sequence_DataInterchangeMarkerPath(context, (DataInterchangeMarkerPath) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_MODEL:
+				if(context == grammarAccess.getDataInterchangeModelRule()) {
+					sequence_DataInterchangeModel(context, (DataInterchangeModel) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_PACKAGE:
+				if(context == grammarAccess.getDataInterchangePackageRule()) {
+					sequence_DataInterchangePackage(context, (DataInterchangePackage) semanticObject); 
+					return; 
+				}
+				else break;
+			case DataDSLPackage.DATA_INTERCHANGE_PREDEFINED_EXPRESSION:
+				if(context == grammarAccess.getDataInterchangeExpressionRule() ||
+				   context == grammarAccess.getDataInterchangePredefinedExpressionRule()) {
+					sequence_DataInterchangePredefinedExpression(context, (DataInterchangePredefinedExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == OSBPTypesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case OSBPTypesPackage.LIMPORT:
+				if(context == grammarAccess.getDataInterchangeImportRule()) {
+					sequence_DataInterchangeImport(context, (LImport) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == TypesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case TypesPackage.JVM_FORMAL_PARAMETER:
+				if(context == grammarAccess.getFullJvmFormalParameterRule()) {
+					sequence_FullJvmFormalParameter(context, (JvmFormalParameter) semanticObject); 
+					return; 
+				}
+				else if(context == grammarAccess.getJvmFormalParameterRule()) {
+					sequence_JvmFormalParameter(context, (JvmFormalParameter) semanticObject); 
+					return; 
+				}
+				else break;
+			case TypesPackage.JVM_GENERIC_ARRAY_TYPE_REFERENCE:
+				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
+				   context == grammarAccess.getJvmTypeReferenceRule() ||
+				   context == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()) {
+					sequence_JvmTypeReference(context, (JvmGenericArrayTypeReference) semanticObject); 
+					return; 
+				}
+				else break;
+			case TypesPackage.JVM_INNER_TYPE_REFERENCE:
+				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
+				   context == grammarAccess.getJvmParameterizedTypeReferenceRule() ||
+				   context == grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0() ||
+				   context == grammarAccess.getJvmTypeReferenceRule() ||
+				   context == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()) {
+					sequence_JvmParameterizedTypeReference(context, (JvmInnerTypeReference) semanticObject); 
+					return; 
+				}
+				else break;
+			case TypesPackage.JVM_LOWER_BOUND:
+				if(context == grammarAccess.getJvmLowerBoundAndedRule()) {
+					sequence_JvmLowerBoundAnded(context, (JvmLowerBound) semanticObject); 
+					return; 
+				}
+				else if(context == grammarAccess.getJvmLowerBoundRule()) {
+					sequence_JvmLowerBound(context, (JvmLowerBound) semanticObject); 
+					return; 
+				}
+				else break;
+			case TypesPackage.JVM_PARAMETERIZED_TYPE_REFERENCE:
+				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
+				   context == grammarAccess.getJvmParameterizedTypeReferenceRule() ||
+				   context == grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0() ||
+				   context == grammarAccess.getJvmTypeReferenceRule() ||
+				   context == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()) {
+					sequence_JvmParameterizedTypeReference(context, (JvmParameterizedTypeReference) semanticObject); 
+					return; 
+				}
+				else break;
+			case TypesPackage.JVM_TYPE_PARAMETER:
+				if(context == grammarAccess.getJvmTypeParameterRule()) {
+					sequence_JvmTypeParameter(context, (JvmTypeParameter) semanticObject); 
+					return; 
+				}
+				else break;
+			case TypesPackage.JVM_UPPER_BOUND:
+				if(context == grammarAccess.getJvmUpperBoundAndedRule()) {
+					sequence_JvmUpperBoundAnded(context, (JvmUpperBound) semanticObject); 
+					return; 
+				}
+				else if(context == grammarAccess.getJvmUpperBoundRule()) {
+					sequence_JvmUpperBound(context, (JvmUpperBound) semanticObject); 
+					return; 
+				}
+				else break;
+			case TypesPackage.JVM_WILDCARD_TYPE_REFERENCE:
+				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
+				   context == grammarAccess.getJvmWildcardTypeReferenceRule()) {
+					sequence_JvmWildcardTypeReference(context, (JvmWildcardTypeReference) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == XAnnotationsPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case XAnnotationsPackage.XANNOTATION:
+				if(context == grammarAccess.getXAnnotationRule() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule()) {
+					sequence_XAnnotation(context, (XAnnotation) semanticObject); 
+					return; 
+				}
+				else break;
+			case XAnnotationsPackage.XANNOTATION_ELEMENT_VALUE_PAIR:
+				if(context == grammarAccess.getXAnnotationElementValuePairRule()) {
+					sequence_XAnnotationElementValuePair(context, (XAnnotationElementValuePair) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == XbasePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case XbasePackage.XASSIGNMENT:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XAssignment_XMemberFeatureCall(context, (XAssignment) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XBASIC_FOR_LOOP_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXBasicForLoopExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XBasicForLoopExpression(context, (XBasicForLoopExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XBINARY_OPERATION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XAdditiveExpression_XAndExpression_XAssignment_XEqualityExpression_XMultiplicativeExpression_XOrExpression_XOtherOperatorExpression_XRelationalExpression(context, (XBinaryOperation) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XBLOCK_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXBlockExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XBlockExpression(context, (XBlockExpression) semanticObject); 
+					return; 
+				}
+				else if(context == grammarAccess.getXExpressionInClosureRule()) {
+					sequence_XExpressionInClosure(context, (XBlockExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XBOOLEAN_LITERAL:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXBooleanLiteralRule() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXLiteralRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XBooleanLiteral(context, (XBooleanLiteral) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XCASE_PART:
+				if(context == grammarAccess.getXCasePartRule()) {
+					sequence_XCasePart(context, (XCasePart) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XCASTED_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XCastedExpression(context, (XCastedExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XCATCH_CLAUSE:
+				if(context == grammarAccess.getXCatchClauseRule()) {
+					sequence_XCatchClause(context, (XCatchClause) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XCLOSURE:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXClosureRule() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXLiteralRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XClosure(context, (XClosure) semanticObject); 
+					return; 
+				}
+				else if(context == grammarAccess.getXShortClosureRule()) {
+					sequence_XShortClosure(context, (XClosure) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XCONSTRUCTOR_CALL:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXConstructorCallRule() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XConstructorCall(context, (XConstructorCall) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XDO_WHILE_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXDoWhileExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XDoWhileExpression(context, (XDoWhileExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XFEATURE_CALL:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XFeatureCall(context, (XFeatureCall) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XFOR_LOOP_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXForLoopExpressionRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XForLoopExpression(context, (XForLoopExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XIF_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXIfExpressionRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XIfExpression(context, (XIfExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XINSTANCE_OF_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XRelationalExpression(context, (XInstanceOfExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XLIST_LITERAL:
+				if(context == grammarAccess.getXAnnotationElementValueOrCommaListRule()) {
+					sequence_XAnnotationElementValueOrCommaList_XListLiteral(context, (XListLiteral) semanticObject); 
+					return; 
+				}
+				else if(context == grammarAccess.getXAnnotationElementValueRule()) {
+					sequence_XAnnotationElementValue_XListLiteral(context, (XListLiteral) semanticObject); 
+					return; 
+				}
+				else if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXCollectionLiteralRule() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXListLiteralRule() ||
+				   context == grammarAccess.getXLiteralRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XListLiteral(context, (XListLiteral) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XMEMBER_FEATURE_CALL:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XMemberFeatureCall(context, (XMemberFeatureCall) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XNULL_LITERAL:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXLiteralRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXNullLiteralRule() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XNullLiteral(context, (XNullLiteral) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XNUMBER_LITERAL:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXLiteralRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXNumberLiteralRule() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XNumberLiteral(context, (XNumberLiteral) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XPOSTFIX_OPERATION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XPostfixOperation(context, (XPostfixOperation) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XRETURN_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXReturnExpressionRule() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XReturnExpression(context, (XReturnExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XSET_LITERAL:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXCollectionLiteralRule() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXLiteralRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXSetLiteralRule() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XSetLiteral(context, (XSetLiteral) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XSTRING_LITERAL:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXLiteralRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXStringLiteralRule() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XStringLiteral(context, (XStringLiteral) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XSWITCH_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXSwitchExpressionRule() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XSwitchExpression(context, (XSwitchExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XSYNCHRONIZED_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXSynchronizedExpressionRule() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XSynchronizedExpression(context, (XSynchronizedExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XTHROW_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXThrowExpressionRule() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XThrowExpression(context, (XThrowExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XTRY_CATCH_FINALLY_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXTryCatchFinallyExpressionRule() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XTryCatchFinallyExpression(context, (XTryCatchFinallyExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XTYPE_LITERAL:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXLiteralRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXTypeLiteralRule() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XTypeLiteral(context, (XTypeLiteral) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XUNARY_OPERATION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule()) {
+					sequence_XUnaryOperation(context, (XUnaryOperation) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XVARIABLE_DECLARATION:
+				if(context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXVariableDeclarationRule()) {
+					sequence_XVariableDeclaration(context, (XVariableDeclaration) semanticObject); 
+					return; 
+				}
+				else break;
+			case XbasePackage.XWHILE_EXPRESSION:
+				if(context == grammarAccess.getXAdditiveExpressionRule() ||
+				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAndExpressionRule() ||
+				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXAnnotationElementValueRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
+				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
+				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
+				   context == grammarAccess.getXAssignmentRule() ||
+				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXCastedExpressionRule() ||
+				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+				   context == grammarAccess.getXEqualityExpressionRule() ||
+				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXExpressionRule() ||
+				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXMemberFeatureCallRule() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
+				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOrExpressionRule() ||
+				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
+				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+				   context == grammarAccess.getXParenthesizedExpressionRule() ||
+				   context == grammarAccess.getXPostfixOperationRule() ||
+				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
+				   context == grammarAccess.getXPrimaryExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionRule() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+				   context == grammarAccess.getXUnaryOperationRule() ||
+				   context == grammarAccess.getXWhileExpressionRule()) {
+					sequence_XWhileExpression(context, (XWhileExpression) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == XtypePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case XtypePackage.XFUNCTION_TYPE_REF:
+				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
+				   context == grammarAccess.getJvmTypeReferenceRule() ||
+				   context == grammarAccess.getXFunctionTypeRefRule()) {
+					sequence_XFunctionTypeRef(context, (XFunctionTypeRef) semanticObject); 
+					return; 
+				}
+				else break;
+			case XtypePackage.XIMPORT_DECLARATION:
+				if(context == grammarAccess.getXImportDeclarationRule()) {
+					sequence_XImportDeclaration(context, (XImportDeclaration) semanticObject); 
+					return; 
+				}
+				else break;
+			case XtypePackage.XIMPORT_SECTION:
+				if(context == grammarAccess.getXImportSectionRule()) {
+					sequence_XImportSection(context, (XImportSection) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+	}
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         entity=[LEntity|LFQN] 
+	 *         elementMap=STRING? 
+	 *         (markLatest?='marker' latestProperty=[LEntityAttribute|ID])? 
+	 *         (recordElement?='recordElement' | recordList?='recordList')? 
+	 *         expression+=DataInterchangeExpression* 
+	 *         lookup+=DataInterchangeLookup* 
+	 *         format+=DataInterchangeFormat* 
+	 *         mappings+=DataInterchangeMapping*
+	 *     )
+	 */
+	protected void sequence_DataInterchangeBean(EObject context, DataInterchangeBean semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (targetProperty=[LEntityAttribute|ID] entity=[LEntity|LFQN] property=[LEntityAttribute|ID])
+	 */
+	protected void sequence_DataInterchangeEntityExpression(EObject context, DataInterchangeEntityExpression semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY));
+			if(transientValues.isValueTransient(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY));
+			if(transientValues.isValueTransient(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getDataInterchangeEntityExpressionAccess().getTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1(), semanticObject.getTargetProperty());
+		feeder.accept(grammarAccess.getDataInterchangeEntityExpressionAccess().getEntityLEntityLFQNParserRuleCall_4_0_1(), semanticObject.getEntity());
+		feeder.accept(grammarAccess.getDataInterchangeEntityExpressionAccess().getPropertyLEntityAttributeIDTerminalRuleCall_6_0_1(), semanticObject.getProperty());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         fileURL=STRING 
+	 *         delimiter=STRING? 
+	 *         quoteCharacter=STRING? 
+	 *         skipLines=INT? 
+	 *         indent?='indent'? 
+	 *         strict?='strict'? 
+	 *         validateHeader?='validateHeader'? 
+	 *         encoding=STRING?
+	 *     )
+	 */
+	protected void sequence_DataInterchangeFileCSV(EObject context, DataInterchangeFileCSV semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (fileURL=STRING mappingModel=STRING validate?='validate'?)
+	 */
+	protected void sequence_DataInterchangeFileEDI(EObject context, DataInterchangeFileEDI semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     fileURL=STRING
+	 */
+	protected void sequence_DataInterchangeFileXML(EObject context, DataInterchangeFileXML semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_FILE_XML__FILE_URL) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_FILE_XML__FILE_URL));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getDataInterchangeFileXMLAccess().getFileURLSTRINGTerminalRuleCall_2_0(), semanticObject.getFileURL());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (targetProperty=[LEntityAttribute|ID] format=STRING locale=STRING?)
+	 */
+	protected void sequence_DataInterchangeFormat(EObject context, DataInterchangeFormat semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     importedNamespace=DataInterchangeQualifiedNameWithWildCard
+	 */
+	protected void sequence_DataInterchangeImport(EObject context, LImport semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, OSBPTypesPackage.Literals.LIMPORT__IMPORTED_NAMESPACE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, OSBPTypesPackage.Literals.LIMPORT__IMPORTED_NAMESPACE));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getDataInterchangeImportAccess().getImportedNamespaceDataInterchangeQualifiedNameWithWildCardParserRuleCall_1_0(), semanticObject.getImportedNamespace());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         targetProperty=[LEntityReference|ID] 
+	 *         entity=[LEntity|ID] 
+	 *         elementMap=STRING? 
+	 *         queryProperty=[LEntityAttribute|ID] 
+	 *         (cached?='cacheSize' cacheSize=INT)? 
+	 *         dataMap=STRING? 
+	 *         allowNoResult?='allowNoResult'? 
+	 *         allowNonuniqueResult?='allowNonuniqueResult'? 
+	 *         markerPath=DataInterchangeMarkerPath?
+	 *     )
+	 */
+	protected void sequence_DataInterchangeLookup(EObject context, DataInterchangeLookup semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (property=[LEntityAttribute|ID] data=STRING)
+	 */
+	protected void sequence_DataInterchangeMapping(EObject context, DataInterchangeMapping semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_MAPPING__PROPERTY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_MAPPING__PROPERTY));
+			if(transientValues.isValueTransient(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_MAPPING__DATA) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_MAPPING__DATA));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getDataInterchangeMappingAccess().getPropertyLEntityAttributeIDTerminalRuleCall_2_0_1(), semanticObject.getProperty());
+		feeder.accept(grammarAccess.getDataInterchangeMappingAccess().getDataSTRINGTerminalRuleCall_4_0(), semanticObject.getData());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (markerEntity=[LEntity|LFQN] (markLatest?='markedBy' markerProperty=[LEntityAttribute|ID])?)
+	 */
+	protected void sequence_DataInterchangeMarkerEntity(EObject context, DataInterchangeMarkerEntity semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (path+=DataInterchangeMarkerEntity*)
+	 */
+	protected void sequence_DataInterchangeMarkerPath(EObject context, DataInterchangeMarkerPath semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     packages+=DataInterchangePackage*
+	 */
+	protected void sequence_DataInterchangeModel(EObject context, DataInterchangeModel semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=QualifiedName title=TRANSLATABLESTRING (imports+=DataInterchangeImport* datInts+=DataInterchange*)?)
+	 */
+	protected void sequence_DataInterchangePackage(EObject context, DataInterchangePackage semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (targetProperty=[LEntityAttribute|ID] bean=PredefinedBeanEnum beanType=PredefinedBeanTypeEnum)
+	 */
+	protected void sequence_DataInterchangePredefinedExpression(EObject context, DataInterchangePredefinedExpression semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY));
+			if(transientValues.isValueTransient(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN));
+			if(transientValues.isValueTransient(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DataDSLPackage.Literals.DATA_INTERCHANGE_PREDEFINED_EXPRESSION__BEAN_TYPE));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getDataInterchangePredefinedExpressionAccess().getTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1(), semanticObject.getTargetProperty());
+		feeder.accept(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanPredefinedBeanEnumEnumRuleCall_4_0(), semanticObject.getBean());
+		feeder.accept(grammarAccess.getDataInterchangePredefinedExpressionAccess().getBeanTypePredefinedBeanTypeEnumEnumRuleCall_6_0(), semanticObject.getBeanType());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=TRANSLATABLEID 
+	 *         (description?='described by' descriptionValue=TRANSLATABLESTRING)? 
+	 *         createReport?='create report'? 
+	 *         elementSize=INT? 
+	 *         progressBarStyle=ProgressBarStylesEnum? 
+	 *         (refreshEnabled?='refreshViewWhenFinished' refresh=STRING)? 
+	 *         fileEndpoint=DataInterchangeFile 
+	 *         path+=DataInterchangeBean*
+	 *     )
+	 */
+	protected void sequence_DataInterchange(EObject context, DataInterchange semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/serializer/DataDSLSyntacticSequencer.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/serializer/DataDSLSyntacticSequencer.java
new file mode 100644
index 0000000..1b0f9a0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/serializer/DataDSLSyntacticSequencer.java
@@ -0,0 +1,225 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+
+@SuppressWarnings("all")
+public class DataDSLSyntacticSequencer extends AbstractSyntacticSequencer {
+
+	protected DataDSLGrammarAccess grammarAccess;
+	protected AbstractElementAlias match_DataInterchangeBean___ExpressionKeyword_6_0_LeftCurlyBracketKeyword_6_1_RightCurlyBracketKeyword_6_3__q;
+	protected AbstractElementAlias match_DataInterchangeBean___FormatKeyword_8_0_LeftCurlyBracketKeyword_8_1_RightCurlyBracketKeyword_8_3__q;
+	protected AbstractElementAlias match_DataInterchangeBean___LookupKeyword_7_0_LeftCurlyBracketKeyword_7_1_RightCurlyBracketKeyword_7_3__q;
+	protected AbstractElementAlias match_DataInterchangeBean___MappingKeyword_9_0_LeftCurlyBracketKeyword_9_1_RightCurlyBracketKeyword_9_3__q;
+	protected AbstractElementAlias match_DataInterchangePackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_3__q;
+	protected AbstractElementAlias match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q;
+	protected AbstractElementAlias match_XBlockExpression_SemicolonKeyword_2_1_q;
+	protected AbstractElementAlias match_XExpressionInClosure_SemicolonKeyword_1_1_q;
+	protected AbstractElementAlias match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q;
+	protected AbstractElementAlias match_XImportDeclaration_SemicolonKeyword_2_q;
+	protected AbstractElementAlias match_XParenthesizedExpression_LeftParenthesisKeyword_0_a;
+	protected AbstractElementAlias match_XParenthesizedExpression_LeftParenthesisKeyword_0_p;
+	
+	@Inject
+	protected void init(IGrammarAccess access) {
+		grammarAccess = (DataDSLGrammarAccess) access;
+		match_DataInterchangeBean___ExpressionKeyword_6_0_LeftCurlyBracketKeyword_6_1_RightCurlyBracketKeyword_6_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getExpressionKeyword_6_0()), new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_6_1()), new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_6_3()));
+		match_DataInterchangeBean___FormatKeyword_8_0_LeftCurlyBracketKeyword_8_1_RightCurlyBracketKeyword_8_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getFormatKeyword_8_0()), new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_8_1()), new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_8_3()));
+		match_DataInterchangeBean___LookupKeyword_7_0_LeftCurlyBracketKeyword_7_1_RightCurlyBracketKeyword_7_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getLookupKeyword_7_0()), new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_7_1()), new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_7_3()));
+		match_DataInterchangeBean___MappingKeyword_9_0_LeftCurlyBracketKeyword_9_1_RightCurlyBracketKeyword_9_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getMappingKeyword_9_0()), new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getLeftCurlyBracketKeyword_9_1()), new TokenAlias(false, false, grammarAccess.getDataInterchangeBeanAccess().getRightCurlyBracketKeyword_9_3()));
+		match_DataInterchangePackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDataInterchangePackageAccess().getLeftCurlyBracketKeyword_5_0()), new TokenAlias(false, false, grammarAccess.getDataInterchangePackageAccess().getRightCurlyBracketKeyword_5_3()));
+		match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()));
+		match_XBlockExpression_SemicolonKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+		match_XExpressionInClosure_SemicolonKeyword_1_1_q = new TokenAlias(false, true, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+		match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()), new TokenAlias(false, false, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()));
+		match_XImportDeclaration_SemicolonKeyword_2_q = new TokenAlias(false, true, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2());
+		match_XParenthesizedExpression_LeftParenthesisKeyword_0_a = new TokenAlias(true, true, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+		match_XParenthesizedExpression_LeftParenthesisKeyword_0_p = new TokenAlias(true, false, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+	}
+	
+	@Override
+	protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if(ruleCall.getRule() == grammarAccess.getArrayBracketsRule())
+			return getArrayBracketsToken(semanticObject, ruleCall, node);
+		else if(ruleCall.getRule() == grammarAccess.getOpSingleAssignRule())
+			return getOpSingleAssignToken(semanticObject, ruleCall, node);
+		return "";
+	}
+	
+	/**
+	 * ArrayBrackets :
+	 * 	'[' ']'
+	 * ;
+	 */
+	protected String getArrayBracketsToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (node != null)
+			return getTokenText(node);
+		return "[]";
+	}
+	
+	/**
+	 * OpSingleAssign:
+	 * 	'='
+	 * ;
+	 */
+	protected String getOpSingleAssignToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (node != null)
+			return getTokenText(node);
+		return "=";
+	}
+	
+	@Override
+	protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+		if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+		List<INode> transitionNodes = collectNodes(fromNode, toNode);
+		for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+			List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+			if(match_DataInterchangeBean___ExpressionKeyword_6_0_LeftCurlyBracketKeyword_6_1_RightCurlyBracketKeyword_6_3__q.equals(syntax))
+				emit_DataInterchangeBean___ExpressionKeyword_6_0_LeftCurlyBracketKeyword_6_1_RightCurlyBracketKeyword_6_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DataInterchangeBean___FormatKeyword_8_0_LeftCurlyBracketKeyword_8_1_RightCurlyBracketKeyword_8_3__q.equals(syntax))
+				emit_DataInterchangeBean___FormatKeyword_8_0_LeftCurlyBracketKeyword_8_1_RightCurlyBracketKeyword_8_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DataInterchangeBean___LookupKeyword_7_0_LeftCurlyBracketKeyword_7_1_RightCurlyBracketKeyword_7_3__q.equals(syntax))
+				emit_DataInterchangeBean___LookupKeyword_7_0_LeftCurlyBracketKeyword_7_1_RightCurlyBracketKeyword_7_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DataInterchangeBean___MappingKeyword_9_0_LeftCurlyBracketKeyword_9_1_RightCurlyBracketKeyword_9_3__q.equals(syntax))
+				emit_DataInterchangeBean___MappingKeyword_9_0_LeftCurlyBracketKeyword_9_1_RightCurlyBracketKeyword_9_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DataInterchangePackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_3__q.equals(syntax))
+				emit_DataInterchangePackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q.equals(syntax))
+				emit_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XBlockExpression_SemicolonKeyword_2_1_q.equals(syntax))
+				emit_XBlockExpression_SemicolonKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XExpressionInClosure_SemicolonKeyword_1_1_q.equals(syntax))
+				emit_XExpressionInClosure_SemicolonKeyword_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q.equals(syntax))
+				emit_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XImportDeclaration_SemicolonKeyword_2_q.equals(syntax))
+				emit_XImportDeclaration_SemicolonKeyword_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XParenthesizedExpression_LeftParenthesisKeyword_0_a.equals(syntax))
+				emit_XParenthesizedExpression_LeftParenthesisKeyword_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XParenthesizedExpression_LeftParenthesisKeyword_0_p.equals(syntax))
+				emit_XParenthesizedExpression_LeftParenthesisKeyword_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else acceptNodes(getLastNavigableState(), syntaxNodes);
+		}
+	}
+
+	/**
+	 * Syntax:
+	 *     ('expression' '{' '}')?
+	 */
+	protected void emit_DataInterchangeBean___ExpressionKeyword_6_0_LeftCurlyBracketKeyword_6_1_RightCurlyBracketKeyword_6_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('format' '{' '}')?
+	 */
+	protected void emit_DataInterchangeBean___FormatKeyword_8_0_LeftCurlyBracketKeyword_8_1_RightCurlyBracketKeyword_8_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('lookup' '{' '}')?
+	 */
+	protected void emit_DataInterchangeBean___LookupKeyword_7_0_LeftCurlyBracketKeyword_7_1_RightCurlyBracketKeyword_7_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('mapping' '{' '}')?
+	 */
+	protected void emit_DataInterchangeBean___MappingKeyword_9_0_LeftCurlyBracketKeyword_9_1_RightCurlyBracketKeyword_9_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('{' '}')?
+	 */
+	protected void emit_DataInterchangePackage___LeftCurlyBracketKeyword_5_0_RightCurlyBracketKeyword_5_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('(' ')')?
+	 */
+	protected void emit_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ';'?
+	 */
+	protected void emit_XBlockExpression_SemicolonKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ';'?
+	 */
+	protected void emit_XExpressionInClosure_SemicolonKeyword_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('(' ')')?
+	 */
+	protected void emit_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ';'?
+	 */
+	protected void emit_XImportDeclaration_SemicolonKeyword_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     '('*
+	 */
+	protected void emit_XParenthesizedExpression_LeftParenthesisKeyword_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     '('+
+	 */
+	protected void emit_XParenthesizedExpression_LeftParenthesisKeyword_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/services/DataDSLGrammarAccess.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/services/DataDSLGrammarAccess.java
new file mode 100644
index 0000000..1d6dca6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/services/DataDSLGrammarAccess.java
@@ -0,0 +1,2721 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import java.util.List;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.xbase.annotations.services.XbaseWithAnnotationsGrammarAccess;
+import org.eclipse.xtext.xbase.services.XbaseGrammarAccess;
+import org.eclipse.xtext.xbase.services.XtypeGrammarAccess;
+
+@Singleton
+public class DataDSLGrammarAccess extends AbstractGrammarElementFinder {
+	
+	
+	public class DataInterchangeModelElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeModel");
+		private final Assignment cPackagesAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cPackagesDataInterchangePackageParserRuleCall_0 = (RuleCall)cPackagesAssignment.eContents().get(0);
+		
+		//DataInterchangeModel:
+		//	packages+=DataInterchangePackage*;
+		public ParserRule getRule() { return rule; }
+
+		//packages+=DataInterchangePackage*
+		public Assignment getPackagesAssignment() { return cPackagesAssignment; }
+
+		//DataInterchangePackage
+		public RuleCall getPackagesDataInterchangePackageParserRuleCall_0() { return cPackagesDataInterchangePackageParserRuleCall_0; }
+	}
+
+	public class DataInterchangePackageElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangePackage");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangePackageAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cPackageKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+		private final Keyword cTitleKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cTitleAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cTitleTRANSLATABLESTRINGParserRuleCall_4_0 = (RuleCall)cTitleAssignment_4.eContents().get(0);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cLeftCurlyBracketKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Assignment cImportsAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final RuleCall cImportsDataInterchangeImportParserRuleCall_5_1_0 = (RuleCall)cImportsAssignment_5_1.eContents().get(0);
+		private final Assignment cDatIntsAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2);
+		private final RuleCall cDatIntsDataInterchangeParserRuleCall_5_2_0 = (RuleCall)cDatIntsAssignment_5_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5_3 = (Keyword)cGroup_5.eContents().get(3);
+		
+		//DataInterchangePackage:
+		//	{DataInterchangePackage} "package" name=QualifiedName "title" title=TRANSLATABLESTRING ("{"
+		//	imports+=DataInterchangeImport* datInts+=DataInterchange* "}")?;
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangePackage} "package" name=QualifiedName "title" title=TRANSLATABLESTRING ("{"
+		//imports+=DataInterchangeImport* datInts+=DataInterchange* "}")?
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangePackage}
+		public Action getDataInterchangePackageAction_0() { return cDataInterchangePackageAction_0; }
+
+		//"package"
+		public Keyword getPackageKeyword_1() { return cPackageKeyword_1; }
+
+		//name=QualifiedName
+		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+		//QualifiedName
+		public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
+
+		//"title"
+		public Keyword getTitleKeyword_3() { return cTitleKeyword_3; }
+
+		//title=TRANSLATABLESTRING
+		public Assignment getTitleAssignment_4() { return cTitleAssignment_4; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getTitleTRANSLATABLESTRINGParserRuleCall_4_0() { return cTitleTRANSLATABLESTRINGParserRuleCall_4_0; }
+
+		//("{" imports+=DataInterchangeImport* datInts+=DataInterchange* "}")?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_5_0() { return cLeftCurlyBracketKeyword_5_0; }
+
+		//imports+=DataInterchangeImport*
+		public Assignment getImportsAssignment_5_1() { return cImportsAssignment_5_1; }
+
+		//DataInterchangeImport
+		public RuleCall getImportsDataInterchangeImportParserRuleCall_5_1_0() { return cImportsDataInterchangeImportParserRuleCall_5_1_0; }
+
+		//datInts+=DataInterchange*
+		public Assignment getDatIntsAssignment_5_2() { return cDatIntsAssignment_5_2; }
+
+		//DataInterchange
+		public RuleCall getDatIntsDataInterchangeParserRuleCall_5_2_0() { return cDatIntsDataInterchangeParserRuleCall_5_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5_3() { return cRightCurlyBracketKeyword_5_3; }
+	}
+
+	public class DataInterchangeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchange");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cInterchangeKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cNameTRANSLATABLEIDParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Assignment cDescriptionAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
+		private final Keyword cDescriptionDescribedByKeyword_3_0_0 = (Keyword)cDescriptionAssignment_3_0.eContents().get(0);
+		private final Assignment cDescriptionValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0 = (RuleCall)cDescriptionValueAssignment_3_1.eContents().get(0);
+		private final Assignment cCreateReportAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final Keyword cCreateReportCreateReportKeyword_4_0 = (Keyword)cCreateReportAssignment_4.eContents().get(0);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cAverageElementSizeKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Assignment cElementSizeAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final RuleCall cElementSizeINTTerminalRuleCall_5_1_0 = (RuleCall)cElementSizeAssignment_5_1.eContents().get(0);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Keyword cProgressBarStyleKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
+		private final Assignment cProgressBarStyleAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
+		private final RuleCall cProgressBarStyleProgressBarStylesEnumEnumRuleCall_6_1_0 = (RuleCall)cProgressBarStyleAssignment_6_1.eContents().get(0);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Assignment cRefreshEnabledAssignment_7_0 = (Assignment)cGroup_7.eContents().get(0);
+		private final Keyword cRefreshEnabledRefreshViewWhenFinishedKeyword_7_0_0 = (Keyword)cRefreshEnabledAssignment_7_0.eContents().get(0);
+		private final Assignment cRefreshAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
+		private final RuleCall cRefreshSTRINGTerminalRuleCall_7_1_0 = (RuleCall)cRefreshAssignment_7_1.eContents().get(0);
+		private final Keyword cFileKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cFileEndpointAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cFileEndpointDataInterchangeFileParserRuleCall_9_0 = (RuleCall)cFileEndpointAssignment_9.eContents().get(0);
+		private final Keyword cBeansKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		private final Keyword cLeftCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
+		private final Assignment cPathAssignment_12 = (Assignment)cGroup.eContents().get(12);
+		private final RuleCall cPathDataInterchangeBeanParserRuleCall_12_0 = (RuleCall)cPathAssignment_12.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_13 = (Keyword)cGroup.eContents().get(13);
+		
+		//DataInterchange:
+		//	{DataInterchange} "interchange" name=TRANSLATABLEID (description?="described by" descriptionValue=TRANSLATABLESTRING)?
+		//	createReport?="create report"? ("averageElementSize" elementSize=INT)? ("progressBarStyle"
+		//	progressBarStyle=ProgressBarStylesEnum)? (refreshEnabled?="refreshViewWhenFinished" refresh=STRING)? "file"
+		//	fileEndpoint=DataInterchangeFile "beans" "{" path+=DataInterchangeBean* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchange} "interchange" name=TRANSLATABLEID (description?="described by" descriptionValue=TRANSLATABLESTRING)?
+		//createReport?="create report"? ("averageElementSize" elementSize=INT)? ("progressBarStyle"
+		//progressBarStyle=ProgressBarStylesEnum)? (refreshEnabled?="refreshViewWhenFinished" refresh=STRING)? "file"
+		//fileEndpoint=DataInterchangeFile "beans" "{" path+=DataInterchangeBean* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchange}
+		public Action getDataInterchangeAction_0() { return cDataInterchangeAction_0; }
+
+		//"interchange"
+		public Keyword getInterchangeKeyword_1() { return cInterchangeKeyword_1; }
+
+		//name=TRANSLATABLEID
+		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+		//TRANSLATABLEID
+		public RuleCall getNameTRANSLATABLEIDParserRuleCall_2_0() { return cNameTRANSLATABLEIDParserRuleCall_2_0; }
+
+		//(description?="described by" descriptionValue=TRANSLATABLESTRING)?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//description?="described by"
+		public Assignment getDescriptionAssignment_3_0() { return cDescriptionAssignment_3_0; }
+
+		//"described by"
+		public Keyword getDescriptionDescribedByKeyword_3_0_0() { return cDescriptionDescribedByKeyword_3_0_0; }
+
+		//descriptionValue=TRANSLATABLESTRING
+		public Assignment getDescriptionValueAssignment_3_1() { return cDescriptionValueAssignment_3_1; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0() { return cDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0; }
+
+		//createReport?="create report"?
+		public Assignment getCreateReportAssignment_4() { return cCreateReportAssignment_4; }
+
+		//"create report"
+		public Keyword getCreateReportCreateReportKeyword_4_0() { return cCreateReportCreateReportKeyword_4_0; }
+
+		//("averageElementSize" elementSize=INT)?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"averageElementSize"
+		public Keyword getAverageElementSizeKeyword_5_0() { return cAverageElementSizeKeyword_5_0; }
+
+		//elementSize=INT
+		public Assignment getElementSizeAssignment_5_1() { return cElementSizeAssignment_5_1; }
+
+		//INT
+		public RuleCall getElementSizeINTTerminalRuleCall_5_1_0() { return cElementSizeINTTerminalRuleCall_5_1_0; }
+
+		//("progressBarStyle" progressBarStyle=ProgressBarStylesEnum)?
+		public Group getGroup_6() { return cGroup_6; }
+
+		//"progressBarStyle"
+		public Keyword getProgressBarStyleKeyword_6_0() { return cProgressBarStyleKeyword_6_0; }
+
+		//progressBarStyle=ProgressBarStylesEnum
+		public Assignment getProgressBarStyleAssignment_6_1() { return cProgressBarStyleAssignment_6_1; }
+
+		//ProgressBarStylesEnum
+		public RuleCall getProgressBarStyleProgressBarStylesEnumEnumRuleCall_6_1_0() { return cProgressBarStyleProgressBarStylesEnumEnumRuleCall_6_1_0; }
+
+		//(refreshEnabled?="refreshViewWhenFinished" refresh=STRING)?
+		public Group getGroup_7() { return cGroup_7; }
+
+		//refreshEnabled?="refreshViewWhenFinished"
+		public Assignment getRefreshEnabledAssignment_7_0() { return cRefreshEnabledAssignment_7_0; }
+
+		//"refreshViewWhenFinished"
+		public Keyword getRefreshEnabledRefreshViewWhenFinishedKeyword_7_0_0() { return cRefreshEnabledRefreshViewWhenFinishedKeyword_7_0_0; }
+
+		//refresh=STRING
+		public Assignment getRefreshAssignment_7_1() { return cRefreshAssignment_7_1; }
+
+		//STRING
+		public RuleCall getRefreshSTRINGTerminalRuleCall_7_1_0() { return cRefreshSTRINGTerminalRuleCall_7_1_0; }
+
+		//"file"
+		public Keyword getFileKeyword_8() { return cFileKeyword_8; }
+
+		//fileEndpoint=DataInterchangeFile
+		public Assignment getFileEndpointAssignment_9() { return cFileEndpointAssignment_9; }
+
+		//DataInterchangeFile
+		public RuleCall getFileEndpointDataInterchangeFileParserRuleCall_9_0() { return cFileEndpointDataInterchangeFileParserRuleCall_9_0; }
+
+		//"beans"
+		public Keyword getBeansKeyword_10() { return cBeansKeyword_10; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_11() { return cLeftCurlyBracketKeyword_11; }
+
+		//path+=DataInterchangeBean*
+		public Assignment getPathAssignment_12() { return cPathAssignment_12; }
+
+		//DataInterchangeBean
+		public RuleCall getPathDataInterchangeBeanParserRuleCall_12_0() { return cPathDataInterchangeBeanParserRuleCall_12_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_13() { return cRightCurlyBracketKeyword_13; }
+	}
+
+	public class DataInterchangeFileElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeFile");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cDataInterchangeFileXMLParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cDataInterchangeFileCSVParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cDataInterchangeFileEDIParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		
+		//DataInterchangeFile:
+		//	DataInterchangeFileXML | DataInterchangeFileCSV | DataInterchangeFileEDI;
+		public ParserRule getRule() { return rule; }
+
+		//DataInterchangeFileXML | DataInterchangeFileCSV | DataInterchangeFileEDI
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//DataInterchangeFileXML
+		public RuleCall getDataInterchangeFileXMLParserRuleCall_0() { return cDataInterchangeFileXMLParserRuleCall_0; }
+
+		//DataInterchangeFileCSV
+		public RuleCall getDataInterchangeFileCSVParserRuleCall_1() { return cDataInterchangeFileCSVParserRuleCall_1; }
+
+		//DataInterchangeFileEDI
+		public RuleCall getDataInterchangeFileEDIParserRuleCall_2() { return cDataInterchangeFileEDIParserRuleCall_2; }
+	}
+
+	public class DataInterchangeFileXMLElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeFileXML");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeFileXMLAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cXMLKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cFileURLAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cFileURLSTRINGTerminalRuleCall_2_0 = (RuleCall)cFileURLAssignment_2.eContents().get(0);
+		
+		//DataInterchangeFileXML:
+		//	{DataInterchangeFileXML} "XML" fileURL=STRING;
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeFileXML} "XML" fileURL=STRING
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeFileXML}
+		public Action getDataInterchangeFileXMLAction_0() { return cDataInterchangeFileXMLAction_0; }
+
+		//"XML"
+		public Keyword getXMLKeyword_1() { return cXMLKeyword_1; }
+
+		//fileURL=STRING
+		public Assignment getFileURLAssignment_2() { return cFileURLAssignment_2; }
+
+		//STRING
+		public RuleCall getFileURLSTRINGTerminalRuleCall_2_0() { return cFileURLSTRINGTerminalRuleCall_2_0; }
+	}
+
+	public class DataInterchangeFileCSVElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeFileCSV");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeFileCSVAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cCSVKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cFileURLAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cFileURLSTRINGTerminalRuleCall_2_0 = (RuleCall)cFileURLAssignment_2.eContents().get(0);
+		private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
+		private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
+		private final Keyword cDelimiterKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
+		private final Assignment cDelimiterAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
+		private final RuleCall cDelimiterSTRINGTerminalRuleCall_3_0_1_0 = (RuleCall)cDelimiterAssignment_3_0_1.eContents().get(0);
+		private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
+		private final Keyword cQuoteCharacterKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+		private final Assignment cQuoteCharacterAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
+		private final RuleCall cQuoteCharacterSTRINGTerminalRuleCall_3_1_1_0 = (RuleCall)cQuoteCharacterAssignment_3_1_1.eContents().get(0);
+		private final Group cGroup_3_2 = (Group)cUnorderedGroup_3.eContents().get(2);
+		private final Keyword cSkipLinesKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
+		private final Assignment cSkipLinesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+		private final RuleCall cSkipLinesINTTerminalRuleCall_3_2_1_0 = (RuleCall)cSkipLinesAssignment_3_2_1.eContents().get(0);
+		private final Assignment cIndentAssignment_3_3 = (Assignment)cUnorderedGroup_3.eContents().get(3);
+		private final Keyword cIndentIndentKeyword_3_3_0 = (Keyword)cIndentAssignment_3_3.eContents().get(0);
+		private final Assignment cStrictAssignment_3_4 = (Assignment)cUnorderedGroup_3.eContents().get(4);
+		private final Keyword cStrictStrictKeyword_3_4_0 = (Keyword)cStrictAssignment_3_4.eContents().get(0);
+		private final Assignment cValidateHeaderAssignment_3_5 = (Assignment)cUnorderedGroup_3.eContents().get(5);
+		private final Keyword cValidateHeaderValidateHeaderKeyword_3_5_0 = (Keyword)cValidateHeaderAssignment_3_5.eContents().get(0);
+		private final Group cGroup_3_6 = (Group)cUnorderedGroup_3.eContents().get(6);
+		private final Keyword cEncodingKeyword_3_6_0 = (Keyword)cGroup_3_6.eContents().get(0);
+		private final Assignment cEncodingAssignment_3_6_1 = (Assignment)cGroup_3_6.eContents().get(1);
+		private final RuleCall cEncodingSTRINGTerminalRuleCall_3_6_1_0 = (RuleCall)cEncodingAssignment_3_6_1.eContents().get(0);
+		
+		//DataInterchangeFileCSV:
+		//	{DataInterchangeFileCSV} "CSV" fileURL=STRING (("delimiter" delimiter=STRING)? & ("quoteCharacter"
+		//	quoteCharacter=STRING)? & ("skipLines" skipLines=INT)? & indent?="indent"? & strict?="strict"? &
+		//	validateHeader?="validateHeader"? & ("encoding" encoding=STRING)?);
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeFileCSV} "CSV" fileURL=STRING (("delimiter" delimiter=STRING)? & ("quoteCharacter"
+		//quoteCharacter=STRING)? & ("skipLines" skipLines=INT)? & indent?="indent"? & strict?="strict"? &
+		//validateHeader?="validateHeader"? & ("encoding" encoding=STRING)?)
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeFileCSV}
+		public Action getDataInterchangeFileCSVAction_0() { return cDataInterchangeFileCSVAction_0; }
+
+		//"CSV"
+		public Keyword getCSVKeyword_1() { return cCSVKeyword_1; }
+
+		//fileURL=STRING
+		public Assignment getFileURLAssignment_2() { return cFileURLAssignment_2; }
+
+		//STRING
+		public RuleCall getFileURLSTRINGTerminalRuleCall_2_0() { return cFileURLSTRINGTerminalRuleCall_2_0; }
+
+		//("delimiter" delimiter=STRING)? & ("quoteCharacter" quoteCharacter=STRING)? & ("skipLines" skipLines=INT)? &
+		//indent?="indent"? & strict?="strict"? & validateHeader?="validateHeader"? & ("encoding" encoding=STRING)?
+		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
+
+		//("delimiter" delimiter=STRING)?
+		public Group getGroup_3_0() { return cGroup_3_0; }
+
+		//"delimiter"
+		public Keyword getDelimiterKeyword_3_0_0() { return cDelimiterKeyword_3_0_0; }
+
+		//delimiter=STRING
+		public Assignment getDelimiterAssignment_3_0_1() { return cDelimiterAssignment_3_0_1; }
+
+		//STRING
+		public RuleCall getDelimiterSTRINGTerminalRuleCall_3_0_1_0() { return cDelimiterSTRINGTerminalRuleCall_3_0_1_0; }
+
+		//("quoteCharacter" quoteCharacter=STRING)?
+		public Group getGroup_3_1() { return cGroup_3_1; }
+
+		//"quoteCharacter"
+		public Keyword getQuoteCharacterKeyword_3_1_0() { return cQuoteCharacterKeyword_3_1_0; }
+
+		//quoteCharacter=STRING
+		public Assignment getQuoteCharacterAssignment_3_1_1() { return cQuoteCharacterAssignment_3_1_1; }
+
+		//STRING
+		public RuleCall getQuoteCharacterSTRINGTerminalRuleCall_3_1_1_0() { return cQuoteCharacterSTRINGTerminalRuleCall_3_1_1_0; }
+
+		//("skipLines" skipLines=INT)?
+		public Group getGroup_3_2() { return cGroup_3_2; }
+
+		//"skipLines"
+		public Keyword getSkipLinesKeyword_3_2_0() { return cSkipLinesKeyword_3_2_0; }
+
+		//skipLines=INT
+		public Assignment getSkipLinesAssignment_3_2_1() { return cSkipLinesAssignment_3_2_1; }
+
+		//INT
+		public RuleCall getSkipLinesINTTerminalRuleCall_3_2_1_0() { return cSkipLinesINTTerminalRuleCall_3_2_1_0; }
+
+		//indent?="indent"?
+		public Assignment getIndentAssignment_3_3() { return cIndentAssignment_3_3; }
+
+		//"indent"
+		public Keyword getIndentIndentKeyword_3_3_0() { return cIndentIndentKeyword_3_3_0; }
+
+		//strict?="strict"?
+		public Assignment getStrictAssignment_3_4() { return cStrictAssignment_3_4; }
+
+		//"strict"
+		public Keyword getStrictStrictKeyword_3_4_0() { return cStrictStrictKeyword_3_4_0; }
+
+		//validateHeader?="validateHeader"?
+		public Assignment getValidateHeaderAssignment_3_5() { return cValidateHeaderAssignment_3_5; }
+
+		//"validateHeader"
+		public Keyword getValidateHeaderValidateHeaderKeyword_3_5_0() { return cValidateHeaderValidateHeaderKeyword_3_5_0; }
+
+		//("encoding" encoding=STRING)?
+		public Group getGroup_3_6() { return cGroup_3_6; }
+
+		//"encoding"
+		public Keyword getEncodingKeyword_3_6_0() { return cEncodingKeyword_3_6_0; }
+
+		//encoding=STRING
+		public Assignment getEncodingAssignment_3_6_1() { return cEncodingAssignment_3_6_1; }
+
+		//STRING
+		public RuleCall getEncodingSTRINGTerminalRuleCall_3_6_1_0() { return cEncodingSTRINGTerminalRuleCall_3_6_1_0; }
+	}
+
+	public class DataInterchangeFileEDIElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeFileEDI");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeFileEDIAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cEDIKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cFileURLAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cFileURLSTRINGTerminalRuleCall_2_0 = (RuleCall)cFileURLAssignment_2.eContents().get(0);
+		private final Keyword cMappingModelKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cMappingModelAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cMappingModelSTRINGTerminalRuleCall_4_0 = (RuleCall)cMappingModelAssignment_4.eContents().get(0);
+		private final Assignment cValidateAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final Keyword cValidateValidateKeyword_5_0 = (Keyword)cValidateAssignment_5.eContents().get(0);
+		
+		//DataInterchangeFileEDI:
+		//	{DataInterchangeFileEDI} "EDI" fileURL=STRING "mappingModel" mappingModel=STRING validate?="validate"?;
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeFileEDI} "EDI" fileURL=STRING "mappingModel" mappingModel=STRING validate?="validate"?
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeFileEDI}
+		public Action getDataInterchangeFileEDIAction_0() { return cDataInterchangeFileEDIAction_0; }
+
+		//"EDI"
+		public Keyword getEDIKeyword_1() { return cEDIKeyword_1; }
+
+		//fileURL=STRING
+		public Assignment getFileURLAssignment_2() { return cFileURLAssignment_2; }
+
+		//STRING
+		public RuleCall getFileURLSTRINGTerminalRuleCall_2_0() { return cFileURLSTRINGTerminalRuleCall_2_0; }
+
+		//"mappingModel"
+		public Keyword getMappingModelKeyword_3() { return cMappingModelKeyword_3; }
+
+		//mappingModel=STRING
+		public Assignment getMappingModelAssignment_4() { return cMappingModelAssignment_4; }
+
+		//STRING
+		public RuleCall getMappingModelSTRINGTerminalRuleCall_4_0() { return cMappingModelSTRINGTerminalRuleCall_4_0; }
+
+		//validate?="validate"?
+		public Assignment getValidateAssignment_5() { return cValidateAssignment_5; }
+
+		//"validate"
+		public Keyword getValidateValidateKeyword_5_0() { return cValidateValidateKeyword_5_0; }
+	}
+
+	public class DataInterchangeBeanElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeBean");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeBeanAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cEntityKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cEntityAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cEntityLEntityCrossReference_2_0 = (CrossReference)cEntityAssignment_2.eContents().get(0);
+		private final RuleCall cEntityLEntityLFQNParserRuleCall_2_0_1 = (RuleCall)cEntityLEntityCrossReference_2_0.eContents().get(1);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cCreateOnKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cElementMapAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cElementMapSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cElementMapAssignment_3_1.eContents().get(0);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Assignment cMarkLatestAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
+		private final Keyword cMarkLatestMarkerKeyword_4_0_0 = (Keyword)cMarkLatestAssignment_4_0.eContents().get(0);
+		private final Assignment cLatestPropertyAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+		private final CrossReference cLatestPropertyLEntityAttributeCrossReference_4_1_0 = (CrossReference)cLatestPropertyAssignment_4_1.eContents().get(0);
+		private final RuleCall cLatestPropertyLEntityAttributeIDTerminalRuleCall_4_1_0_1 = (RuleCall)cLatestPropertyLEntityAttributeCrossReference_4_1_0.eContents().get(1);
+		private final Alternatives cAlternatives_5 = (Alternatives)cGroup.eContents().get(5);
+		private final Assignment cRecordElementAssignment_5_0 = (Assignment)cAlternatives_5.eContents().get(0);
+		private final Keyword cRecordElementRecordElementKeyword_5_0_0 = (Keyword)cRecordElementAssignment_5_0.eContents().get(0);
+		private final Assignment cRecordListAssignment_5_1 = (Assignment)cAlternatives_5.eContents().get(1);
+		private final Keyword cRecordListRecordListKeyword_5_1_0 = (Keyword)cRecordListAssignment_5_1.eContents().get(0);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Keyword cExpressionKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
+		private final Assignment cExpressionAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2);
+		private final RuleCall cExpressionDataInterchangeExpressionParserRuleCall_6_2_0 = (RuleCall)cExpressionAssignment_6_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_6_3 = (Keyword)cGroup_6.eContents().get(3);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Keyword cLookupKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
+		private final Assignment cLookupAssignment_7_2 = (Assignment)cGroup_7.eContents().get(2);
+		private final RuleCall cLookupDataInterchangeLookupParserRuleCall_7_2_0 = (RuleCall)cLookupAssignment_7_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_7_3 = (Keyword)cGroup_7.eContents().get(3);
+		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+		private final Keyword cFormatKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1);
+		private final Assignment cFormatAssignment_8_2 = (Assignment)cGroup_8.eContents().get(2);
+		private final RuleCall cFormatDataInterchangeFormatParserRuleCall_8_2_0 = (RuleCall)cFormatAssignment_8_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_8_3 = (Keyword)cGroup_8.eContents().get(3);
+		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
+		private final Keyword cMappingKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_9_1 = (Keyword)cGroup_9.eContents().get(1);
+		private final Assignment cMappingsAssignment_9_2 = (Assignment)cGroup_9.eContents().get(2);
+		private final RuleCall cMappingsDataInterchangeMappingParserRuleCall_9_2_0 = (RuleCall)cMappingsAssignment_9_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_9_3 = (Keyword)cGroup_9.eContents().get(3);
+		
+		//DataInterchangeBean:
+		//	{DataInterchangeBean} "entity" entity=[entity::LEntity|LFQN] ("createOn" elementMap=STRING)? (markLatest?="marker"
+		//	latestProperty=[entity::LEntityAttribute])? (recordElement?="recordElement" | recordList?="recordList")? ("expression"
+		//	"{" expression+=DataInterchangeExpression* "}")? ("lookup" "{" lookup+=DataInterchangeLookup* "}")? ("format" "{"
+		//	format+=DataInterchangeFormat* "}")? ("mapping" "{" mappings+=DataInterchangeMapping* "}")?;
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeBean} "entity" entity=[entity::LEntity|LFQN] ("createOn" elementMap=STRING)? (markLatest?="marker"
+		//latestProperty=[entity::LEntityAttribute])? (recordElement?="recordElement" | recordList?="recordList")? ("expression"
+		//"{" expression+=DataInterchangeExpression* "}")? ("lookup" "{" lookup+=DataInterchangeLookup* "}")? ("format" "{"
+		//format+=DataInterchangeFormat* "}")? ("mapping" "{" mappings+=DataInterchangeMapping* "}")?
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeBean}
+		public Action getDataInterchangeBeanAction_0() { return cDataInterchangeBeanAction_0; }
+
+		//"entity"
+		public Keyword getEntityKeyword_1() { return cEntityKeyword_1; }
+
+		//entity=[entity::LEntity|LFQN]
+		public Assignment getEntityAssignment_2() { return cEntityAssignment_2; }
+
+		//[entity::LEntity|LFQN]
+		public CrossReference getEntityLEntityCrossReference_2_0() { return cEntityLEntityCrossReference_2_0; }
+
+		//LFQN
+		public RuleCall getEntityLEntityLFQNParserRuleCall_2_0_1() { return cEntityLEntityLFQNParserRuleCall_2_0_1; }
+
+		//("createOn" elementMap=STRING)?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"createOn"
+		public Keyword getCreateOnKeyword_3_0() { return cCreateOnKeyword_3_0; }
+
+		//elementMap=STRING
+		public Assignment getElementMapAssignment_3_1() { return cElementMapAssignment_3_1; }
+
+		//STRING
+		public RuleCall getElementMapSTRINGTerminalRuleCall_3_1_0() { return cElementMapSTRINGTerminalRuleCall_3_1_0; }
+
+		//(markLatest?="marker" latestProperty=[entity::LEntityAttribute])?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//markLatest?="marker"
+		public Assignment getMarkLatestAssignment_4_0() { return cMarkLatestAssignment_4_0; }
+
+		//"marker"
+		public Keyword getMarkLatestMarkerKeyword_4_0_0() { return cMarkLatestMarkerKeyword_4_0_0; }
+
+		//latestProperty=[entity::LEntityAttribute]
+		public Assignment getLatestPropertyAssignment_4_1() { return cLatestPropertyAssignment_4_1; }
+
+		//[entity::LEntityAttribute]
+		public CrossReference getLatestPropertyLEntityAttributeCrossReference_4_1_0() { return cLatestPropertyLEntityAttributeCrossReference_4_1_0; }
+
+		//ID
+		public RuleCall getLatestPropertyLEntityAttributeIDTerminalRuleCall_4_1_0_1() { return cLatestPropertyLEntityAttributeIDTerminalRuleCall_4_1_0_1; }
+
+		//(recordElement?="recordElement" | recordList?="recordList")?
+		public Alternatives getAlternatives_5() { return cAlternatives_5; }
+
+		//recordElement?="recordElement"
+		public Assignment getRecordElementAssignment_5_0() { return cRecordElementAssignment_5_0; }
+
+		//"recordElement"
+		public Keyword getRecordElementRecordElementKeyword_5_0_0() { return cRecordElementRecordElementKeyword_5_0_0; }
+
+		//recordList?="recordList"
+		public Assignment getRecordListAssignment_5_1() { return cRecordListAssignment_5_1; }
+
+		//"recordList"
+		public Keyword getRecordListRecordListKeyword_5_1_0() { return cRecordListRecordListKeyword_5_1_0; }
+
+		//("expression" "{" expression+=DataInterchangeExpression* "}")?
+		public Group getGroup_6() { return cGroup_6; }
+
+		//"expression"
+		public Keyword getExpressionKeyword_6_0() { return cExpressionKeyword_6_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_6_1() { return cLeftCurlyBracketKeyword_6_1; }
+
+		//expression+=DataInterchangeExpression*
+		public Assignment getExpressionAssignment_6_2() { return cExpressionAssignment_6_2; }
+
+		//DataInterchangeExpression
+		public RuleCall getExpressionDataInterchangeExpressionParserRuleCall_6_2_0() { return cExpressionDataInterchangeExpressionParserRuleCall_6_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6_3() { return cRightCurlyBracketKeyword_6_3; }
+
+		//("lookup" "{" lookup+=DataInterchangeLookup* "}")?
+		public Group getGroup_7() { return cGroup_7; }
+
+		//"lookup"
+		public Keyword getLookupKeyword_7_0() { return cLookupKeyword_7_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_7_1() { return cLeftCurlyBracketKeyword_7_1; }
+
+		//lookup+=DataInterchangeLookup*
+		public Assignment getLookupAssignment_7_2() { return cLookupAssignment_7_2; }
+
+		//DataInterchangeLookup
+		public RuleCall getLookupDataInterchangeLookupParserRuleCall_7_2_0() { return cLookupDataInterchangeLookupParserRuleCall_7_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_7_3() { return cRightCurlyBracketKeyword_7_3; }
+
+		//("format" "{" format+=DataInterchangeFormat* "}")?
+		public Group getGroup_8() { return cGroup_8; }
+
+		//"format"
+		public Keyword getFormatKeyword_8_0() { return cFormatKeyword_8_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_8_1() { return cLeftCurlyBracketKeyword_8_1; }
+
+		//format+=DataInterchangeFormat*
+		public Assignment getFormatAssignment_8_2() { return cFormatAssignment_8_2; }
+
+		//DataInterchangeFormat
+		public RuleCall getFormatDataInterchangeFormatParserRuleCall_8_2_0() { return cFormatDataInterchangeFormatParserRuleCall_8_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_8_3() { return cRightCurlyBracketKeyword_8_3; }
+
+		//("mapping" "{" mappings+=DataInterchangeMapping* "}")?
+		public Group getGroup_9() { return cGroup_9; }
+
+		//"mapping"
+		public Keyword getMappingKeyword_9_0() { return cMappingKeyword_9_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_9_1() { return cLeftCurlyBracketKeyword_9_1; }
+
+		//mappings+=DataInterchangeMapping*
+		public Assignment getMappingsAssignment_9_2() { return cMappingsAssignment_9_2; }
+
+		//DataInterchangeMapping
+		public RuleCall getMappingsDataInterchangeMappingParserRuleCall_9_2_0() { return cMappingsDataInterchangeMappingParserRuleCall_9_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9_3() { return cRightCurlyBracketKeyword_9_3; }
+	}
+
+	public class DataInterchangeLookupElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeLookup");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeLookupAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cForKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cTargetPropertyAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cTargetPropertyLEntityReferenceCrossReference_2_0 = (CrossReference)cTargetPropertyAssignment_2.eContents().get(0);
+		private final RuleCall cTargetPropertyLEntityReferenceIDTerminalRuleCall_2_0_1 = (RuleCall)cTargetPropertyLEntityReferenceCrossReference_2_0.eContents().get(1);
+		private final Keyword cOnKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cEntityAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final CrossReference cEntityLEntityCrossReference_4_0 = (CrossReference)cEntityAssignment_4.eContents().get(0);
+		private final RuleCall cEntityLEntityIDTerminalRuleCall_4_0_1 = (RuleCall)cEntityLEntityCrossReference_4_0.eContents().get(1);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cCreateOnKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Assignment cElementMapAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final RuleCall cElementMapSTRINGTerminalRuleCall_5_1_0 = (RuleCall)cElementMapAssignment_5_1.eContents().get(0);
+		private final Keyword cWithKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cQueryPropertyAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final CrossReference cQueryPropertyLEntityAttributeCrossReference_7_0 = (CrossReference)cQueryPropertyAssignment_7.eContents().get(0);
+		private final RuleCall cQueryPropertyLEntityAttributeIDTerminalRuleCall_7_0_1 = (RuleCall)cQueryPropertyLEntityAttributeCrossReference_7_0.eContents().get(1);
+		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+		private final Assignment cCachedAssignment_8_0 = (Assignment)cGroup_8.eContents().get(0);
+		private final Keyword cCachedCacheSizeKeyword_8_0_0 = (Keyword)cCachedAssignment_8_0.eContents().get(0);
+		private final Assignment cCacheSizeAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
+		private final RuleCall cCacheSizeINTTerminalRuleCall_8_1_0 = (RuleCall)cCacheSizeAssignment_8_1.eContents().get(0);
+		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
+		private final Keyword cMapToKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
+		private final Assignment cDataMapAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
+		private final RuleCall cDataMapSTRINGTerminalRuleCall_9_1_0 = (RuleCall)cDataMapAssignment_9_1.eContents().get(0);
+		private final UnorderedGroup cUnorderedGroup_10 = (UnorderedGroup)cGroup.eContents().get(10);
+		private final Assignment cAllowNoResultAssignment_10_0 = (Assignment)cUnorderedGroup_10.eContents().get(0);
+		private final Keyword cAllowNoResultAllowNoResultKeyword_10_0_0 = (Keyword)cAllowNoResultAssignment_10_0.eContents().get(0);
+		private final Assignment cAllowNonuniqueResultAssignment_10_1 = (Assignment)cUnorderedGroup_10.eContents().get(1);
+		private final Keyword cAllowNonuniqueResultAllowNonuniqueResultKeyword_10_1_0 = (Keyword)cAllowNonuniqueResultAssignment_10_1.eContents().get(0);
+		private final Assignment cMarkerPathAssignment_10_2 = (Assignment)cUnorderedGroup_10.eContents().get(2);
+		private final RuleCall cMarkerPathDataInterchangeMarkerPathParserRuleCall_10_2_0 = (RuleCall)cMarkerPathAssignment_10_2.eContents().get(0);
+		
+		//DataInterchangeLookup:
+		//	{DataInterchangeLookup} "for" targetProperty=[entity::LEntityReference] "on" entity=[entity::LEntity] ("createOn"
+		//	elementMap=STRING)? "with" queryProperty=[entity::LEntityAttribute] (cached?="cacheSize" cacheSize=INT)? ("mapTo"
+		//	dataMap=STRING)? (allowNoResult?="allowNoResult"? & allowNonuniqueResult?="allowNonuniqueResult"? &
+		//	markerPath=DataInterchangeMarkerPath?);
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeLookup} "for" targetProperty=[entity::LEntityReference] "on" entity=[entity::LEntity] ("createOn"
+		//elementMap=STRING)? "with" queryProperty=[entity::LEntityAttribute] (cached?="cacheSize" cacheSize=INT)? ("mapTo"
+		//dataMap=STRING)? (allowNoResult?="allowNoResult"? & allowNonuniqueResult?="allowNonuniqueResult"? &
+		//markerPath=DataInterchangeMarkerPath?)
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeLookup}
+		public Action getDataInterchangeLookupAction_0() { return cDataInterchangeLookupAction_0; }
+
+		//"for"
+		public Keyword getForKeyword_1() { return cForKeyword_1; }
+
+		//targetProperty=[entity::LEntityReference]
+		public Assignment getTargetPropertyAssignment_2() { return cTargetPropertyAssignment_2; }
+
+		//[entity::LEntityReference]
+		public CrossReference getTargetPropertyLEntityReferenceCrossReference_2_0() { return cTargetPropertyLEntityReferenceCrossReference_2_0; }
+
+		//ID
+		public RuleCall getTargetPropertyLEntityReferenceIDTerminalRuleCall_2_0_1() { return cTargetPropertyLEntityReferenceIDTerminalRuleCall_2_0_1; }
+
+		//"on"
+		public Keyword getOnKeyword_3() { return cOnKeyword_3; }
+
+		//entity=[entity::LEntity]
+		public Assignment getEntityAssignment_4() { return cEntityAssignment_4; }
+
+		//[entity::LEntity]
+		public CrossReference getEntityLEntityCrossReference_4_0() { return cEntityLEntityCrossReference_4_0; }
+
+		//ID
+		public RuleCall getEntityLEntityIDTerminalRuleCall_4_0_1() { return cEntityLEntityIDTerminalRuleCall_4_0_1; }
+
+		//("createOn" elementMap=STRING)?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"createOn"
+		public Keyword getCreateOnKeyword_5_0() { return cCreateOnKeyword_5_0; }
+
+		//elementMap=STRING
+		public Assignment getElementMapAssignment_5_1() { return cElementMapAssignment_5_1; }
+
+		//STRING
+		public RuleCall getElementMapSTRINGTerminalRuleCall_5_1_0() { return cElementMapSTRINGTerminalRuleCall_5_1_0; }
+
+		//"with"
+		public Keyword getWithKeyword_6() { return cWithKeyword_6; }
+
+		//queryProperty=[entity::LEntityAttribute]
+		public Assignment getQueryPropertyAssignment_7() { return cQueryPropertyAssignment_7; }
+
+		//[entity::LEntityAttribute]
+		public CrossReference getQueryPropertyLEntityAttributeCrossReference_7_0() { return cQueryPropertyLEntityAttributeCrossReference_7_0; }
+
+		//ID
+		public RuleCall getQueryPropertyLEntityAttributeIDTerminalRuleCall_7_0_1() { return cQueryPropertyLEntityAttributeIDTerminalRuleCall_7_0_1; }
+
+		//(cached?="cacheSize" cacheSize=INT)?
+		public Group getGroup_8() { return cGroup_8; }
+
+		//cached?="cacheSize"
+		public Assignment getCachedAssignment_8_0() { return cCachedAssignment_8_0; }
+
+		//"cacheSize"
+		public Keyword getCachedCacheSizeKeyword_8_0_0() { return cCachedCacheSizeKeyword_8_0_0; }
+
+		//cacheSize=INT
+		public Assignment getCacheSizeAssignment_8_1() { return cCacheSizeAssignment_8_1; }
+
+		//INT
+		public RuleCall getCacheSizeINTTerminalRuleCall_8_1_0() { return cCacheSizeINTTerminalRuleCall_8_1_0; }
+
+		//("mapTo" dataMap=STRING)?
+		public Group getGroup_9() { return cGroup_9; }
+
+		//"mapTo"
+		public Keyword getMapToKeyword_9_0() { return cMapToKeyword_9_0; }
+
+		//dataMap=STRING
+		public Assignment getDataMapAssignment_9_1() { return cDataMapAssignment_9_1; }
+
+		//STRING
+		public RuleCall getDataMapSTRINGTerminalRuleCall_9_1_0() { return cDataMapSTRINGTerminalRuleCall_9_1_0; }
+
+		//allowNoResult?="allowNoResult"? & allowNonuniqueResult?="allowNonuniqueResult"? & markerPath=DataInterchangeMarkerPath?
+		public UnorderedGroup getUnorderedGroup_10() { return cUnorderedGroup_10; }
+
+		//allowNoResult?="allowNoResult"?
+		public Assignment getAllowNoResultAssignment_10_0() { return cAllowNoResultAssignment_10_0; }
+
+		//"allowNoResult"
+		public Keyword getAllowNoResultAllowNoResultKeyword_10_0_0() { return cAllowNoResultAllowNoResultKeyword_10_0_0; }
+
+		//allowNonuniqueResult?="allowNonuniqueResult"?
+		public Assignment getAllowNonuniqueResultAssignment_10_1() { return cAllowNonuniqueResultAssignment_10_1; }
+
+		//"allowNonuniqueResult"
+		public Keyword getAllowNonuniqueResultAllowNonuniqueResultKeyword_10_1_0() { return cAllowNonuniqueResultAllowNonuniqueResultKeyword_10_1_0; }
+
+		//markerPath=DataInterchangeMarkerPath?
+		public Assignment getMarkerPathAssignment_10_2() { return cMarkerPathAssignment_10_2; }
+
+		//DataInterchangeMarkerPath
+		public RuleCall getMarkerPathDataInterchangeMarkerPathParserRuleCall_10_2_0() { return cMarkerPathDataInterchangeMarkerPathParserRuleCall_10_2_0; }
+	}
+
+	public class DataInterchangeMarkerPathElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeMarkerPath");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeMarkerPathAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cMarkerPathKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cPathAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cPathDataInterchangeMarkerEntityParserRuleCall_3_0 = (RuleCall)cPathAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//DataInterchangeMarkerPath:
+		//	{DataInterchangeMarkerPath} "markerPath" "{" path+=DataInterchangeMarkerEntity* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeMarkerPath} "markerPath" "{" path+=DataInterchangeMarkerEntity* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeMarkerPath}
+		public Action getDataInterchangeMarkerPathAction_0() { return cDataInterchangeMarkerPathAction_0; }
+
+		//"markerPath"
+		public Keyword getMarkerPathKeyword_1() { return cMarkerPathKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//path+=DataInterchangeMarkerEntity*
+		public Assignment getPathAssignment_3() { return cPathAssignment_3; }
+
+		//DataInterchangeMarkerEntity
+		public RuleCall getPathDataInterchangeMarkerEntityParserRuleCall_3_0() { return cPathDataInterchangeMarkerEntityParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	public class DataInterchangeMarkerEntityElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeMarkerEntity");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeMarkerEntityAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cMarkerEntityKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cMarkerEntityAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cMarkerEntityLEntityCrossReference_2_0 = (CrossReference)cMarkerEntityAssignment_2.eContents().get(0);
+		private final RuleCall cMarkerEntityLEntityLFQNParserRuleCall_2_0_1 = (RuleCall)cMarkerEntityLEntityCrossReference_2_0.eContents().get(1);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Assignment cMarkLatestAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
+		private final Keyword cMarkLatestMarkedByKeyword_3_0_0 = (Keyword)cMarkLatestAssignment_3_0.eContents().get(0);
+		private final Assignment cMarkerPropertyAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cMarkerPropertyLEntityAttributeCrossReference_3_1_0 = (CrossReference)cMarkerPropertyAssignment_3_1.eContents().get(0);
+		private final RuleCall cMarkerPropertyLEntityAttributeIDTerminalRuleCall_3_1_0_1 = (RuleCall)cMarkerPropertyLEntityAttributeCrossReference_3_1_0.eContents().get(1);
+		
+		//DataInterchangeMarkerEntity:
+		//	{DataInterchangeMarkerEntity} "markerEntity" markerEntity=[entity::LEntity|LFQN] (markLatest?="markedBy"
+		//	markerProperty=[entity::LEntityAttribute])?;
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeMarkerEntity} "markerEntity" markerEntity=[entity::LEntity|LFQN] (markLatest?="markedBy"
+		//markerProperty=[entity::LEntityAttribute])?
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeMarkerEntity}
+		public Action getDataInterchangeMarkerEntityAction_0() { return cDataInterchangeMarkerEntityAction_0; }
+
+		//"markerEntity"
+		public Keyword getMarkerEntityKeyword_1() { return cMarkerEntityKeyword_1; }
+
+		//markerEntity=[entity::LEntity|LFQN]
+		public Assignment getMarkerEntityAssignment_2() { return cMarkerEntityAssignment_2; }
+
+		//[entity::LEntity|LFQN]
+		public CrossReference getMarkerEntityLEntityCrossReference_2_0() { return cMarkerEntityLEntityCrossReference_2_0; }
+
+		//LFQN
+		public RuleCall getMarkerEntityLEntityLFQNParserRuleCall_2_0_1() { return cMarkerEntityLEntityLFQNParserRuleCall_2_0_1; }
+
+		//(markLatest?="markedBy" markerProperty=[entity::LEntityAttribute])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//markLatest?="markedBy"
+		public Assignment getMarkLatestAssignment_3_0() { return cMarkLatestAssignment_3_0; }
+
+		//"markedBy"
+		public Keyword getMarkLatestMarkedByKeyword_3_0_0() { return cMarkLatestMarkedByKeyword_3_0_0; }
+
+		//markerProperty=[entity::LEntityAttribute]
+		public Assignment getMarkerPropertyAssignment_3_1() { return cMarkerPropertyAssignment_3_1; }
+
+		//[entity::LEntityAttribute]
+		public CrossReference getMarkerPropertyLEntityAttributeCrossReference_3_1_0() { return cMarkerPropertyLEntityAttributeCrossReference_3_1_0; }
+
+		//ID
+		public RuleCall getMarkerPropertyLEntityAttributeIDTerminalRuleCall_3_1_0_1() { return cMarkerPropertyLEntityAttributeIDTerminalRuleCall_3_1_0_1; }
+	}
+
+	public class DataInterchangeFormatElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeFormat");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeFormatAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cForKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cTargetPropertyAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cTargetPropertyLEntityAttributeCrossReference_2_0 = (CrossReference)cTargetPropertyAssignment_2.eContents().get(0);
+		private final RuleCall cTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1 = (RuleCall)cTargetPropertyLEntityAttributeCrossReference_2_0.eContents().get(1);
+		private final Keyword cCodingKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cFormatAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cFormatSTRINGTerminalRuleCall_4_0 = (RuleCall)cFormatAssignment_4.eContents().get(0);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cLocaleKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Assignment cLocaleAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+		private final RuleCall cLocaleSTRINGTerminalRuleCall_5_1_0 = (RuleCall)cLocaleAssignment_5_1.eContents().get(0);
+		
+		//DataInterchangeFormat:
+		//	{DataInterchangeFormat} "for" targetProperty=[entity::LEntityAttribute] "coding" format=STRING ("locale"
+		//	locale=STRING)?;
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeFormat} "for" targetProperty=[entity::LEntityAttribute] "coding" format=STRING ("locale" locale=STRING)?
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeFormat}
+		public Action getDataInterchangeFormatAction_0() { return cDataInterchangeFormatAction_0; }
+
+		//"for"
+		public Keyword getForKeyword_1() { return cForKeyword_1; }
+
+		//targetProperty=[entity::LEntityAttribute]
+		public Assignment getTargetPropertyAssignment_2() { return cTargetPropertyAssignment_2; }
+
+		//[entity::LEntityAttribute]
+		public CrossReference getTargetPropertyLEntityAttributeCrossReference_2_0() { return cTargetPropertyLEntityAttributeCrossReference_2_0; }
+
+		//ID
+		public RuleCall getTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1() { return cTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1; }
+
+		//"coding"
+		public Keyword getCodingKeyword_3() { return cCodingKeyword_3; }
+
+		//format=STRING
+		public Assignment getFormatAssignment_4() { return cFormatAssignment_4; }
+
+		//STRING
+		public RuleCall getFormatSTRINGTerminalRuleCall_4_0() { return cFormatSTRINGTerminalRuleCall_4_0; }
+
+		//("locale" locale=STRING)?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"locale"
+		public Keyword getLocaleKeyword_5_0() { return cLocaleKeyword_5_0; }
+
+		//locale=STRING
+		public Assignment getLocaleAssignment_5_1() { return cLocaleAssignment_5_1; }
+
+		//STRING
+		public RuleCall getLocaleSTRINGTerminalRuleCall_5_1_0() { return cLocaleSTRINGTerminalRuleCall_5_1_0; }
+	}
+
+	public class DataInterchangeExpressionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeExpression");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cDataInterchangeEntityExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cDataInterchangePredefinedExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//DataInterchangeExpression:
+		//	DataInterchangeEntityExpression | DataInterchangePredefinedExpression;
+		public ParserRule getRule() { return rule; }
+
+		//DataInterchangeEntityExpression | DataInterchangePredefinedExpression
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//DataInterchangeEntityExpression
+		public RuleCall getDataInterchangeEntityExpressionParserRuleCall_0() { return cDataInterchangeEntityExpressionParserRuleCall_0; }
+
+		//DataInterchangePredefinedExpression
+		public RuleCall getDataInterchangePredefinedExpressionParserRuleCall_1() { return cDataInterchangePredefinedExpressionParserRuleCall_1; }
+	}
+
+	public class DataInterchangeEntityExpressionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeEntityExpression");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeEntityExpressionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cCopyKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cTargetPropertyAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cTargetPropertyLEntityAttributeCrossReference_2_0 = (CrossReference)cTargetPropertyAssignment_2.eContents().get(0);
+		private final RuleCall cTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1 = (RuleCall)cTargetPropertyLEntityAttributeCrossReference_2_0.eContents().get(1);
+		private final Keyword cFromKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cEntityAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final CrossReference cEntityLEntityCrossReference_4_0 = (CrossReference)cEntityAssignment_4.eContents().get(0);
+		private final RuleCall cEntityLEntityLFQNParserRuleCall_4_0_1 = (RuleCall)cEntityLEntityCrossReference_4_0.eContents().get(1);
+		private final Keyword cPropertyKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cPropertyAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final CrossReference cPropertyLEntityAttributeCrossReference_6_0 = (CrossReference)cPropertyAssignment_6.eContents().get(0);
+		private final RuleCall cPropertyLEntityAttributeIDTerminalRuleCall_6_0_1 = (RuleCall)cPropertyLEntityAttributeCrossReference_6_0.eContents().get(1);
+		
+		//DataInterchangeEntityExpression:
+		//	{DataInterchangeEntityExpression} "copy" targetProperty=[entity::LEntityAttribute] "from"
+		//	entity=[entity::LEntity|LFQN] "property" property=[entity::LEntityAttribute];
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeEntityExpression} "copy" targetProperty=[entity::LEntityAttribute] "from" entity=[entity::LEntity|LFQN]
+		//"property" property=[entity::LEntityAttribute]
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeEntityExpression}
+		public Action getDataInterchangeEntityExpressionAction_0() { return cDataInterchangeEntityExpressionAction_0; }
+
+		//"copy"
+		public Keyword getCopyKeyword_1() { return cCopyKeyword_1; }
+
+		//targetProperty=[entity::LEntityAttribute]
+		public Assignment getTargetPropertyAssignment_2() { return cTargetPropertyAssignment_2; }
+
+		//[entity::LEntityAttribute]
+		public CrossReference getTargetPropertyLEntityAttributeCrossReference_2_0() { return cTargetPropertyLEntityAttributeCrossReference_2_0; }
+
+		//ID
+		public RuleCall getTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1() { return cTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1; }
+
+		//"from"
+		public Keyword getFromKeyword_3() { return cFromKeyword_3; }
+
+		//entity=[entity::LEntity|LFQN]
+		public Assignment getEntityAssignment_4() { return cEntityAssignment_4; }
+
+		//[entity::LEntity|LFQN]
+		public CrossReference getEntityLEntityCrossReference_4_0() { return cEntityLEntityCrossReference_4_0; }
+
+		//LFQN
+		public RuleCall getEntityLEntityLFQNParserRuleCall_4_0_1() { return cEntityLEntityLFQNParserRuleCall_4_0_1; }
+
+		//"property"
+		public Keyword getPropertyKeyword_5() { return cPropertyKeyword_5; }
+
+		//property=[entity::LEntityAttribute]
+		public Assignment getPropertyAssignment_6() { return cPropertyAssignment_6; }
+
+		//[entity::LEntityAttribute]
+		public CrossReference getPropertyLEntityAttributeCrossReference_6_0() { return cPropertyLEntityAttributeCrossReference_6_0; }
+
+		//ID
+		public RuleCall getPropertyLEntityAttributeIDTerminalRuleCall_6_0_1() { return cPropertyLEntityAttributeIDTerminalRuleCall_6_0_1; }
+	}
+
+	public class DataInterchangePredefinedExpressionElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangePredefinedExpression");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangePredefinedExpressionAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cAssignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cTargetPropertyAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cTargetPropertyLEntityAttributeCrossReference_2_0 = (CrossReference)cTargetPropertyAssignment_2.eContents().get(0);
+		private final RuleCall cTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1 = (RuleCall)cTargetPropertyLEntityAttributeCrossReference_2_0.eContents().get(1);
+		private final Keyword cWithKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cBeanAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cBeanPredefinedBeanEnumEnumRuleCall_4_0 = (RuleCall)cBeanAssignment_4.eContents().get(0);
+		private final Keyword cAsKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cBeanTypeAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cBeanTypePredefinedBeanTypeEnumEnumRuleCall_6_0 = (RuleCall)cBeanTypeAssignment_6.eContents().get(0);
+		
+		//DataInterchangePredefinedExpression:
+		//	{DataInterchangePredefinedExpression} "assign" targetProperty=[entity::LEntityAttribute] "with"
+		//	bean=PredefinedBeanEnum "as" beanType=PredefinedBeanTypeEnum;
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangePredefinedExpression} "assign" targetProperty=[entity::LEntityAttribute] "with" bean=PredefinedBeanEnum
+		//"as" beanType=PredefinedBeanTypeEnum
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangePredefinedExpression}
+		public Action getDataInterchangePredefinedExpressionAction_0() { return cDataInterchangePredefinedExpressionAction_0; }
+
+		//"assign"
+		public Keyword getAssignKeyword_1() { return cAssignKeyword_1; }
+
+		//targetProperty=[entity::LEntityAttribute]
+		public Assignment getTargetPropertyAssignment_2() { return cTargetPropertyAssignment_2; }
+
+		//[entity::LEntityAttribute]
+		public CrossReference getTargetPropertyLEntityAttributeCrossReference_2_0() { return cTargetPropertyLEntityAttributeCrossReference_2_0; }
+
+		//ID
+		public RuleCall getTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1() { return cTargetPropertyLEntityAttributeIDTerminalRuleCall_2_0_1; }
+
+		//"with"
+		public Keyword getWithKeyword_3() { return cWithKeyword_3; }
+
+		//bean=PredefinedBeanEnum
+		public Assignment getBeanAssignment_4() { return cBeanAssignment_4; }
+
+		//PredefinedBeanEnum
+		public RuleCall getBeanPredefinedBeanEnumEnumRuleCall_4_0() { return cBeanPredefinedBeanEnumEnumRuleCall_4_0; }
+
+		//"as"
+		public Keyword getAsKeyword_5() { return cAsKeyword_5; }
+
+		//beanType=PredefinedBeanTypeEnum
+		public Assignment getBeanTypeAssignment_6() { return cBeanTypeAssignment_6; }
+
+		//PredefinedBeanTypeEnum
+		public RuleCall getBeanTypePredefinedBeanTypeEnumEnumRuleCall_6_0() { return cBeanTypePredefinedBeanTypeEnumEnumRuleCall_6_0; }
+	}
+
+	public class DataInterchangeMappingElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeMapping");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDataInterchangeMappingAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cMapKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cPropertyAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cPropertyLEntityAttributeCrossReference_2_0 = (CrossReference)cPropertyAssignment_2.eContents().get(0);
+		private final RuleCall cPropertyLEntityAttributeIDTerminalRuleCall_2_0_1 = (RuleCall)cPropertyLEntityAttributeCrossReference_2_0.eContents().get(1);
+		private final Keyword cToKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cDataAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cDataSTRINGTerminalRuleCall_4_0 = (RuleCall)cDataAssignment_4.eContents().get(0);
+		
+		//DataInterchangeMapping:
+		//	{DataInterchangeMapping} "map" property=[entity::LEntityAttribute] "to" data=STRING;
+		public ParserRule getRule() { return rule; }
+
+		//{DataInterchangeMapping} "map" property=[entity::LEntityAttribute] "to" data=STRING
+		public Group getGroup() { return cGroup; }
+
+		//{DataInterchangeMapping}
+		public Action getDataInterchangeMappingAction_0() { return cDataInterchangeMappingAction_0; }
+
+		//"map"
+		public Keyword getMapKeyword_1() { return cMapKeyword_1; }
+
+		//property=[entity::LEntityAttribute]
+		public Assignment getPropertyAssignment_2() { return cPropertyAssignment_2; }
+
+		//[entity::LEntityAttribute]
+		public CrossReference getPropertyLEntityAttributeCrossReference_2_0() { return cPropertyLEntityAttributeCrossReference_2_0; }
+
+		//ID
+		public RuleCall getPropertyLEntityAttributeIDTerminalRuleCall_2_0_1() { return cPropertyLEntityAttributeIDTerminalRuleCall_2_0_1; }
+
+		//"to"
+		public Keyword getToKeyword_3() { return cToKeyword_3; }
+
+		//data=STRING
+		public Assignment getDataAssignment_4() { return cDataAssignment_4; }
+
+		//STRING
+		public RuleCall getDataSTRINGTerminalRuleCall_4_0() { return cDataSTRINGTerminalRuleCall_4_0; }
+	}
+
+	public class DataInterchangeImportElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeImport");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cImportedNamespaceAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cImportedNamespaceDataInterchangeQualifiedNameWithWildCardParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
+		
+		//DataInterchangeImport returns types::LImport:
+		//	"import" importedNamespace=DataInterchangeQualifiedNameWithWildCard;
+		public ParserRule getRule() { return rule; }
+
+		//"import" importedNamespace=DataInterchangeQualifiedNameWithWildCard
+		public Group getGroup() { return cGroup; }
+
+		//"import"
+		public Keyword getImportKeyword_0() { return cImportKeyword_0; }
+
+		//importedNamespace=DataInterchangeQualifiedNameWithWildCard
+		public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }
+
+		//DataInterchangeQualifiedNameWithWildCard
+		public RuleCall getImportedNamespaceDataInterchangeQualifiedNameWithWildCardParserRuleCall_1_0() { return cImportedNamespaceDataInterchangeQualifiedNameWithWildCardParserRuleCall_1_0; }
+	}
+
+	public class DataInterchangeQualifiedNameWithWildCardElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DataInterchangeQualifiedNameWithWildCard");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final RuleCall cQualifiedNameParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Keyword cAsteriskKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
+		
+		//DataInterchangeQualifiedNameWithWildCard:
+		//	QualifiedName ("." "*")?;
+		public ParserRule getRule() { return rule; }
+
+		//QualifiedName ("." "*")?
+		public Group getGroup() { return cGroup; }
+
+		//QualifiedName
+		public RuleCall getQualifiedNameParserRuleCall_0() { return cQualifiedNameParserRuleCall_0; }
+
+		//("." "*")?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"."
+		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
+
+		//"*"
+		public Keyword getAsteriskKeyword_1_1() { return cAsteriskKeyword_1_1; }
+	}
+
+	public class QualifiedNameElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QualifiedName");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final RuleCall cValidIDParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final RuleCall cValidIDParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
+		
+		//QualifiedName:
+		//	ValidID ("." ValidID)*;
+		public ParserRule getRule() { return rule; }
+
+		//ValidID ("." ValidID)*
+		public Group getGroup() { return cGroup; }
+
+		//ValidID
+		public RuleCall getValidIDParserRuleCall_0() { return cValidIDParserRuleCall_0; }
+
+		//(=> "." ValidID)*
+		public Group getGroup_1() { return cGroup_1; }
+
+		//=> "."
+		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
+
+		//ValidID
+		public RuleCall getValidIDParserRuleCall_1_1() { return cValidIDParserRuleCall_1_1; }
+	}
+
+	public class ValidIDElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ValidID");
+		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+		
+		//ValidID:
+		//	ID;
+		public ParserRule getRule() { return rule; }
+
+		//ID
+		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
+	}
+
+	public class LFQNElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LFQN");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final RuleCall cIDTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
+		
+		//LFQN:
+		//	ID ("." ID)*;
+		public ParserRule getRule() { return rule; }
+
+		//ID ("." ID)*
+		public Group getGroup() { return cGroup; }
+
+		//ID
+		public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }
+
+		//("." ID)*
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"."
+		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
+
+		//ID
+		public RuleCall getIDTerminalRuleCall_1_1() { return cIDTerminalRuleCall_1_1; }
+	}
+
+	public class TRANSLATABLESTRINGElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TRANSLATABLESTRING");
+		private final RuleCall cSTRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+		
+		//TRANSLATABLESTRING:
+		//	STRING;
+		public ParserRule getRule() { return rule; }
+
+		//STRING
+		public RuleCall getSTRINGTerminalRuleCall() { return cSTRINGTerminalRuleCall; }
+	}
+
+	public class TRANSLATABLEIDElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TRANSLATABLEID");
+		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+		
+		//TRANSLATABLEID:
+		//	ID;
+		public ParserRule getRule() { return rule; }
+
+		//ID
+		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
+	}
+	
+	
+	public class PredefinedBeanEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "PredefinedBeanEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cNowEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cNowNowDateKeyword_0_0 = (Keyword)cNowEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cStartEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cStartStartDateKeyword_1_0 = (Keyword)cStartEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cUUIDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cUUIDUniversallyUniqueIdentifierKeyword_2_0 = (Keyword)cUUIDEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum PredefinedBeanEnum:
+		//	now="NowDate" | start="StartDate" | UUID="UniversallyUniqueIdentifier";
+		public EnumRule getRule() { return rule; }
+
+		//now="NowDate" | start="StartDate" | UUID="UniversallyUniqueIdentifier"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//now="NowDate"
+		public EnumLiteralDeclaration getNowEnumLiteralDeclaration_0() { return cNowEnumLiteralDeclaration_0; }
+
+		//"NowDate"
+		public Keyword getNowNowDateKeyword_0_0() { return cNowNowDateKeyword_0_0; }
+
+		//start="StartDate"
+		public EnumLiteralDeclaration getStartEnumLiteralDeclaration_1() { return cStartEnumLiteralDeclaration_1; }
+
+		//"StartDate"
+		public Keyword getStartStartDateKeyword_1_0() { return cStartStartDateKeyword_1_0; }
+
+		//UUID="UniversallyUniqueIdentifier"
+		public EnumLiteralDeclaration getUUIDEnumLiteralDeclaration_2() { return cUUIDEnumLiteralDeclaration_2; }
+
+		//"UniversallyUniqueIdentifier"
+		public Keyword getUUIDUniversallyUniqueIdentifierKeyword_2_0() { return cUUIDUniversallyUniqueIdentifierKeyword_2_0; }
+	}
+
+	public class PredefinedBeanTypeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "PredefinedBeanTypeEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cDateEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cDateDateKeyword_0_0 = (Keyword)cDateEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cMillisEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cMillisMillisecondsKeyword_1_0 = (Keyword)cMillisEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cNanosEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cNanosNanosecondsKeyword_2_0 = (Keyword)cNanosEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cRandomEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cRandomRandomKeyword_3_0 = (Keyword)cRandomEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cExecContextEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cExecContextExecuteContextKeyword_4_0 = (Keyword)cExecContextEnumLiteralDeclaration_4.eContents().get(0);
+		
+		//enum PredefinedBeanTypeEnum:
+		//	Date | Millis="Milliseconds" | Nanos="Nanoseconds" | random="Random" | execContext="ExecuteContext";
+		public EnumRule getRule() { return rule; }
+
+		//Date | Millis="Milliseconds" | Nanos="Nanoseconds" | random="Random" | execContext="ExecuteContext"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//Date
+		public EnumLiteralDeclaration getDateEnumLiteralDeclaration_0() { return cDateEnumLiteralDeclaration_0; }
+
+		//"Date"
+		public Keyword getDateDateKeyword_0_0() { return cDateDateKeyword_0_0; }
+
+		//Millis="Milliseconds"
+		public EnumLiteralDeclaration getMillisEnumLiteralDeclaration_1() { return cMillisEnumLiteralDeclaration_1; }
+
+		//"Milliseconds"
+		public Keyword getMillisMillisecondsKeyword_1_0() { return cMillisMillisecondsKeyword_1_0; }
+
+		//Nanos="Nanoseconds"
+		public EnumLiteralDeclaration getNanosEnumLiteralDeclaration_2() { return cNanosEnumLiteralDeclaration_2; }
+
+		//"Nanoseconds"
+		public Keyword getNanosNanosecondsKeyword_2_0() { return cNanosNanosecondsKeyword_2_0; }
+
+		//random="Random"
+		public EnumLiteralDeclaration getRandomEnumLiteralDeclaration_3() { return cRandomEnumLiteralDeclaration_3; }
+
+		//"Random"
+		public Keyword getRandomRandomKeyword_3_0() { return cRandomRandomKeyword_3_0; }
+
+		//execContext="ExecuteContext"
+		public EnumLiteralDeclaration getExecContextEnumLiteralDeclaration_4() { return cExecContextEnumLiteralDeclaration_4; }
+
+		//"ExecuteContext"
+		public Keyword getExecContextExecuteContextKeyword_4_0() { return cExecContextExecuteContextKeyword_4_0; }
+	}
+
+	public class ProgressBarStylesEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "ProgressBarStylesEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cNoneEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cNoneNoneKeyword_0_0 = (Keyword)cNoneEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cNormalEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cNormalNormalKeyword_1_0 = (Keyword)cNormalEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cImportantEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cImportantImportantKeyword_2_0 = (Keyword)cImportantEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum ProgressBarStylesEnum:
+		//	none | normal | important;
+		public EnumRule getRule() { return rule; }
+
+		//none | normal | important
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//none
+		public EnumLiteralDeclaration getNoneEnumLiteralDeclaration_0() { return cNoneEnumLiteralDeclaration_0; }
+
+		//"none"
+		public Keyword getNoneNoneKeyword_0_0() { return cNoneNoneKeyword_0_0; }
+
+		//normal
+		public EnumLiteralDeclaration getNormalEnumLiteralDeclaration_1() { return cNormalEnumLiteralDeclaration_1; }
+
+		//"normal"
+		public Keyword getNormalNormalKeyword_1_0() { return cNormalNormalKeyword_1_0; }
+
+		//important
+		public EnumLiteralDeclaration getImportantEnumLiteralDeclaration_2() { return cImportantEnumLiteralDeclaration_2; }
+
+		//"important"
+		public Keyword getImportantImportantKeyword_2_0() { return cImportantImportantKeyword_2_0; }
+	}
+	
+	private final DataInterchangeModelElements pDataInterchangeModel;
+	private final DataInterchangePackageElements pDataInterchangePackage;
+	private final DataInterchangeElements pDataInterchange;
+	private final DataInterchangeFileElements pDataInterchangeFile;
+	private final DataInterchangeFileXMLElements pDataInterchangeFileXML;
+	private final DataInterchangeFileCSVElements pDataInterchangeFileCSV;
+	private final DataInterchangeFileEDIElements pDataInterchangeFileEDI;
+	private final DataInterchangeBeanElements pDataInterchangeBean;
+	private final DataInterchangeLookupElements pDataInterchangeLookup;
+	private final DataInterchangeMarkerPathElements pDataInterchangeMarkerPath;
+	private final DataInterchangeMarkerEntityElements pDataInterchangeMarkerEntity;
+	private final DataInterchangeFormatElements pDataInterchangeFormat;
+	private final DataInterchangeExpressionElements pDataInterchangeExpression;
+	private final DataInterchangeEntityExpressionElements pDataInterchangeEntityExpression;
+	private final DataInterchangePredefinedExpressionElements pDataInterchangePredefinedExpression;
+	private final DataInterchangeMappingElements pDataInterchangeMapping;
+	private final DataInterchangeImportElements pDataInterchangeImport;
+	private final DataInterchangeQualifiedNameWithWildCardElements pDataInterchangeQualifiedNameWithWildCard;
+	private final QualifiedNameElements pQualifiedName;
+	private final ValidIDElements pValidID;
+	private final LFQNElements pLFQN;
+	private final TRANSLATABLESTRINGElements pTRANSLATABLESTRING;
+	private final TRANSLATABLEIDElements pTRANSLATABLEID;
+	private final PredefinedBeanEnumElements unknownRulePredefinedBeanEnum;
+	private final PredefinedBeanTypeEnumElements unknownRulePredefinedBeanTypeEnum;
+	private final ProgressBarStylesEnumElements unknownRuleProgressBarStylesEnum;
+	
+	private final Grammar grammar;
+
+	private final XbaseWithAnnotationsGrammarAccess gaXbaseWithAnnotations;
+
+	@Inject
+	public DataDSLGrammarAccess(GrammarProvider grammarProvider,
+		XbaseWithAnnotationsGrammarAccess gaXbaseWithAnnotations) {
+		this.grammar = internalFindGrammar(grammarProvider);
+		this.gaXbaseWithAnnotations = gaXbaseWithAnnotations;
+		this.pDataInterchangeModel = new DataInterchangeModelElements();
+		this.pDataInterchangePackage = new DataInterchangePackageElements();
+		this.pDataInterchange = new DataInterchangeElements();
+		this.pDataInterchangeFile = new DataInterchangeFileElements();
+		this.pDataInterchangeFileXML = new DataInterchangeFileXMLElements();
+		this.pDataInterchangeFileCSV = new DataInterchangeFileCSVElements();
+		this.pDataInterchangeFileEDI = new DataInterchangeFileEDIElements();
+		this.pDataInterchangeBean = new DataInterchangeBeanElements();
+		this.pDataInterchangeLookup = new DataInterchangeLookupElements();
+		this.pDataInterchangeMarkerPath = new DataInterchangeMarkerPathElements();
+		this.pDataInterchangeMarkerEntity = new DataInterchangeMarkerEntityElements();
+		this.pDataInterchangeFormat = new DataInterchangeFormatElements();
+		this.pDataInterchangeExpression = new DataInterchangeExpressionElements();
+		this.pDataInterchangeEntityExpression = new DataInterchangeEntityExpressionElements();
+		this.pDataInterchangePredefinedExpression = new DataInterchangePredefinedExpressionElements();
+		this.pDataInterchangeMapping = new DataInterchangeMappingElements();
+		this.pDataInterchangeImport = new DataInterchangeImportElements();
+		this.pDataInterchangeQualifiedNameWithWildCard = new DataInterchangeQualifiedNameWithWildCardElements();
+		this.pQualifiedName = new QualifiedNameElements();
+		this.pValidID = new ValidIDElements();
+		this.pLFQN = new LFQNElements();
+		this.pTRANSLATABLESTRING = new TRANSLATABLESTRINGElements();
+		this.pTRANSLATABLEID = new TRANSLATABLEIDElements();
+		this.unknownRulePredefinedBeanEnum = new PredefinedBeanEnumElements();
+		this.unknownRulePredefinedBeanTypeEnum = new PredefinedBeanTypeEnumElements();
+		this.unknownRuleProgressBarStylesEnum = new ProgressBarStylesEnumElements();
+	}
+	
+	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+		Grammar grammar = grammarProvider.getGrammar(this);
+		while (grammar != null) {
+			if ("org.eclipse.osbp.xtext.datainterchange.DataDSL".equals(grammar.getName())) {
+				return grammar;
+			}
+			List<Grammar> grammars = grammar.getUsedGrammars();
+			if (!grammars.isEmpty()) {
+				grammar = grammars.iterator().next();
+			} else {
+				return null;
+			}
+		}
+		return grammar;
+	}
+	
+	
+	public Grammar getGrammar() {
+		return grammar;
+	}
+	
+
+	public XbaseWithAnnotationsGrammarAccess getXbaseWithAnnotationsGrammarAccess() {
+		return gaXbaseWithAnnotations;
+	}
+
+	
+	//DataInterchangeModel:
+	//	packages+=DataInterchangePackage*;
+	public DataInterchangeModelElements getDataInterchangeModelAccess() {
+		return pDataInterchangeModel;
+	}
+	
+	public ParserRule getDataInterchangeModelRule() {
+		return getDataInterchangeModelAccess().getRule();
+	}
+
+	//DataInterchangePackage:
+	//	{DataInterchangePackage} "package" name=QualifiedName "title" title=TRANSLATABLESTRING ("{"
+	//	imports+=DataInterchangeImport* datInts+=DataInterchange* "}")?;
+	public DataInterchangePackageElements getDataInterchangePackageAccess() {
+		return pDataInterchangePackage;
+	}
+	
+	public ParserRule getDataInterchangePackageRule() {
+		return getDataInterchangePackageAccess().getRule();
+	}
+
+	//DataInterchange:
+	//	{DataInterchange} "interchange" name=TRANSLATABLEID (description?="described by" descriptionValue=TRANSLATABLESTRING)?
+	//	createReport?="create report"? ("averageElementSize" elementSize=INT)? ("progressBarStyle"
+	//	progressBarStyle=ProgressBarStylesEnum)? (refreshEnabled?="refreshViewWhenFinished" refresh=STRING)? "file"
+	//	fileEndpoint=DataInterchangeFile "beans" "{" path+=DataInterchangeBean* "}";
+	public DataInterchangeElements getDataInterchangeAccess() {
+		return pDataInterchange;
+	}
+	
+	public ParserRule getDataInterchangeRule() {
+		return getDataInterchangeAccess().getRule();
+	}
+
+	//DataInterchangeFile:
+	//	DataInterchangeFileXML | DataInterchangeFileCSV | DataInterchangeFileEDI;
+	public DataInterchangeFileElements getDataInterchangeFileAccess() {
+		return pDataInterchangeFile;
+	}
+	
+	public ParserRule getDataInterchangeFileRule() {
+		return getDataInterchangeFileAccess().getRule();
+	}
+
+	//DataInterchangeFileXML:
+	//	{DataInterchangeFileXML} "XML" fileURL=STRING;
+	public DataInterchangeFileXMLElements getDataInterchangeFileXMLAccess() {
+		return pDataInterchangeFileXML;
+	}
+	
+	public ParserRule getDataInterchangeFileXMLRule() {
+		return getDataInterchangeFileXMLAccess().getRule();
+	}
+
+	//DataInterchangeFileCSV:
+	//	{DataInterchangeFileCSV} "CSV" fileURL=STRING (("delimiter" delimiter=STRING)? & ("quoteCharacter"
+	//	quoteCharacter=STRING)? & ("skipLines" skipLines=INT)? & indent?="indent"? & strict?="strict"? &
+	//	validateHeader?="validateHeader"? & ("encoding" encoding=STRING)?);
+	public DataInterchangeFileCSVElements getDataInterchangeFileCSVAccess() {
+		return pDataInterchangeFileCSV;
+	}
+	
+	public ParserRule getDataInterchangeFileCSVRule() {
+		return getDataInterchangeFileCSVAccess().getRule();
+	}
+
+	//DataInterchangeFileEDI:
+	//	{DataInterchangeFileEDI} "EDI" fileURL=STRING "mappingModel" mappingModel=STRING validate?="validate"?;
+	public DataInterchangeFileEDIElements getDataInterchangeFileEDIAccess() {
+		return pDataInterchangeFileEDI;
+	}
+	
+	public ParserRule getDataInterchangeFileEDIRule() {
+		return getDataInterchangeFileEDIAccess().getRule();
+	}
+
+	//DataInterchangeBean:
+	//	{DataInterchangeBean} "entity" entity=[entity::LEntity|LFQN] ("createOn" elementMap=STRING)? (markLatest?="marker"
+	//	latestProperty=[entity::LEntityAttribute])? (recordElement?="recordElement" | recordList?="recordList")? ("expression"
+	//	"{" expression+=DataInterchangeExpression* "}")? ("lookup" "{" lookup+=DataInterchangeLookup* "}")? ("format" "{"
+	//	format+=DataInterchangeFormat* "}")? ("mapping" "{" mappings+=DataInterchangeMapping* "}")?;
+	public DataInterchangeBeanElements getDataInterchangeBeanAccess() {
+		return pDataInterchangeBean;
+	}
+	
+	public ParserRule getDataInterchangeBeanRule() {
+		return getDataInterchangeBeanAccess().getRule();
+	}
+
+	//DataInterchangeLookup:
+	//	{DataInterchangeLookup} "for" targetProperty=[entity::LEntityReference] "on" entity=[entity::LEntity] ("createOn"
+	//	elementMap=STRING)? "with" queryProperty=[entity::LEntityAttribute] (cached?="cacheSize" cacheSize=INT)? ("mapTo"
+	//	dataMap=STRING)? (allowNoResult?="allowNoResult"? & allowNonuniqueResult?="allowNonuniqueResult"? &
+	//	markerPath=DataInterchangeMarkerPath?);
+	public DataInterchangeLookupElements getDataInterchangeLookupAccess() {
+		return pDataInterchangeLookup;
+	}
+	
+	public ParserRule getDataInterchangeLookupRule() {
+		return getDataInterchangeLookupAccess().getRule();
+	}
+
+	//DataInterchangeMarkerPath:
+	//	{DataInterchangeMarkerPath} "markerPath" "{" path+=DataInterchangeMarkerEntity* "}";
+	public DataInterchangeMarkerPathElements getDataInterchangeMarkerPathAccess() {
+		return pDataInterchangeMarkerPath;
+	}
+	
+	public ParserRule getDataInterchangeMarkerPathRule() {
+		return getDataInterchangeMarkerPathAccess().getRule();
+	}
+
+	//DataInterchangeMarkerEntity:
+	//	{DataInterchangeMarkerEntity} "markerEntity" markerEntity=[entity::LEntity|LFQN] (markLatest?="markedBy"
+	//	markerProperty=[entity::LEntityAttribute])?;
+	public DataInterchangeMarkerEntityElements getDataInterchangeMarkerEntityAccess() {
+		return pDataInterchangeMarkerEntity;
+	}
+	
+	public ParserRule getDataInterchangeMarkerEntityRule() {
+		return getDataInterchangeMarkerEntityAccess().getRule();
+	}
+
+	//DataInterchangeFormat:
+	//	{DataInterchangeFormat} "for" targetProperty=[entity::LEntityAttribute] "coding" format=STRING ("locale"
+	//	locale=STRING)?;
+	public DataInterchangeFormatElements getDataInterchangeFormatAccess() {
+		return pDataInterchangeFormat;
+	}
+	
+	public ParserRule getDataInterchangeFormatRule() {
+		return getDataInterchangeFormatAccess().getRule();
+	}
+
+	//DataInterchangeExpression:
+	//	DataInterchangeEntityExpression | DataInterchangePredefinedExpression;
+	public DataInterchangeExpressionElements getDataInterchangeExpressionAccess() {
+		return pDataInterchangeExpression;
+	}
+	
+	public ParserRule getDataInterchangeExpressionRule() {
+		return getDataInterchangeExpressionAccess().getRule();
+	}
+
+	//DataInterchangeEntityExpression:
+	//	{DataInterchangeEntityExpression} "copy" targetProperty=[entity::LEntityAttribute] "from"
+	//	entity=[entity::LEntity|LFQN] "property" property=[entity::LEntityAttribute];
+	public DataInterchangeEntityExpressionElements getDataInterchangeEntityExpressionAccess() {
+		return pDataInterchangeEntityExpression;
+	}
+	
+	public ParserRule getDataInterchangeEntityExpressionRule() {
+		return getDataInterchangeEntityExpressionAccess().getRule();
+	}
+
+	//DataInterchangePredefinedExpression:
+	//	{DataInterchangePredefinedExpression} "assign" targetProperty=[entity::LEntityAttribute] "with"
+	//	bean=PredefinedBeanEnum "as" beanType=PredefinedBeanTypeEnum;
+	public DataInterchangePredefinedExpressionElements getDataInterchangePredefinedExpressionAccess() {
+		return pDataInterchangePredefinedExpression;
+	}
+	
+	public ParserRule getDataInterchangePredefinedExpressionRule() {
+		return getDataInterchangePredefinedExpressionAccess().getRule();
+	}
+
+	//DataInterchangeMapping:
+	//	{DataInterchangeMapping} "map" property=[entity::LEntityAttribute] "to" data=STRING;
+	public DataInterchangeMappingElements getDataInterchangeMappingAccess() {
+		return pDataInterchangeMapping;
+	}
+	
+	public ParserRule getDataInterchangeMappingRule() {
+		return getDataInterchangeMappingAccess().getRule();
+	}
+
+	//DataInterchangeImport returns types::LImport:
+	//	"import" importedNamespace=DataInterchangeQualifiedNameWithWildCard;
+	public DataInterchangeImportElements getDataInterchangeImportAccess() {
+		return pDataInterchangeImport;
+	}
+	
+	public ParserRule getDataInterchangeImportRule() {
+		return getDataInterchangeImportAccess().getRule();
+	}
+
+	//DataInterchangeQualifiedNameWithWildCard:
+	//	QualifiedName ("." "*")?;
+	public DataInterchangeQualifiedNameWithWildCardElements getDataInterchangeQualifiedNameWithWildCardAccess() {
+		return pDataInterchangeQualifiedNameWithWildCard;
+	}
+	
+	public ParserRule getDataInterchangeQualifiedNameWithWildCardRule() {
+		return getDataInterchangeQualifiedNameWithWildCardAccess().getRule();
+	}
+
+	//QualifiedName:
+	//	ValidID ("." ValidID)*;
+	public QualifiedNameElements getQualifiedNameAccess() {
+		return pQualifiedName;
+	}
+	
+	public ParserRule getQualifiedNameRule() {
+		return getQualifiedNameAccess().getRule();
+	}
+
+	//ValidID:
+	//	ID;
+	public ValidIDElements getValidIDAccess() {
+		return pValidID;
+	}
+	
+	public ParserRule getValidIDRule() {
+		return getValidIDAccess().getRule();
+	}
+
+	//LFQN:
+	//	ID ("." ID)*;
+	public LFQNElements getLFQNAccess() {
+		return pLFQN;
+	}
+	
+	public ParserRule getLFQNRule() {
+		return getLFQNAccess().getRule();
+	}
+
+	//TRANSLATABLESTRING:
+	//	STRING;
+	public TRANSLATABLESTRINGElements getTRANSLATABLESTRINGAccess() {
+		return pTRANSLATABLESTRING;
+	}
+	
+	public ParserRule getTRANSLATABLESTRINGRule() {
+		return getTRANSLATABLESTRINGAccess().getRule();
+	}
+
+	//TRANSLATABLEID:
+	//	ID;
+	public TRANSLATABLEIDElements getTRANSLATABLEIDAccess() {
+		return pTRANSLATABLEID;
+	}
+	
+	public ParserRule getTRANSLATABLEIDRule() {
+		return getTRANSLATABLEIDAccess().getRule();
+	}
+
+	//enum PredefinedBeanEnum:
+	//	now="NowDate" | start="StartDate" | UUID="UniversallyUniqueIdentifier";
+	public PredefinedBeanEnumElements getPredefinedBeanEnumAccess() {
+		return unknownRulePredefinedBeanEnum;
+	}
+	
+	public EnumRule getPredefinedBeanEnumRule() {
+		return getPredefinedBeanEnumAccess().getRule();
+	}
+
+	//enum PredefinedBeanTypeEnum:
+	//	Date | Millis="Milliseconds" | Nanos="Nanoseconds" | random="Random" | execContext="ExecuteContext";
+	public PredefinedBeanTypeEnumElements getPredefinedBeanTypeEnumAccess() {
+		return unknownRulePredefinedBeanTypeEnum;
+	}
+	
+	public EnumRule getPredefinedBeanTypeEnumRule() {
+		return getPredefinedBeanTypeEnumAccess().getRule();
+	}
+
+	//enum ProgressBarStylesEnum:
+	//	none | normal | important;
+	public ProgressBarStylesEnumElements getProgressBarStylesEnumAccess() {
+		return unknownRuleProgressBarStylesEnum;
+	}
+	
+	public EnumRule getProgressBarStylesEnumRule() {
+		return getProgressBarStylesEnumAccess().getRule();
+	}
+
+	//XAnnotation:
+	//	{XAnnotation} "@" annotationType=[types::JvmAnnotationType|QualifiedName] ("("
+	//	(elementValuePairs+=XAnnotationElementValuePair ("," elementValuePairs+=XAnnotationElementValuePair)* |
+	//	value=XAnnotationElementValueOrCommaList)? ")")?;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationElements getXAnnotationAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationAccess();
+	}
+	
+	public ParserRule getXAnnotationRule() {
+		return getXAnnotationAccess().getRule();
+	}
+
+	//XAnnotationElementValuePair:
+	//	=> (element=[types::JvmOperation|ValidID] "=") value=XAnnotationElementValue;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationElementValuePairElements getXAnnotationElementValuePairAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationElementValuePairAccess();
+	}
+	
+	public ParserRule getXAnnotationElementValuePairRule() {
+		return getXAnnotationElementValuePairAccess().getRule();
+	}
+
+	//XAnnotationElementValueOrCommaList returns xbase::XExpression:
+	//	=> ({xbase::XListLiteral} "#" "[") (elements+=XAnnotationOrExpression ("," elements+=XAnnotationOrExpression)*)? "]" |
+	//	XAnnotationOrExpression ({xbase::XListLiteral.elements+=current} ("," elements+=XAnnotationOrExpression)+)?;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationElementValueOrCommaListElements getXAnnotationElementValueOrCommaListAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationElementValueOrCommaListAccess();
+	}
+	
+	public ParserRule getXAnnotationElementValueOrCommaListRule() {
+		return getXAnnotationElementValueOrCommaListAccess().getRule();
+	}
+
+	//XAnnotationElementValue returns xbase::XExpression:
+	//	=> ({xbase::XListLiteral} "#" "[") (elements+=XAnnotationOrExpression ("," elements+=XAnnotationOrExpression)*)? "]" |
+	//	XAnnotationOrExpression;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationElementValueElements getXAnnotationElementValueAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationElementValueAccess();
+	}
+	
+	public ParserRule getXAnnotationElementValueRule() {
+		return getXAnnotationElementValueAccess().getRule();
+	}
+
+	//XAnnotationOrExpression returns xbase::XExpression:
+	//	XAnnotation | XExpression;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationOrExpressionElements getXAnnotationOrExpressionAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationOrExpressionAccess();
+	}
+	
+	public ParserRule getXAnnotationOrExpressionRule() {
+		return getXAnnotationOrExpressionAccess().getRule();
+	}
+
+	//XExpression:
+	//	XAssignment;
+	public XbaseGrammarAccess.XExpressionElements getXExpressionAccess() {
+		return gaXbaseWithAnnotations.getXExpressionAccess();
+	}
+	
+	public ParserRule getXExpressionRule() {
+		return getXExpressionAccess().getRule();
+	}
+
+	//XAssignment returns XExpression:
+	//	{XAssignment} feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign value=XAssignment | XOrExpression
+	//	(=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMultiAssign])
+	//	rightOperand=XAssignment)?;
+	public XbaseGrammarAccess.XAssignmentElements getXAssignmentAccess() {
+		return gaXbaseWithAnnotations.getXAssignmentAccess();
+	}
+	
+	public ParserRule getXAssignmentRule() {
+		return getXAssignmentAccess().getRule();
+	}
+
+	//OpSingleAssign:
+	//	"=";
+	public XbaseGrammarAccess.OpSingleAssignElements getOpSingleAssignAccess() {
+		return gaXbaseWithAnnotations.getOpSingleAssignAccess();
+	}
+	
+	public ParserRule getOpSingleAssignRule() {
+		return getOpSingleAssignAccess().getRule();
+	}
+
+	//OpMultiAssign:
+	//	"+=" | "-=" | "*=" | "/=" | "%=" | "<" "<" "=" | ">" ">"? ">=";
+	public XbaseGrammarAccess.OpMultiAssignElements getOpMultiAssignAccess() {
+		return gaXbaseWithAnnotations.getOpMultiAssignAccess();
+	}
+	
+	public ParserRule getOpMultiAssignRule() {
+		return getOpMultiAssignAccess().getRule();
+	}
+
+	//XOrExpression returns XExpression:
+	//	XAndExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOr])
+	//	rightOperand=XAndExpression)*;
+	public XbaseGrammarAccess.XOrExpressionElements getXOrExpressionAccess() {
+		return gaXbaseWithAnnotations.getXOrExpressionAccess();
+	}
+	
+	public ParserRule getXOrExpressionRule() {
+		return getXOrExpressionAccess().getRule();
+	}
+
+	//OpOr:
+	//	"||";
+	public XbaseGrammarAccess.OpOrElements getOpOrAccess() {
+		return gaXbaseWithAnnotations.getOpOrAccess();
+	}
+	
+	public ParserRule getOpOrRule() {
+		return getOpOrAccess().getRule();
+	}
+
+	//XAndExpression returns XExpression:
+	//	XEqualityExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAnd])
+	//	rightOperand=XEqualityExpression)*;
+	public XbaseGrammarAccess.XAndExpressionElements getXAndExpressionAccess() {
+		return gaXbaseWithAnnotations.getXAndExpressionAccess();
+	}
+	
+	public ParserRule getXAndExpressionRule() {
+		return getXAndExpressionAccess().getRule();
+	}
+
+	//OpAnd:
+	//	"&&";
+	public XbaseGrammarAccess.OpAndElements getOpAndAccess() {
+		return gaXbaseWithAnnotations.getOpAndAccess();
+	}
+	
+	public ParserRule getOpAndRule() {
+		return getOpAndAccess().getRule();
+	}
+
+	//XEqualityExpression returns XExpression:
+	//	XRelationalExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpEquality])
+	//	rightOperand=XRelationalExpression)*;
+	public XbaseGrammarAccess.XEqualityExpressionElements getXEqualityExpressionAccess() {
+		return gaXbaseWithAnnotations.getXEqualityExpressionAccess();
+	}
+	
+	public ParserRule getXEqualityExpressionRule() {
+		return getXEqualityExpressionAccess().getRule();
+	}
+
+	//OpEquality:
+	//	"==" | "!=" | "===" | "!==";
+	public XbaseGrammarAccess.OpEqualityElements getOpEqualityAccess() {
+		return gaXbaseWithAnnotations.getOpEqualityAccess();
+	}
+	
+	public ParserRule getOpEqualityRule() {
+		return getOpEqualityAccess().getRule();
+	}
+
+	//XRelationalExpression returns XExpression:
+	//	XOtherOperatorExpression (=> ({XInstanceOfExpression.expression=current} "instanceof") type=JvmTypeReference | =>
+	//	({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpCompare])
+	//	rightOperand=XOtherOperatorExpression)*;
+	public XbaseGrammarAccess.XRelationalExpressionElements getXRelationalExpressionAccess() {
+		return gaXbaseWithAnnotations.getXRelationalExpressionAccess();
+	}
+	
+	public ParserRule getXRelationalExpressionRule() {
+		return getXRelationalExpressionAccess().getRule();
+	}
+
+	//OpCompare:
+	//	">=" | "<" "=" | ">" | "<";
+	public XbaseGrammarAccess.OpCompareElements getOpCompareAccess() {
+		return gaXbaseWithAnnotations.getOpCompareAccess();
+	}
+	
+	public ParserRule getOpCompareRule() {
+		return getOpCompareAccess().getRule();
+	}
+
+	//XOtherOperatorExpression returns XExpression:
+	//	XAdditiveExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOther])
+	//	rightOperand=XAdditiveExpression)*;
+	public XbaseGrammarAccess.XOtherOperatorExpressionElements getXOtherOperatorExpressionAccess() {
+		return gaXbaseWithAnnotations.getXOtherOperatorExpressionAccess();
+	}
+	
+	public ParserRule getXOtherOperatorExpressionRule() {
+		return getXOtherOperatorExpressionAccess().getRule();
+	}
+
+	//OpOther:
+	//	"->" | "..<" | ">" ".." | ".." | "=>" | ">" (=> (">" ">") | ">") | "<" (=> ("<" "<") | "<" | "=>") | "<>" | "?:";
+	public XbaseGrammarAccess.OpOtherElements getOpOtherAccess() {
+		return gaXbaseWithAnnotations.getOpOtherAccess();
+	}
+	
+	public ParserRule getOpOtherRule() {
+		return getOpOtherAccess().getRule();
+	}
+
+	//XAdditiveExpression returns XExpression:
+	//	XMultiplicativeExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAdd])
+	//	rightOperand=XMultiplicativeExpression)*;
+	public XbaseGrammarAccess.XAdditiveExpressionElements getXAdditiveExpressionAccess() {
+		return gaXbaseWithAnnotations.getXAdditiveExpressionAccess();
+	}
+	
+	public ParserRule getXAdditiveExpressionRule() {
+		return getXAdditiveExpressionAccess().getRule();
+	}
+
+	//OpAdd:
+	//	"+" | "-";
+	public XbaseGrammarAccess.OpAddElements getOpAddAccess() {
+		return gaXbaseWithAnnotations.getOpAddAccess();
+	}
+	
+	public ParserRule getOpAddRule() {
+		return getOpAddAccess().getRule();
+	}
+
+	//XMultiplicativeExpression returns XExpression:
+	//	XUnaryOperation (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMulti])
+	//	rightOperand=XUnaryOperation)*;
+	public XbaseGrammarAccess.XMultiplicativeExpressionElements getXMultiplicativeExpressionAccess() {
+		return gaXbaseWithAnnotations.getXMultiplicativeExpressionAccess();
+	}
+	
+	public ParserRule getXMultiplicativeExpressionRule() {
+		return getXMultiplicativeExpressionAccess().getRule();
+	}
+
+	//OpMulti:
+	//	"*" | "**" | "/" | "%";
+	public XbaseGrammarAccess.OpMultiElements getOpMultiAccess() {
+		return gaXbaseWithAnnotations.getOpMultiAccess();
+	}
+	
+	public ParserRule getOpMultiRule() {
+		return getOpMultiAccess().getRule();
+	}
+
+	//XUnaryOperation returns XExpression:
+	//	{XUnaryOperation} feature=[types::JvmIdentifiableElement|OpUnary] operand=XUnaryOperation | XCastedExpression;
+	public XbaseGrammarAccess.XUnaryOperationElements getXUnaryOperationAccess() {
+		return gaXbaseWithAnnotations.getXUnaryOperationAccess();
+	}
+	
+	public ParserRule getXUnaryOperationRule() {
+		return getXUnaryOperationAccess().getRule();
+	}
+
+	//OpUnary:
+	//	"!" | "-" | "+";
+	public XbaseGrammarAccess.OpUnaryElements getOpUnaryAccess() {
+		return gaXbaseWithAnnotations.getOpUnaryAccess();
+	}
+	
+	public ParserRule getOpUnaryRule() {
+		return getOpUnaryAccess().getRule();
+	}
+
+	//XCastedExpression returns XExpression:
+	//	XPostfixOperation (=> ({XCastedExpression.target=current} "as") type=JvmTypeReference)*;
+	public XbaseGrammarAccess.XCastedExpressionElements getXCastedExpressionAccess() {
+		return gaXbaseWithAnnotations.getXCastedExpressionAccess();
+	}
+	
+	public ParserRule getXCastedExpressionRule() {
+		return getXCastedExpressionAccess().getRule();
+	}
+
+	//XPostfixOperation returns XExpression:
+	//	XMemberFeatureCall => ({XPostfixOperation.operand=current} feature=[types::JvmIdentifiableElement|OpPostfix])?;
+	public XbaseGrammarAccess.XPostfixOperationElements getXPostfixOperationAccess() {
+		return gaXbaseWithAnnotations.getXPostfixOperationAccess();
+	}
+	
+	public ParserRule getXPostfixOperationRule() {
+		return getXPostfixOperationAccess().getRule();
+	}
+
+	//OpPostfix:
+	//	"++" | "--";
+	public XbaseGrammarAccess.OpPostfixElements getOpPostfixAccess() {
+		return gaXbaseWithAnnotations.getOpPostfixAccess();
+	}
+	
+	public ParserRule getOpPostfixRule() {
+		return getOpPostfixAccess().getRule();
+	}
+
+	//XMemberFeatureCall returns XExpression:
+	//	XPrimaryExpression (=> ({XAssignment.assignable=current} ("." | explicitStatic?="::")
+	//	feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign) value=XAssignment | =>
+	//	({XMemberFeatureCall.memberCallTarget=current} ("." | nullSafe?="?." | explicitStatic?="::")) ("<"
+	//	typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")?
+	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?="(" (memberCallArguments+=XShortClosure |
+	//	memberCallArguments+=XExpression ("," memberCallArguments+=XExpression)*)? ")")? memberCallArguments+=XClosure?)*;
+	public XbaseGrammarAccess.XMemberFeatureCallElements getXMemberFeatureCallAccess() {
+		return gaXbaseWithAnnotations.getXMemberFeatureCallAccess();
+	}
+	
+	public ParserRule getXMemberFeatureCallRule() {
+		return getXMemberFeatureCallAccess().getRule();
+	}
+
+	//XPrimaryExpression returns XExpression:
+	//	XConstructorCall | XBlockExpression | XSwitchExpression | XSynchronizedExpression | XFeatureCall | XLiteral |
+	//	XIfExpression | XForLoopExpression | XBasicForLoopExpression | XWhileExpression | XDoWhileExpression |
+	//	XThrowExpression | XReturnExpression | XTryCatchFinallyExpression | XParenthesizedExpression;
+	public XbaseGrammarAccess.XPrimaryExpressionElements getXPrimaryExpressionAccess() {
+		return gaXbaseWithAnnotations.getXPrimaryExpressionAccess();
+	}
+	
+	public ParserRule getXPrimaryExpressionRule() {
+		return getXPrimaryExpressionAccess().getRule();
+	}
+
+	//XLiteral returns XExpression:
+	//	XCollectionLiteral | XClosure | XBooleanLiteral | XNumberLiteral | XNullLiteral | XStringLiteral | XTypeLiteral;
+	public XbaseGrammarAccess.XLiteralElements getXLiteralAccess() {
+		return gaXbaseWithAnnotations.getXLiteralAccess();
+	}
+	
+	public ParserRule getXLiteralRule() {
+		return getXLiteralAccess().getRule();
+	}
+
+	//XCollectionLiteral:
+	//	XSetLiteral | XListLiteral;
+	public XbaseGrammarAccess.XCollectionLiteralElements getXCollectionLiteralAccess() {
+		return gaXbaseWithAnnotations.getXCollectionLiteralAccess();
+	}
+	
+	public ParserRule getXCollectionLiteralRule() {
+		return getXCollectionLiteralAccess().getRule();
+	}
+
+	//XSetLiteral:
+	//	{XSetLiteral} "#" "{" (elements+=XExpression ("," elements+=XExpression)*)? "}";
+	public XbaseGrammarAccess.XSetLiteralElements getXSetLiteralAccess() {
+		return gaXbaseWithAnnotations.getXSetLiteralAccess();
+	}
+	
+	public ParserRule getXSetLiteralRule() {
+		return getXSetLiteralAccess().getRule();
+	}
+
+	//XListLiteral:
+	//	{XListLiteral} "#" "[" (elements+=XExpression ("," elements+=XExpression)*)? "]";
+	public XbaseGrammarAccess.XListLiteralElements getXListLiteralAccess() {
+		return gaXbaseWithAnnotations.getXListLiteralAccess();
+	}
+	
+	public ParserRule getXListLiteralRule() {
+		return getXListLiteralAccess().getRule();
+	}
+
+	//XClosure returns XExpression:
+	//	=> ({XClosure} "[") => ((declaredFormalParameters+=JvmFormalParameter (","
+	//	declaredFormalParameters+=JvmFormalParameter)*)? explicitSyntax?="|")? expression=XExpressionInClosure "]";
+	public XbaseGrammarAccess.XClosureElements getXClosureAccess() {
+		return gaXbaseWithAnnotations.getXClosureAccess();
+	}
+	
+	public ParserRule getXClosureRule() {
+		return getXClosureAccess().getRule();
+	}
+
+	//XExpressionInClosure returns XExpression:
+	//	{XBlockExpression} (expressions+=XExpressionOrVarDeclaration ";"?)*;
+	public XbaseGrammarAccess.XExpressionInClosureElements getXExpressionInClosureAccess() {
+		return gaXbaseWithAnnotations.getXExpressionInClosureAccess();
+	}
+	
+	public ParserRule getXExpressionInClosureRule() {
+		return getXExpressionInClosureAccess().getRule();
+	}
+
+	//XShortClosure returns XExpression:
+	//	=> ({XClosure} (declaredFormalParameters+=JvmFormalParameter ("," declaredFormalParameters+=JvmFormalParameter)*)?
+	//	explicitSyntax?="|") expression=XExpression;
+	public XbaseGrammarAccess.XShortClosureElements getXShortClosureAccess() {
+		return gaXbaseWithAnnotations.getXShortClosureAccess();
+	}
+	
+	public ParserRule getXShortClosureRule() {
+		return getXShortClosureAccess().getRule();
+	}
+
+	//XParenthesizedExpression returns XExpression:
+	//	"(" XExpression ")";
+	public XbaseGrammarAccess.XParenthesizedExpressionElements getXParenthesizedExpressionAccess() {
+		return gaXbaseWithAnnotations.getXParenthesizedExpressionAccess();
+	}
+	
+	public ParserRule getXParenthesizedExpressionRule() {
+		return getXParenthesizedExpressionAccess().getRule();
+	}
+
+	//XIfExpression returns XExpression:
+	//	{XIfExpression} "if" "(" if=XExpression ")" then=XExpression ("else" else=XExpression)?;
+	public XbaseGrammarAccess.XIfExpressionElements getXIfExpressionAccess() {
+		return gaXbaseWithAnnotations.getXIfExpressionAccess();
+	}
+	
+	public ParserRule getXIfExpressionRule() {
+		return getXIfExpressionAccess().getRule();
+	}
+
+	//XSwitchExpression returns XExpression:
+	//	{XSwitchExpression} "switch" (=> ("(" declaredParam=JvmFormalParameter ":") switch=XExpression ")" | =>
+	//	(declaredParam=JvmFormalParameter ":")? switch=XExpression) "{" cases+=XCasePart* ("default" ":" default=XExpression)?
+	//	"}";
+	public XbaseGrammarAccess.XSwitchExpressionElements getXSwitchExpressionAccess() {
+		return gaXbaseWithAnnotations.getXSwitchExpressionAccess();
+	}
+	
+	public ParserRule getXSwitchExpressionRule() {
+		return getXSwitchExpressionAccess().getRule();
+	}
+
+	//XCasePart:
+	//	{XCasePart} typeGuard=JvmTypeReference? ("case" case=XExpression)? (":" then=XExpression | fallThrough?=",");
+	public XbaseGrammarAccess.XCasePartElements getXCasePartAccess() {
+		return gaXbaseWithAnnotations.getXCasePartAccess();
+	}
+	
+	public ParserRule getXCasePartRule() {
+		return getXCasePartAccess().getRule();
+	}
+
+	//XForLoopExpression returns XExpression:
+	//	=> ({XForLoopExpression} "for" "(" declaredParam=JvmFormalParameter ":") forExpression=XExpression ")"
+	//	eachExpression=XExpression;
+	public XbaseGrammarAccess.XForLoopExpressionElements getXForLoopExpressionAccess() {
+		return gaXbaseWithAnnotations.getXForLoopExpressionAccess();
+	}
+	
+	public ParserRule getXForLoopExpressionRule() {
+		return getXForLoopExpressionAccess().getRule();
+	}
+
+	//XBasicForLoopExpression returns XExpression:
+	//	{XBasicForLoopExpression} "for" "(" (initExpressions+=XExpressionOrVarDeclaration (","
+	//	initExpressions+=XExpressionOrVarDeclaration)*)? ";" expression=XExpression? ";" (updateExpressions+=XExpression (","
+	//	updateExpressions+=XExpression)*)? ")" eachExpression=XExpression;
+	public XbaseGrammarAccess.XBasicForLoopExpressionElements getXBasicForLoopExpressionAccess() {
+		return gaXbaseWithAnnotations.getXBasicForLoopExpressionAccess();
+	}
+	
+	public ParserRule getXBasicForLoopExpressionRule() {
+		return getXBasicForLoopExpressionAccess().getRule();
+	}
+
+	//XWhileExpression returns XExpression:
+	//	{XWhileExpression} "while" "(" predicate=XExpression ")" body=XExpression;
+	public XbaseGrammarAccess.XWhileExpressionElements getXWhileExpressionAccess() {
+		return gaXbaseWithAnnotations.getXWhileExpressionAccess();
+	}
+	
+	public ParserRule getXWhileExpressionRule() {
+		return getXWhileExpressionAccess().getRule();
+	}
+
+	//XDoWhileExpression returns XExpression:
+	//	{XDoWhileExpression} "do" body=XExpression "while" "(" predicate=XExpression ")";
+	public XbaseGrammarAccess.XDoWhileExpressionElements getXDoWhileExpressionAccess() {
+		return gaXbaseWithAnnotations.getXDoWhileExpressionAccess();
+	}
+	
+	public ParserRule getXDoWhileExpressionRule() {
+		return getXDoWhileExpressionAccess().getRule();
+	}
+
+	//XBlockExpression returns XExpression:
+	//	{XBlockExpression} "{" (expressions+=XExpressionOrVarDeclaration ";"?)* "}";
+	public XbaseGrammarAccess.XBlockExpressionElements getXBlockExpressionAccess() {
+		return gaXbaseWithAnnotations.getXBlockExpressionAccess();
+	}
+	
+	public ParserRule getXBlockExpressionRule() {
+		return getXBlockExpressionAccess().getRule();
+	}
+
+	//XExpressionOrVarDeclaration returns XExpression:
+	//	XVariableDeclaration | XExpression;
+	public XbaseGrammarAccess.XExpressionOrVarDeclarationElements getXExpressionOrVarDeclarationAccess() {
+		return gaXbaseWithAnnotations.getXExpressionOrVarDeclarationAccess();
+	}
+	
+	public ParserRule getXExpressionOrVarDeclarationRule() {
+		return getXExpressionOrVarDeclarationAccess().getRule();
+	}
+
+	//XVariableDeclaration returns XExpression:
+	//	{XVariableDeclaration} (writeable?="var" | "val") (=> (type=JvmTypeReference name=ValidID) | name=ValidID) ("="
+	//	right=XExpression)?;
+	public XbaseGrammarAccess.XVariableDeclarationElements getXVariableDeclarationAccess() {
+		return gaXbaseWithAnnotations.getXVariableDeclarationAccess();
+	}
+	
+	public ParserRule getXVariableDeclarationRule() {
+		return getXVariableDeclarationAccess().getRule();
+	}
+
+	//JvmFormalParameter returns types::JvmFormalParameter:
+	//	parameterType=JvmTypeReference? name=ValidID;
+	public XbaseGrammarAccess.JvmFormalParameterElements getJvmFormalParameterAccess() {
+		return gaXbaseWithAnnotations.getJvmFormalParameterAccess();
+	}
+	
+	public ParserRule getJvmFormalParameterRule() {
+		return getJvmFormalParameterAccess().getRule();
+	}
+
+	//FullJvmFormalParameter returns types::JvmFormalParameter:
+	//	parameterType=JvmTypeReference name=ValidID;
+	public XbaseGrammarAccess.FullJvmFormalParameterElements getFullJvmFormalParameterAccess() {
+		return gaXbaseWithAnnotations.getFullJvmFormalParameterAccess();
+	}
+	
+	public ParserRule getFullJvmFormalParameterRule() {
+		return getFullJvmFormalParameterAccess().getRule();
+	}
+
+	//XFeatureCall returns XExpression:
+	//	{XFeatureCall} ("<" typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")?
+	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?="(" (featureCallArguments+=XShortClosure
+	//	| featureCallArguments+=XExpression ("," featureCallArguments+=XExpression)*)? ")")? featureCallArguments+=XClosure?;
+	public XbaseGrammarAccess.XFeatureCallElements getXFeatureCallAccess() {
+		return gaXbaseWithAnnotations.getXFeatureCallAccess();
+	}
+	
+	public ParserRule getXFeatureCallRule() {
+		return getXFeatureCallAccess().getRule();
+	}
+
+	//FeatureCallID:
+	//	ValidID | "extends" | "static" | "import" | "extension";
+	public XbaseGrammarAccess.FeatureCallIDElements getFeatureCallIDAccess() {
+		return gaXbaseWithAnnotations.getFeatureCallIDAccess();
+	}
+	
+	public ParserRule getFeatureCallIDRule() {
+		return getFeatureCallIDAccess().getRule();
+	}
+
+	//IdOrSuper:
+	//	FeatureCallID | "super";
+	public XbaseGrammarAccess.IdOrSuperElements getIdOrSuperAccess() {
+		return gaXbaseWithAnnotations.getIdOrSuperAccess();
+	}
+	
+	public ParserRule getIdOrSuperRule() {
+		return getIdOrSuperAccess().getRule();
+	}
+
+	//XConstructorCall returns XExpression:
+	//	{XConstructorCall} "new" constructor=[types::JvmConstructor|QualifiedName] ("<"
+	//	typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")? (=>
+	//	explicitConstructorCall?="(" (arguments+=XShortClosure | arguments+=XExpression ("," arguments+=XExpression)*)? ")")?
+	//	arguments+=XClosure?;
+	public XbaseGrammarAccess.XConstructorCallElements getXConstructorCallAccess() {
+		return gaXbaseWithAnnotations.getXConstructorCallAccess();
+	}
+	
+	public ParserRule getXConstructorCallRule() {
+		return getXConstructorCallAccess().getRule();
+	}
+
+	//XBooleanLiteral returns XExpression:
+	//	{XBooleanLiteral} ("false" | isTrue?="true");
+	public XbaseGrammarAccess.XBooleanLiteralElements getXBooleanLiteralAccess() {
+		return gaXbaseWithAnnotations.getXBooleanLiteralAccess();
+	}
+	
+	public ParserRule getXBooleanLiteralRule() {
+		return getXBooleanLiteralAccess().getRule();
+	}
+
+	//XNullLiteral returns XExpression:
+	//	{XNullLiteral} "null";
+	public XbaseGrammarAccess.XNullLiteralElements getXNullLiteralAccess() {
+		return gaXbaseWithAnnotations.getXNullLiteralAccess();
+	}
+	
+	public ParserRule getXNullLiteralRule() {
+		return getXNullLiteralAccess().getRule();
+	}
+
+	//XNumberLiteral returns XExpression:
+	//	{XNumberLiteral} value=Number;
+	public XbaseGrammarAccess.XNumberLiteralElements getXNumberLiteralAccess() {
+		return gaXbaseWithAnnotations.getXNumberLiteralAccess();
+	}
+	
+	public ParserRule getXNumberLiteralRule() {
+		return getXNumberLiteralAccess().getRule();
+	}
+
+	//XStringLiteral returns XExpression:
+	//	{XStringLiteral} value=STRING;
+	public XbaseGrammarAccess.XStringLiteralElements getXStringLiteralAccess() {
+		return gaXbaseWithAnnotations.getXStringLiteralAccess();
+	}
+	
+	public ParserRule getXStringLiteralRule() {
+		return getXStringLiteralAccess().getRule();
+	}
+
+	//XTypeLiteral returns XExpression:
+	//	{XTypeLiteral} "typeof" "(" type=[types::JvmType|QualifiedName] arrayDimensions+=ArrayBrackets* ")";
+	public XbaseGrammarAccess.XTypeLiteralElements getXTypeLiteralAccess() {
+		return gaXbaseWithAnnotations.getXTypeLiteralAccess();
+	}
+	
+	public ParserRule getXTypeLiteralRule() {
+		return getXTypeLiteralAccess().getRule();
+	}
+
+	//XThrowExpression returns XExpression:
+	//	{XThrowExpression} "throw" expression=XExpression;
+	public XbaseGrammarAccess.XThrowExpressionElements getXThrowExpressionAccess() {
+		return gaXbaseWithAnnotations.getXThrowExpressionAccess();
+	}
+	
+	public ParserRule getXThrowExpressionRule() {
+		return getXThrowExpressionAccess().getRule();
+	}
+
+	//XReturnExpression returns XExpression:
+	//	{XReturnExpression} "return" -> expression=XExpression?;
+	public XbaseGrammarAccess.XReturnExpressionElements getXReturnExpressionAccess() {
+		return gaXbaseWithAnnotations.getXReturnExpressionAccess();
+	}
+	
+	public ParserRule getXReturnExpressionRule() {
+		return getXReturnExpressionAccess().getRule();
+	}
+
+	//XTryCatchFinallyExpression returns XExpression:
+	//	{XTryCatchFinallyExpression} "try" expression=XExpression (catchClauses+=XCatchClause+ ("finally"
+	//	finallyExpression=XExpression)? | "finally" finallyExpression=XExpression);
+	public XbaseGrammarAccess.XTryCatchFinallyExpressionElements getXTryCatchFinallyExpressionAccess() {
+		return gaXbaseWithAnnotations.getXTryCatchFinallyExpressionAccess();
+	}
+	
+	public ParserRule getXTryCatchFinallyExpressionRule() {
+		return getXTryCatchFinallyExpressionAccess().getRule();
+	}
+
+	//XSynchronizedExpression returns XExpression:
+	//	=> ({XSynchronizedExpression} "synchronized" "(") param=XExpression ")" expression=XExpression;
+	public XbaseGrammarAccess.XSynchronizedExpressionElements getXSynchronizedExpressionAccess() {
+		return gaXbaseWithAnnotations.getXSynchronizedExpressionAccess();
+	}
+	
+	public ParserRule getXSynchronizedExpressionRule() {
+		return getXSynchronizedExpressionAccess().getRule();
+	}
+
+	//XCatchClause:
+	//	"catch" "(" declaredParam=FullJvmFormalParameter ")" expression=XExpression;
+	public XbaseGrammarAccess.XCatchClauseElements getXCatchClauseAccess() {
+		return gaXbaseWithAnnotations.getXCatchClauseAccess();
+	}
+	
+	public ParserRule getXCatchClauseRule() {
+		return getXCatchClauseAccess().getRule();
+	}
+
+	//Number hidden():
+	//	HEX | (INT | DECIMAL) ("." (INT | DECIMAL))?;
+	public XbaseGrammarAccess.NumberElements getNumberAccess() {
+		return gaXbaseWithAnnotations.getNumberAccess();
+	}
+	
+	public ParserRule getNumberRule() {
+		return getNumberAccess().getRule();
+	}
+
+	/// **
+	// * Dummy rule, for "better" downwards compatibility, since GrammarAccess generates non-static inner classes, 
+	// * which makes downstream grammars break on classloading, when a rule is removed.
+	// * / StaticQualifier:
+	//	(ValidID "::")+;
+	public XbaseGrammarAccess.StaticQualifierElements getStaticQualifierAccess() {
+		return gaXbaseWithAnnotations.getStaticQualifierAccess();
+	}
+	
+	public ParserRule getStaticQualifierRule() {
+		return getStaticQualifierAccess().getRule();
+	}
+
+	//terminal HEX:
+	//	("0x" | "0X") ("0".."9" | "a".."f" | "A".."F" | "_")+ ("#" (("b" | "B") ("i" | "I") | ("l" | "L")))?;
+	public TerminalRule getHEXRule() {
+		return gaXbaseWithAnnotations.getHEXRule();
+	} 
+
+	//terminal INT returns ecore::EInt:
+	//	"0".."9" ("0".."9" | "_")*;
+	public TerminalRule getINTRule() {
+		return gaXbaseWithAnnotations.getINTRule();
+	} 
+
+	//terminal DECIMAL:
+	//	INT (("e" | "E") ("+" | "-")? INT)? (("b" | "B") ("i" | "I" | "d" | "D") | ("l" | "L" | "d" | "D" | "f" | "F"))?;
+	public TerminalRule getDECIMALRule() {
+		return gaXbaseWithAnnotations.getDECIMALRule();
+	} 
+
+	//JvmTypeReference:
+	//	JvmParameterizedTypeReference => ({JvmGenericArrayTypeReference.componentType=current} ArrayBrackets)* |
+	//	XFunctionTypeRef;
+	public XtypeGrammarAccess.JvmTypeReferenceElements getJvmTypeReferenceAccess() {
+		return gaXbaseWithAnnotations.getJvmTypeReferenceAccess();
+	}
+	
+	public ParserRule getJvmTypeReferenceRule() {
+		return getJvmTypeReferenceAccess().getRule();
+	}
+
+	//ArrayBrackets:
+	//	"[" "]";
+	public XtypeGrammarAccess.ArrayBracketsElements getArrayBracketsAccess() {
+		return gaXbaseWithAnnotations.getArrayBracketsAccess();
+	}
+	
+	public ParserRule getArrayBracketsRule() {
+		return getArrayBracketsAccess().getRule();
+	}
+
+	//XFunctionTypeRef:
+	//	("(" (paramTypes+=JvmTypeReference ("," paramTypes+=JvmTypeReference)*)? ")")? "=>" returnType=JvmTypeReference;
+	public XtypeGrammarAccess.XFunctionTypeRefElements getXFunctionTypeRefAccess() {
+		return gaXbaseWithAnnotations.getXFunctionTypeRefAccess();
+	}
+	
+	public ParserRule getXFunctionTypeRefRule() {
+		return getXFunctionTypeRefAccess().getRule();
+	}
+
+	//JvmParameterizedTypeReference:
+	//	type=[JvmType|QualifiedName] ("<" arguments+=JvmArgumentTypeReference ("," arguments+=JvmArgumentTypeReference)* ">"
+	//	(=> ({JvmInnerTypeReference.outer=current} ".") type=[JvmType|ValidID] ("<" arguments+=JvmArgumentTypeReference (","
+	//	arguments+=JvmArgumentTypeReference)* ">")?)*)?;
+	public XtypeGrammarAccess.JvmParameterizedTypeReferenceElements getJvmParameterizedTypeReferenceAccess() {
+		return gaXbaseWithAnnotations.getJvmParameterizedTypeReferenceAccess();
+	}
+	
+	public ParserRule getJvmParameterizedTypeReferenceRule() {
+		return getJvmParameterizedTypeReferenceAccess().getRule();
+	}
+
+	//JvmArgumentTypeReference returns JvmTypeReference:
+	//	JvmTypeReference | JvmWildcardTypeReference;
+	public XtypeGrammarAccess.JvmArgumentTypeReferenceElements getJvmArgumentTypeReferenceAccess() {
+		return gaXbaseWithAnnotations.getJvmArgumentTypeReferenceAccess();
+	}
+	
+	public ParserRule getJvmArgumentTypeReferenceRule() {
+		return getJvmArgumentTypeReferenceAccess().getRule();
+	}
+
+	//JvmWildcardTypeReference:
+	//	{JvmWildcardTypeReference} "?" (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded* |
+	//	constraints+=JvmLowerBound constraints+=JvmLowerBoundAnded*)?;
+	public XtypeGrammarAccess.JvmWildcardTypeReferenceElements getJvmWildcardTypeReferenceAccess() {
+		return gaXbaseWithAnnotations.getJvmWildcardTypeReferenceAccess();
+	}
+	
+	public ParserRule getJvmWildcardTypeReferenceRule() {
+		return getJvmWildcardTypeReferenceAccess().getRule();
+	}
+
+	//JvmUpperBound:
+	//	"extends" typeReference=JvmTypeReference;
+	public XtypeGrammarAccess.JvmUpperBoundElements getJvmUpperBoundAccess() {
+		return gaXbaseWithAnnotations.getJvmUpperBoundAccess();
+	}
+	
+	public ParserRule getJvmUpperBoundRule() {
+		return getJvmUpperBoundAccess().getRule();
+	}
+
+	//JvmUpperBoundAnded returns JvmUpperBound:
+	//	"&" typeReference=JvmTypeReference;
+	public XtypeGrammarAccess.JvmUpperBoundAndedElements getJvmUpperBoundAndedAccess() {
+		return gaXbaseWithAnnotations.getJvmUpperBoundAndedAccess();
+	}
+	
+	public ParserRule getJvmUpperBoundAndedRule() {
+		return getJvmUpperBoundAndedAccess().getRule();
+	}
+
+	//JvmLowerBound:
+	//	"super" typeReference=JvmTypeReference;
+	public XtypeGrammarAccess.JvmLowerBoundElements getJvmLowerBoundAccess() {
+		return gaXbaseWithAnnotations.getJvmLowerBoundAccess();
+	}
+	
+	public ParserRule getJvmLowerBoundRule() {
+		return getJvmLowerBoundAccess().getRule();
+	}
+
+	//JvmLowerBoundAnded returns JvmLowerBound:
+	//	"&" typeReference=JvmTypeReference;
+	public XtypeGrammarAccess.JvmLowerBoundAndedElements getJvmLowerBoundAndedAccess() {
+		return gaXbaseWithAnnotations.getJvmLowerBoundAndedAccess();
+	}
+	
+	public ParserRule getJvmLowerBoundAndedRule() {
+		return getJvmLowerBoundAndedAccess().getRule();
+	}
+
+	//JvmTypeParameter:
+	//	name=ValidID (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded*)?;
+	public XtypeGrammarAccess.JvmTypeParameterElements getJvmTypeParameterAccess() {
+		return gaXbaseWithAnnotations.getJvmTypeParameterAccess();
+	}
+	
+	public ParserRule getJvmTypeParameterRule() {
+		return getJvmTypeParameterAccess().getRule();
+	}
+
+	//QualifiedNameWithWildcard:
+	//	QualifiedName "." "*";
+	public XtypeGrammarAccess.QualifiedNameWithWildcardElements getQualifiedNameWithWildcardAccess() {
+		return gaXbaseWithAnnotations.getQualifiedNameWithWildcardAccess();
+	}
+	
+	public ParserRule getQualifiedNameWithWildcardRule() {
+		return getQualifiedNameWithWildcardAccess().getRule();
+	}
+
+	//XImportSection:
+	//	importDeclarations+=XImportDeclaration+;
+	public XtypeGrammarAccess.XImportSectionElements getXImportSectionAccess() {
+		return gaXbaseWithAnnotations.getXImportSectionAccess();
+	}
+	
+	public ParserRule getXImportSectionRule() {
+		return getXImportSectionAccess().getRule();
+	}
+
+	//XImportDeclaration:
+	//	"import" (static?="static" extension?="extension"? importedType=[JvmDeclaredType|QualifiedNameInStaticImport]
+	//	(wildcard?="*" | memberName=ValidID) | importedType=[JvmDeclaredType|QualifiedName] |
+	//	importedNamespace=QualifiedNameWithWildcard) ";"?;
+	public XtypeGrammarAccess.XImportDeclarationElements getXImportDeclarationAccess() {
+		return gaXbaseWithAnnotations.getXImportDeclarationAccess();
+	}
+	
+	public ParserRule getXImportDeclarationRule() {
+		return getXImportDeclarationAccess().getRule();
+	}
+
+	//QualifiedNameInStaticImport:
+	//	(ValidID ".")+;
+	public XtypeGrammarAccess.QualifiedNameInStaticImportElements getQualifiedNameInStaticImportAccess() {
+		return gaXbaseWithAnnotations.getQualifiedNameInStaticImportAccess();
+	}
+	
+	public ParserRule getQualifiedNameInStaticImportRule() {
+		return getQualifiedNameInStaticImportAccess().getRule();
+	}
+
+	//terminal ID:
+	//	"^"? ("a".."z" | "A".."Z" | "$" | "_") ("a".."z" | "A".."Z" | "$" | "_" | "0".."9")*;
+	public TerminalRule getIDRule() {
+		return gaXbaseWithAnnotations.getIDRule();
+	} 
+
+	//terminal STRING:
+	//	"\"" ("\\" . / * ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') * / | !("\\" | "\""))* "\""? | "\'" ("\\" .
+	//	/ * ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') * / | !("\\" | "\'"))* "\'"?;
+	public TerminalRule getSTRINGRule() {
+		return gaXbaseWithAnnotations.getSTRINGRule();
+	} 
+
+	//terminal ML_COMMENT:
+	//	"/ *"->"* /";
+	public TerminalRule getML_COMMENTRule() {
+		return gaXbaseWithAnnotations.getML_COMMENTRule();
+	} 
+
+	//terminal SL_COMMENT:
+	//	"//" !("\n" | "\r")* ("\r"? "\n")?;
+	public TerminalRule getSL_COMMENTRule() {
+		return gaXbaseWithAnnotations.getSL_COMMENTRule();
+	} 
+
+	//terminal WS:
+	//	(" " | "\t" | "\r" | "\n")+;
+	public TerminalRule getWSRule() {
+		return gaXbaseWithAnnotations.getWSRule();
+	} 
+
+	//terminal ANY_OTHER:
+	//	.;
+	public TerminalRule getANY_OTHERRule() {
+		return gaXbaseWithAnnotations.getANY_OTHERRule();
+	} 
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/validation/AbstractDataDSLValidator.java b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/validation/AbstractDataDSLValidator.java
new file mode 100644
index 0000000..6f2e789
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src-gen/org/eclipse/osbp/xtext/datainterchange/validation/AbstractDataDSLValidator.java
@@ -0,0 +1,33 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+package org.eclipse.osbp.xtext.datainterchange.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.ecore.EPackage;
+
+public class AbstractDataDSLValidator extends org.eclipse.xtext.xbase.annotations.validation.XbaseWithAnnotationsValidator {
+
+	@Override
+	protected List<EPackage> getEPackages() {
+	    List<EPackage> result = new ArrayList<EPackage>(super.getEPackages());
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/xtext/datainterchange/DataDSL"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/dsl/common/types/v1"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/Xtext/Xbase/XAnnotations"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/xbase/Xbase"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/common/JavaVMTypes"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/xbase/Xtype"));
+		return result;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/Activator.java b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/Activator.java
new file mode 100644
index 0000000..9e91749
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/Activator.java
@@ -0,0 +1,47 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.datainterchange;
+
+
+import org.eclipse.osbp.gitinfo.Loginfo;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+	private static BundleContext context;
+
+	static BundleContext getContext() {
+		return context;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext bundleContext) throws Exception {
+		Activator.context = bundleContext;
+		Loginfo li = new Loginfo();
+		li.print( Activator.class.getCanonicalName(), Activator.class.getClassLoader());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext bundleContext) throws Exception {
+		Activator.context = null;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSL.xtext b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSL.xtext
new file mode 100644
index 0000000..16f1808
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSL.xtext
@@ -0,0 +1,142 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ 
+grammar org.eclipse.osbp.xtext.datainterchange.DataDSL with org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations
+
+import "http://osbp.eclipse.org/xtext/datainterchange/DataDSL"
+
+import "http://osbp.eclipse.org/dsl/common/types/v1" as types
+import "http://osbp.eclipse.org/dsl/entity/v1" as entity
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+
+DataInterchangeModel:
+	packages+=DataInterchangePackage*;
+
+DataInterchangePackage:
+	{DataInterchangePackage} 'package' name=QualifiedName 'title' title=TRANSLATABLESTRING
+	('{' (imports+=DataInterchangeImport)* (datInts+=DataInterchange)* '}' )?;
+
+DataInterchange:
+	{DataInterchange} 'interchange' name=TRANSLATABLEID 
+	(description?='described by' descriptionValue=TRANSLATABLESTRING)? 
+	(createReport?='create report')? 
+	('averageElementSize' elementSize=INT)? 
+	('progressBarStyle' progressBarStyle=ProgressBarStylesEnum)?
+	(refreshEnabled?='refreshViewWhenFinished' refresh=STRING)?
+	'file' fileEndpoint=DataInterchangeFile 'beans' '{' (path+=DataInterchangeBean)* '}';
+
+DataInterchangeFile:
+	DataInterchangeFileXML | DataInterchangeFileCSV | DataInterchangeFileEDI;
+	
+DataInterchangeFileXML:
+	{DataInterchangeFileXML} 'XML' fileURL=STRING;
+	
+DataInterchangeFileCSV:
+	{DataInterchangeFileCSV} 'CSV' fileURL=STRING
+	(
+		('delimiter' delimiter=STRING)? & ('quoteCharacter' quoteCharacter=STRING)? & ('skipLines' skipLines=INT)? & 
+		(indent?='indent')? & (strict?='strict')? & (validateHeader?='validateHeader')? & ('encoding' encoding=STRING)?
+	);
+	
+DataInterchangeFileEDI:
+	{DataInterchangeFileEDI} 'EDI' fileURL=STRING 'mappingModel' mappingModel=STRING (validate?='validate')?;
+	
+DataInterchangeBean:
+	{DataInterchangeBean} 
+	'entity' entity=[entity::LEntity|LFQN]
+	('createOn' elementMap=STRING)?
+	(markLatest?='marker' latestProperty=[entity::LEntityAttribute])?
+	((recordElement?='recordElement') |
+	(recordList?='recordList'))?
+	('expression' '{' (expression+=DataInterchangeExpression)* '}')?
+	('lookup' '{' (lookup+=DataInterchangeLookup)* '}')?
+	('format' '{' (format+=DataInterchangeFormat)* '}')?
+	('mapping' '{' (mappings+=DataInterchangeMapping)* '}')?
+	;
+	
+DataInterchangeLookup:
+	{DataInterchangeLookup} 
+	'for' targetProperty=[entity::LEntityReference] 
+	'on' entity=[entity::LEntity] 
+	('createOn' elementMap=STRING)?
+	'with' queryProperty=[entity::LEntityAttribute] 
+	(cached?='cacheSize' cacheSize=INT)? 
+	('mapTo' dataMap=STRING)?
+	(
+		(allowNoResult?='allowNoResult')? & 
+		(allowNonuniqueResult?='allowNonuniqueResult')? & 
+		(markerPath=DataInterchangeMarkerPath)?
+	);
+	
+DataInterchangeMarkerPath:
+	{DataInterchangeMarkerPath} 
+	'markerPath'  '{' (path+=DataInterchangeMarkerEntity)* '}';
+	
+DataInterchangeMarkerEntity:
+	{DataInterchangeMarkerEntity}
+	'markerEntity' markerEntity=[entity::LEntity|LFQN]
+	(markLatest?='markedBy' markerProperty=[entity::LEntityAttribute])?;
+	
+DataInterchangeFormat:
+	{DataInterchangeFormat} 'for' targetProperty=[entity::LEntityAttribute] 'coding' format=STRING ('locale' locale=STRING)?;
+
+DataInterchangeExpression:
+	DataInterchangeEntityExpression | DataInterchangePredefinedExpression;
+	
+DataInterchangeEntityExpression:
+	{DataInterchangeEntityExpression} 'copy' targetProperty=[entity::LEntityAttribute] 'from' entity=[entity::LEntity|LFQN] 'property' property=[entity::LEntityAttribute];
+	
+DataInterchangePredefinedExpression:
+	{DataInterchangePredefinedExpression} 'assign' targetProperty=[entity::LEntityAttribute] 'with' bean=PredefinedBeanEnum 'as' beanType=PredefinedBeanTypeEnum;
+	
+DataInterchangeMapping:
+	{DataInterchangeMapping} 'map' property=[entity::LEntityAttribute] 'to' data=STRING;
+	
+DataInterchangeImport returns types::LImport:
+'import' importedNamespace=DataInterchangeQualifiedNameWithWildCard;
+	
+DataInterchangeQualifiedNameWithWildCard:
+	QualifiedName ('.' '*')?;
+	
+QualifiedName:
+  ValidID (=>'.' ValidID)*;
+  
+ValidID:
+	ID;
+	
+LFQN:
+	ID ('.' ID)*;
+	
+TRANSLATABLESTRING:
+	STRING;
+	
+TRANSLATABLEID:
+	ID;
+
+enum PredefinedBeanEnum:
+	now 	= 'NowDate'|
+	start 	= 'StartDate'|
+	UUID 	= 'UniversallyUniqueIdentifier';
+	
+enum PredefinedBeanTypeEnum:
+	Date 	= 'Date'|
+	Millis 	= 'Milliseconds'|
+	Nanos 	= 'Nanoseconds'|
+	random 	= 'Random'|
+	execContext = 'ExecuteContext';
+
+enum ProgressBarStylesEnum:
+	none		= 'none'|
+	normal		= 'normal'|
+	important	= 'important';
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLBundleSpaceRuntimeModule.java b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLBundleSpaceRuntimeModule.java
new file mode 100644
index 0000000..4efabf9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLBundleSpaceRuntimeModule.java
@@ -0,0 +1,42 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.osbp.dsl.xtext.types.bundles.BundleSpaceTypeProviderFactory;
+import org.eclipse.osbp.dsl.xtext.types.bundles.BundleSpaceTypeScopeProvider;
+import org.eclipse.osbp.xtext.builder.types.loader.api.ITypeLoaderFactory;
+import org.eclipse.osbp.xtext.builder.types.loader.api.ITypeLoaderProvider;
+import org.eclipse.osbp.xtext.builder.types.loader.runtime.TypeLoaderFactory;
+import org.eclipse.osbp.xtext.builder.types.loader.runtime.TypeLoaderProvider;
+
+@SuppressWarnings("restriction")
+public class DataDSLBundleSpaceRuntimeModule extends DataDSLRuntimeModule {
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+		return BundleSpaceTypeProviderFactory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+		return BundleSpaceTypeScopeProvider.class;
+	}
+
+	public Class<? extends ITypeLoaderFactory> bindITypeLoaderFactory() {
+		return TypeLoaderFactory.class;
+	}
+
+	public Class<? extends ITypeLoaderProvider> ITypeLoaderProvider() {
+		return TypeLoaderProvider.class;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLBundleSpaceStandaloneSetup.java b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLBundleSpaceStandaloneSetup.java
new file mode 100644
index 0000000..0908fa6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLBundleSpaceStandaloneSetup.java
@@ -0,0 +1,40 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.osbp.xtext.builder.xbase.setups.XbaseBundleSpaceStandaloneSetup;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+@SuppressWarnings("restriction")
+public class DataDSLBundleSpaceStandaloneSetup extends DataDSLStandaloneSetup {
+	public static void doSetup() {
+		new DataDSLBundleSpaceStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+	
+	@Override
+	public Injector createInjectorAndDoEMFRegistration() {
+		XbaseBundleSpaceStandaloneSetup.doSetup();
+
+		Injector injector = createInjector();
+		register(injector);
+		return injector;
+	}
+
+	@Override
+	public Injector createInjector() {
+		return Guice.createInjector(new DataDSLBundleSpaceRuntimeModule());
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLRuntimeModule.java b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLRuntimeModule.java
new file mode 100644
index 0000000..461b754
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLRuntimeModule.java
@@ -0,0 +1,77 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.datainterchange;
+
+import javax.inject.Singleton;
+
+import org.eclipse.xtext.conversion.IValueConverterService;
+import org.eclipse.xtext.generator.IGenerator;
+import org.eclipse.xtext.generator.IOutputConfigurationProvider;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.scoping.IScopeProvider;
+import org.eclipse.osbp.dsl.xtext.lazyresolver.LazyJvmTypeLinker;
+import org.eclipse.osbp.dsl.xtext.lazyresolver.SemanticLoadingResource;
+import org.eclipse.osbp.dsl.xtext.lazyresolver.linker.LazyJvmTypeTransientValueService;
+
+import com.google.inject.Binder;
+
+import org.eclipse.osbp.xtext.datainterchange.jvmmodel.DataDSLModelGenerator;
+import org.eclipse.osbp.xtext.datainterchange.scoping.DataDSLScopeProvider;
+import org.eclipse.osbp.xtext.datainterchange.valueconverter.DataDSLQualifiedNameProvider;
+import org.eclipse.osbp.xtext.datainterchange.valueconverter.DataDSLValueConverterService;
+import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class DataDSLRuntimeModule extends org.eclipse.osbp.xtext.datainterchange.AbstractDataDSLRuntimeModule {
+	@Override
+	public Class<? extends IGenerator> bindIGenerator() {
+		return DataDSLModelGenerator.class;
+	}
+
+	@Override
+	public Class<? extends IScopeProvider> bindIScopeProvider() {
+		return DataDSLScopeProvider.class;
+	}
+	
+	@Override
+	public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
+		return DataDSLQualifiedNameProvider.class;
+	}
+
+	@Override
+	public Class<? extends IValueConverterService> bindIValueConverterService() {
+		return DataDSLValueConverterService.class;
+	}
+
+	@Override
+	public void configure(Binder binder) {
+		super.configure(binder);
+		binder.bind(IOutputConfigurationProvider.class).to(DSLOutputConfigurationProvider.class).in(Singleton.class);
+	}
+
+	public Class<? extends org.eclipse.xtext.resource.XtextResource> bindXtextResource() {
+		return SemanticLoadingResource.class;
+	}
+
+	public Class<? extends org.eclipse.xtext.linking.ILinker> bindILinker() {
+		return LazyJvmTypeLinker.class;
+	}
+
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ITransientValueService> bindSerializerITransientValueService() {
+		return LazyJvmTypeTransientValueService.class;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLStandaloneSetup.java b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLStandaloneSetup.java
new file mode 100644
index 0000000..385a19b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/DataDSLStandaloneSetup.java
@@ -0,0 +1,26 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.datainterchange;
+
+/**
+ * Initialization support for running Xtext languages 
+ * without equinox extension registry
+ */
+public class DataDSLStandaloneSetup extends DataDSLStandaloneSetupGenerated{
+
+	public static void doSetup() {
+		new DataDSLStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+}
+
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/GenerateDataDSL.mwe2 b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/GenerateDataDSL.mwe2
new file mode 100644
index 0000000..1b9f021
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/GenerateDataDSL.mwe2
@@ -0,0 +1,164 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+module org.eclipse.osbp.xtext.datainterchange.GenerateDataDSL
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+import org.eclipse.osbp.dsl.mwe.*
+
+var projectName = "org.eclipse.osbp.xtext.datainterchange"
+var grammarURI = "platform:/resource/${projectName}/src/org/eclipse/osbp/xtext/datainterchange/DataDSL.xtext"
+var fileExtensions = "data"
+var runtimeProject = "../${projectName}"
+var generateXtendStub = true
+var encoding = "UTF-8"
+
+Workflow {
+	bean = org.eclipse.emf.ecore.xcore.XcoreStandaloneSetup : xcore {}
+	bean = org.eclipse.xtext.mwe.Reader {
+		register = xcore
+	}
+    bean = MavenStandaloneSetup {
+    	scanClassPath = true
+    	platformUri = "${runtimeProject}/.."
+		registerGenModelFile = "platform:/resource/org.eclipse.osbp.xtext.datainterchange/model/DataDSL.xcore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.osbp.xtext.datainterchange/model/DataDSL.xcore"
+		registerGeneratedEPackage = "org.eclipse.osbp.xtext.datainterchange.DataDSLPackage"
+
+		registerGenModelFile = "platform:/resource/org.eclipse.osbp.dsl.entity.xtext/model/entity.xcore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.osbp.dsl.entity.xtext/model/entity.xcore"
+
+		registerGenModelFile = "platform:/resource/org.eclipse.osbp.dsl.common.xtext/model/types.xcore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.osbp.dsl.common.xtext/model/types.xcore"
+
+		registerGenModelFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel"
+		registerEcoreFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.ecore"
+
+		registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
+		registerEcoreFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xtype.ecore"
+		registerEcoreFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.ecore"
+		registerEcoreFile = "platform:/resource/org.eclipse.xtext.xbase/model/XAnnotations.ecore"
+    }
+    
+    component = DirectoryCleaner {
+    	directory = "${runtimeProject}/src-gen"
+    	exclude = "README.txt"
+    }
+    
+    component = DirectoryCleaner {
+    	directory = "${runtimeProject}.ui/src-gen"
+    	exclude = "README.txt"
+    }
+    
+    component = DirectoryCleaner {
+    	directory = "${runtimeProject}.tests/src-gen"
+    	exclude = "README.txt"
+    }
+    
+    component = Generator {
+    	pathRtProject = runtimeProject
+    	pathUiProject = "${runtimeProject}.ui"
+    	pathTestProject = "${runtimeProject}.tests"
+    	projectNameRt = projectName
+    	projectNameUi = "${projectName}.ui"
+    	encoding = encoding
+    	language = auto-inject {
+    		uri = grammarURI
+    
+    		// Java API to access grammar elements (required by several other fragments)
+    		fragment = grammarAccess.GrammarAccessFragment auto-inject {}
+    
+    		// generates Java API for the generated EPackages
+    		fragment = ecore.EMFGeneratorFragment auto-inject {}
+    
+    		// the old serialization component
+    		// fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}    
+    
+    		// serializer 2.0
+    		fragment = serializer.SerializerFragment auto-inject {
+    			generateStub = false
+    		}
+    
+    		// a custom ResourceFactory for use with EMF
+    		fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
+    
+    		// The antlr parser generator fragment.
+    		fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
+    		//  options = {
+    		//      backtrack = true
+    		//  }
+    		}
+    
+    		// Xtend-based API for validation
+    		fragment = validation.ValidatorFragment auto-inject {
+    		//    composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+    		//    composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+    		}
+    
+    		// old scoping and exporting API
+    		// fragment = scoping.ImportURIScopingFragment auto-inject {}
+    		// fragment = exporting.SimpleNamesFragment auto-inject {}
+    
+    		// scoping and exporting API
+    		fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
+    		fragment = exporting.QualifiedNamesFragment auto-inject {}
+    		fragment = builder.BuilderIntegrationFragment auto-inject {}
+    
+    		// generator API
+    		fragment = generator.GeneratorFragment auto-inject {}
+    
+    		// formatter API
+    		fragment = formatting.FormatterFragment auto-inject {}
+    
+    		// labeling API
+    		fragment = labeling.LabelProviderFragment auto-inject {}
+    
+    		// outline API
+    		fragment = outline.OutlineTreeProviderFragment auto-inject {}
+    		fragment = outline.QuickOutlineFragment auto-inject {}
+    
+    		// quickfix API
+    		fragment = quickfix.QuickfixProviderFragment auto-inject {}
+    
+    		// content assist API
+    		fragment = contentAssist.ContentAssistFragment auto-inject {}
+    
+    		// generates a more lightweight Antlr parser and lexer tailored for content assist
+    		fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}
+    
+    		// generates junit test support classes into Generator#pathTestProject
+    		fragment = junit.Junit4Fragment auto-inject {}
+    
+    		// rename refactoring
+    		fragment = refactoring.RefactorElementNameFragment auto-inject {}
+    
+    		// provides the necessary bindings for java types integration
+    		fragment = types.TypesGeneratorFragment auto-inject {}
+    
+    		// generates the required bindings only if the grammar inherits from Xbase
+    		fragment = xbase.XbaseGeneratorFragment auto-inject {}
+    
+    		// provides a preference page for template proposals
+    		fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
+    
+    		// provides a compare view
+    		fragment = compare.CompareFragment auto-inject {}
+    		
+    		// parse grammar and generate i18n grammar
+            fragment = org.eclipse.osbp.xtext.basic.generator.BasicDslGrammarI18nGenerator auto-inject {}
+    	}
+    }
+}
+
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/XcoreResourceFactory.java b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/XcoreResourceFactory.java
new file mode 100644
index 0000000..89ba47b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/XcoreResourceFactory.java
@@ -0,0 +1,28 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.datainterchange;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xcore.resource.XcoreResource;
+
+public class XcoreResourceFactory implements Resource.Factory {
+	@Override
+	public Resource createResource(URI uri) {
+		XcoreResource resource = new XcoreResource();
+		resource.setURI(uri);
+		return resource;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/formatting/DataDSLFormatter.xtend b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/formatting/DataDSLFormatter.xtend
new file mode 100644
index 0000000..5a5b23a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/formatting/DataDSLFormatter.xtend
@@ -0,0 +1,46 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.formatting
+
+import com.google.inject.Inject;
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter
+import org.eclipse.xtext.formatting.impl.FormattingConfig
+import org.eclipse.osbp.utils.xtext.GenericFormatter
+import org.eclipse.xtext.xbase.services.XtypeGrammarAccess
+//import org.eclipse.osbp.xtext.datainterchange.services.DataDSLGrammarAccess
+
+/**
+ * This class contains custom formatting description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#formatting
+ * on how and when to use it 
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+class DataDSLFormatter extends AbstractDeclarativeFormatter {
+
+//	@Inject extension DataDSLGrammarAccess
+	@Inject XtypeGrammarAccess grammarAccess
+
+	override protected void configureFormatting(FormattingConfig c) {
+		val genericFormatter = new GenericFormatter()
+
+		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "DataInterchange", "DataInterchangeImport" )
+		genericFormatter.genericFormatting( c, grammar, grammarAccess )
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLJvmModelInferrer.xtend
new file mode 100644
index 0000000..724e1c9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLJvmModelInferrer.xtend
@@ -0,0 +1,1055 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * 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:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation 
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.jvmmodel
+
+import com.vaadin.ui.Button
+import com.vaadin.ui.CssLayout
+import com.vaadin.ui.Label
+import com.vaadin.ui.VerticalLayout
+import java.io.OutputStream
+import java.net.URL
+import java.util.ArrayList
+import java.util.HashMap
+import java.util.Iterator
+import java.util.Locale
+import java.util.Map
+import java.util.concurrent.ExecutorService
+import javax.annotation.PostConstruct
+import javax.annotation.PreDestroy
+import javax.inject.Inject
+import javax.persistence.EntityManager
+import javax.xml.transform.Transformer
+import javax.xml.transform.TransformerFactory
+import org.eclipse.e4.core.contexts.IEclipseContext
+import org.eclipse.e4.core.services.events.IEventBroker
+import org.eclipse.e4.ui.model.application.MApplication
+import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions
+import org.eclipse.osbp.dsl.semantic.common.types.LReference
+import org.eclipse.osbp.dsl.semantic.entity.LEntity
+import org.eclipse.osbp.osgi.hybrid.api.AbstractHybridVaaclipseView
+import org.eclipse.osbp.persistence.IPersistenceService
+import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService
+import org.eclipse.osbp.ui.api.user.IUser
+import org.eclipse.osbp.utils.constants.GeneratorConstants
+import org.eclipse.osbp.utils.entitymock.IEntityImportInitializationListener
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage
+import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable
+import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider
+import org.eclipse.xtext.common.types.JvmDeclaredType
+import org.eclipse.xtext.common.types.JvmField
+import org.eclipse.xtext.common.types.JvmGenericType
+import org.eclipse.xtext.common.types.JvmVisibility
+import org.eclipse.xtext.naming.IQualifiedNameProvider
+import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
+import org.milyn.Smooks
+import org.milyn.SmooksFactory
+import org.milyn.container.ExecutionContext
+import org.osgi.framework.BundleEvent
+import org.osgi.framework.BundleListener
+import org.osgi.service.event.EventHandler
+import org.slf4j.Logger
+
+/**
+ * <p>
+ * Data Interchange Repository Domain Specific Language
+ * This inferrer infers models of extension .data and generates code to be used by any data interchanging process 
+ * to facilitate the communication with external data sources and drains. Underlying components
+ * are from the smooks repository
+ * </p>
+ * 
+ * @author Joerg Riegel
+ */
+
+class DataDSLJvmModelInferrer extends AbstractModelInferrer {
+
+	@Inject extension JvmTypesBuilder
+	@Inject extension IQualifiedNameProvider
+	@Inject extension DataDSLModelGenerator dg
+	@Inject extension ModelExtensions
+
+	/* ramp up NTHREADS and threads are finished start more but up to this limit */
+	var NTHREADS = 10;
+
+	/**
+	 * infer model on package base. Will be called for every defined package.
+	 * 
+	 * @param dataInterchangePackage
+	 *            An instance of {@link DataInterchangePackage}
+	 * @param acceptor
+	 *            the xtext acceptor interface
+	 * @param isPreIndexingPhase
+	 *            true if in preindexing phase
+	 */
+   	def dispatch void infer(DataInterchangePackage dataInterchangePackage, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
+   		dataInterchangePackage.generatePckgName(acceptor)
+   		// create a view
+   		var cls = dataInterchangePackage.toClass(dataInterchangePackage.name.toString.concat("TriggerView"));
+   		cls.simpleName = cls.simpleName.toFirstUpper
+   		acceptor.accept(cls,
+   			[
+   				superTypes += _typeReferenceBuilder.typeRef(AbstractHybridVaaclipseView)
+   				superTypes += _typeReferenceBuilder.typeRef(BundleListener)
+				superTypes += _typeReferenceBuilder.typeRef(IUser.UserLocaleListener)
+			 	documentation = GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION
+   				annotations += _annotationTypesBuilder.annotationRef(SuppressWarnings, "serial")
+   				packageName = dataInterchangePackage.fullyQualifiedName.toString
+   				it.toFields(dataInterchangePackage)
+   				it.toConstructor(dataInterchangePackage)
+				it.toOperations(dataInterchangePackage)
+   			])
+   		
+   		// create smooks classes
+   		for (dataInterchange : dataInterchangePackage.datInts) {
+	   		var clsName2 = dataInterchange.fullyQualifiedName
+	   		acceptor.accept(dataInterchange.toClass(clsName2),
+	   			[
+	   				superTypes += _typeReferenceBuilder.typeRef(WorkerThreadRunnable)
+	   				annotations += _annotationTypesBuilder.annotationRef(SuppressWarnings, "serial")
+				 	documentation = GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION
+   					it.toConstructor(dataInterchange)
+					it.toFields(dataInterchange)
+					it.toOperations(dataInterchange)
+	   			])
+	   	}
+   	}
+
+
+	/**
+	 * generate the fields in the inferred class.
+	 * 
+	 * @param type
+	 *            the xtext generic types list
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 */
+	def void toFields(JvmGenericType type, DataInterchangePackage pkg) {
+   		var JvmField field = null
+		field = pkg.toField("sidebar", _typeReferenceBuilder.typeRef(VerticalLayout))
+		type.members += field
+		var name = pkg.name.toString.replace(".",":")
+		var String[] parts = name.split(":")
+		val String clsName = parts.get(parts.size-1).toFirstUpper 
+   		field = pkg.toField("log", _typeReferenceBuilder.typeRef(Logger)) [setInitializer([ append('''LoggerFactory.getLogger(«clsName»TriggerView.class)''') ])] 
+   		field.final = true
+   		field.static = true
+		type.members += field
+		field = pkg.toField("menu", _typeReferenceBuilder.typeRef(CssLayout))
+		type.members += field
+		field = pkg.toField("workerInfo", _typeReferenceBuilder.typeRef(EventHandler))
+		type.members += field
+		field = pkg.toField("branding", _typeReferenceBuilder.typeRef(CssLayout))
+		type.members += field
+		field = pkg.toField("eventBroker", _typeReferenceBuilder.typeRef(IEventBroker)) [
+			annotations += _annotationTypesBuilder.annotationRef(Inject)
+		]
+		type.members += field
+		
+		field = pkg.toField("persistenceService", _typeReferenceBuilder.typeRef(IPersistenceService)) [
+			annotations += _annotationTypesBuilder.annotationRef(Inject)
+		]
+		type.members += field
+
+		field = pkg.toField("progressBars", _typeReferenceBuilder.typeRef(Map, _typeReferenceBuilder.typeRef(String), _typeReferenceBuilder.typeRef(WorkerThreadRunnable)))
+		type.members += field
+		field = pkg.toField("executorService", _typeReferenceBuilder.typeRef(ExecutorService))
+   		field.static = true
+		type.members += field
+		field = pkg.toField("dslMetadataService", _typeReferenceBuilder.typeRef(IDSLMetadataService)) [annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		type.members += field
+		field = pkg.toField("user", _typeReferenceBuilder.typeRef(IUser))[annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		type.members += field
+		field = pkg.toField("logo", _typeReferenceBuilder.typeRef(Label))
+		type.members += field
+		field = pkg.toField("buttons",
+			_typeReferenceBuilder.typeRef(HashMap, _typeReferenceBuilder.typeRef(Button), _typeReferenceBuilder.typeRef(ArrayList)))
+		type.members += field
+	}
+
+	/**
+	 * <p>build the constructors to be used by an e4 application.</p> 
+	 *
+	 */
+	def void toConstructor(JvmDeclaredType type, DataInterchangePackage pkg) {
+		type.members += pkg.toConstructor([
+			annotations += _annotationTypesBuilder.annotationRef(Inject)
+   			parameters += pkg.toParameter("parent", _typeReferenceBuilder.typeRef(VerticalLayout))
+   			parameters += pkg.toParameter("context", _typeReferenceBuilder.typeRef(IEclipseContext))
+   			parameters += pkg.toParameter("app", _typeReferenceBuilder.typeRef(MApplication))
+			body = [ append('''super(parent,context,app);''')]
+		])
+	}
+
+	/**
+	 * generate the fields in the inferred class.
+	 * 
+	 * @param type
+	 *            the xtext generic types list
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 */
+	def void toOperations(JvmGenericType type, DataInterchangePackage pkg) {
+   		// create view
+   		type.members += pkg.toMethod("createView", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			parameters += pkg.toParameter("parent", _typeReferenceBuilder.typeRef(VerticalLayout))
+   			body = [ append('''«pkg.createView»''')]
+   		])
+   		// create components
+   		type.members += pkg.toMethod("createComponents", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			body = [ append('''«pkg.createComponents»''')]
+   		])
+   		// unique name
+   		type.members += pkg.toMethod("uniqueName", _typeReferenceBuilder.typeRef(String), [
+   			parameters += pkg.toParameter("name", _typeReferenceBuilder.typeRef(String))
+   			body = [ append('''«pkg.uniqueName»''')]
+   		])
+   		// is duplicate
+   		type.members += pkg.toMethod("isDuplicate", _typeReferenceBuilder.typeRef(boolean), [
+   			parameters += pkg.toParameter("name", _typeReferenceBuilder.typeRef(String))
+   			body = [ append('''«pkg.isDuplicate»''')]
+   		])
+   		// find layout
+   		type.members += pkg.toMethod("findButtonLayout", _typeReferenceBuilder.typeRef(VerticalLayout), [
+   			parameters += pkg.toParameter("button", _typeReferenceBuilder.typeRef(Button))
+   			body = [ append('''«pkg.findButtonLayout»''')]
+   		])
+   		// on bundle stopping - shutdown executorService
+   		type.members += pkg.toMethod("bundleChanged", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			annotations += _annotationTypesBuilder.annotationRef(Override)
+   			parameters += pkg.toParameter("event", _typeReferenceBuilder.typeRef(BundleEvent))
+   			body = [ append('''«pkg.bundleChanged»''')]
+   		])
+		// subscribe to eventBroker
+		type.members += pkg.toMethod("subscribe", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			visibility = JvmVisibility.PROTECTED
+			annotations += _annotationTypesBuilder.annotationRef(PostConstruct)
+			body = [append('''«pkg.subscribe»''')]
+		])
+		// unsubscribe from eventBroker
+		type.members += pkg.toMethod("unsubscribe", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			visibility = JvmVisibility.PROTECTED
+			annotations += _annotationTypesBuilder.annotationRef(PreDestroy)
+			body = [append('''«pkg.unsubscribe»''')]
+		])
+		// locale notification
+		type.members += pkg.toMethod("localeChanged", _typeReferenceBuilder.typeRef(Void::TYPE),
+			[
+				visibility = JvmVisibility.PUBLIC
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				parameters += pkg.toParameter("locale", _typeReferenceBuilder.typeRef(Locale))
+				body = [append('''«pkg.localeChanged»''')]
+			])
+	}
+		
+	/**
+	 * handle the worker progress UI. provide the appropriate code.
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return code fragment
+	 */
+	def String workerInfo(DataInterchangePackage pkg) {
+		var body = ""
+		body = '''
+		«body»
+		new EventHandler() {
+			@Override
+			public void handleEvent(Event event) {
+				// a worker notified this view that it is finished
+				String workername = (String)event.getProperty(EventUtils.DATA);
+				if (progressBars.containsKey(workername)) {
+					final WorkerThreadRunnable worker = progressBars.get(workername); 
+					((VerticalLayout)worker.getProgressBarArea().getParent()).removeComponent(worker.getProgressBarArea());
+					progressBars.remove(workername);
+				}
+			}
+		};
+		'''
+		return body
+	}
+
+	/**
+	 * subscribe the event broker for messages on changed locale and worker progress.
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return code fragment
+	 */
+	def String subscribe(DataInterchangePackage pkg) {
+		var body = ""
+		body = '''
+		«body»
+		eventBroker.subscribe(EventBrokerMsg.WORKER_THREAD_INFO, workerInfo);
+		'''
+		return body
+	}
+
+	/**
+	 * unsubscribe from event broker for messages.
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return code fragment
+	 */
+	def String unsubscribe(DataInterchangePackage pkg) {
+		var body = ""
+		body = '''
+		«body»
+		eventBroker.unsubscribe(workerInfo);
+		'''
+		return body
+	}
+			
+	/**
+	 * normalize package name.
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return normalized package name
+	 */
+	def String toEventID(DataInterchangePackage pkg) {
+		return pkg.fullyQualifiedName.toString.toUpperCase.replaceAll("(\\W)","_")		
+	}
+	
+	/**
+	 * let the app wait for finishing the workers before allowing to stop bundle.
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return code fragment
+	 */
+	def String bundleChanged(DataInterchangePackage pkg) {
+		var body = ""
+		body = '''
+		«body»
+		if (event.getType() == BundleEvent.STOPPING) {
+			log.debug("bundle is stopping");
+			// This will make the executorService accept no new threads
+			// and finish all existing threads in the queue
+			if (executorService != null) {
+			    executorService.shutdown();
+			    // Wait until all threads are finished
+			    try {
+					executorService.awaitTermination(10, TimeUnit.SECONDS);
+				} catch (InterruptedException e) {
+					e.printStackTrace();
+				}
+			}
+			log.debug("all executors finished");
+		}
+		'''
+		return body
+	}
+
+	/**
+	 * find the right button layout for a given button.
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return code fragment
+	 */
+	def String findButtonLayout(DataInterchangePackage pkg) {
+		var body = ""
+		body = '''
+		«body»
+		int count = menu.getComponentCount(); 
+		for(int i=0; i<count; i++) {
+			VerticalLayout buttonLayout = (VerticalLayout)menu.getComponent(i);
+			Button b = (Button)buttonLayout.getComponent(0);
+			if (b == button) {
+				return buttonLayout;
+			}
+		}
+		return null;
+		'''
+		return body
+	}
+
+	/**
+	 * find out if a given thread-id is already running.
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return code fragment
+	 */
+	def String isDuplicate(DataInterchangePackage pkg) {
+		var body = ""
+		body = '''
+		«body»
+		boolean found = false;
+		for(String threadName : progressBars.keySet()) {
+			if (name.equals(threadName)) {
+				found = true;
+				break;
+			}
+		}
+		return found;
+		'''
+		return body
+	}
+
+	/**
+	 * make a name unique by concatenating a number.
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return code fragment
+	 */
+	def String uniqueName(DataInterchangePackage pkg) {
+		var body = ""
+		body = '''
+		«body»
+		Integer cnt = 0;
+		String searchName;
+		do {
+			if (cnt > 0) {
+				searchName = name+cnt.toString();
+			} else {
+				searchName = name;
+			}
+			cnt ++;
+		}while(isDuplicate(searchName));
+		return searchName;
+		'''
+		return body
+	}
+	
+	def String descriptionI18nKey(DataInterchange dataInterchange) {
+		if ((dataInterchange.descriptionValue == null) || dataInterchange.descriptionValue.isEmpty) {
+			dataInterchange.name
+		}
+		else {
+			dataInterchange.descriptionValue
+		}
+	}
+	
+	/**
+	 * build an e4 compatible view and create necessary components.
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return code fragment
+	 */
+	def String createView(DataInterchangePackage pkg) {
+		var body = '''
+		buttons = new HashMap<Button, ArrayList>();
+		workerInfo = «pkg.workerInfo»
+		Bundle bundle = FrameworkUtil.getBundle(getClass());
+		if (bundle != null) {
+			BundleContext ctx = bundle.getBundleContext();
+			if (ctx != null) {
+				ctx.addBundleListener(this);
+			}
+		}
+		FrameworkUtil.getBundle(getClass()).getBundleContext().addBundleListener(this);
+		executorService = Executors.newFixedThreadPool(«NTHREADS»);
+		progressBars = new HashMap<String,WorkerThreadRunnable>(); 
+		sidebar=new VerticalLayout();
+		menu=new CssLayout();
+		branding=new CssLayout();
+		parent.setPrimaryStyleName("osbp");
+		parent.setId("parent");
+		parent.setSizeFull();
+		sidebar.setSpacing(true);
+		sidebar.setId("sidebar");
+		parent.addComponent(sidebar);
+		parent.setExpandRatio(sidebar, 1.0f);
+		// create sidebar
+		sidebar.addStyleName("osbpsidebar");
+		sidebar.setSizeFull();
+		sidebar.addComponent(branding);
+		// branding title
+		branding.addStyleName("branding");
+		logo = new Label();
+		logo.setContentMode(ContentMode.HTML);
+		logo.setSizeUndefined();
+		branding.addComponent(logo);
+		// add menu
+		sidebar.addComponent(menu);
+		sidebar.setExpandRatio(menu, 1.0f);
+
+		'''
+		body = '''«body»
+		// add menu items
+		Button b;
+		VerticalLayout buttonLayout;
+		'''
+   		for (dataInterchange : pkg.datInts) {
+			body = '''
+			«body»
+			b = new NativeButton();
+			b.setHtmlContentAllowed(true);
+			buttons.put(b, new ArrayList<String>(Arrays.asList(new String[] {"«DataDSLModelGenerator.CAPTION__REPFIX_I18NKEY_IMPORT»", "«dataInterchange.name»","«dataInterchange.descriptionI18nKey»"})));
+			b.addStyleName("icon-download");
+			b.addClickListener(new ClickListener() {
+				@Override
+				public void buttonClick(ClickEvent event) {
+					log.debug("pressed «dataInterchange.name» import");
+					String uniqueName = uniqueName("«dataInterchange.name»");
+					«dataInterchange.getBasicRunConfiguration(false, dataInterchange.getFileURL)»
+					«dataInterchange.defaultVariableName».setName(uniqueName);
+					«dataInterchange.defaultVariableName».setEventBroker(eventBroker);
+					«dataInterchange.defaultVariableName».setUi(UI.getCurrent());
+					«dataInterchange.defaultVariableName».setDirection(WorkerThreadRunnable.Direction.IMPORT);
+					«IF dataInterchange.progressBarStyle!=null»«dataInterchange.defaultVariableName».setProgressBarStyleName("«dataInterchange.progressBarStyle.literal»");«ENDIF»
+					findButtonLayout(event.getButton()).addComponent(«dataInterchange.defaultVariableName».getProgressBarArea());
+					progressBars.put(uniqueName, «dataInterchange.defaultVariableName»);
+					executorService.execute(«dataInterchange.defaultVariableName»);
+					log.debug("«dataInterchange.name» import added to executor queue");
+				}
+			});
+			buttonLayout = new VerticalLayout();
+			buttonLayout.addComponent(b); 
+			menu.addComponent(buttonLayout);
+			'''
+			body = '''
+			«body»
+			b = new NativeButton();
+			b.setHtmlContentAllowed(true);
+			buttons.put(b, new ArrayList<String>(Arrays.asList(new String[] {"«DataDSLModelGenerator.CAPTION__REPFIX_I18NKEY_EXPORT»", "«dataInterchange.name»","«dataInterchange.descriptionI18nKey»"})));
+			b.addStyleName("icon-upload");
+			b.addClickListener(new ClickListener() {
+				@Override
+				public void buttonClick(ClickEvent event) {
+					log.debug("pressed «dataInterchange.name» export");
+					String uniqueName = uniqueName("«dataInterchange.name»");
+					«dataInterchange.getBasicRunConfiguration(false, dataInterchange.getFileURL)»
+					«dataInterchange.defaultVariableName».setName(uniqueName);
+					«dataInterchange.defaultVariableName».setEventBroker(eventBroker);
+					«dataInterchange.defaultVariableName».setUi(UI.getCurrent());
+					«dataInterchange.defaultVariableName».setDirection(WorkerThreadRunnable.Direction.EXPORT);
+					«IF dataInterchange.progressBarStyle!=null»«dataInterchange.defaultVariableName».setProgressBarStyleName("«dataInterchange.progressBarStyle.literal»");«ENDIF»
+					findButtonLayout(event.getButton()).addComponent(«dataInterchange.defaultVariableName».getProgressBarArea());
+					progressBars.put(uniqueName, «dataInterchange.defaultVariableName»);
+					executorService.execute(«dataInterchange.defaultVariableName»);
+					log.debug("«dataInterchange.name» export added to executor queue");
+				}
+			});
+			buttonLayout = new VerticalLayout();
+			buttonLayout.addComponent(b); 
+			menu.addComponent(buttonLayout);
+			'''
+		}
+		body = '''
+		«body»
+		menu.addStyleName("menu");
+		menu.setHeight("100%");
+		user.addUserLocaleListener(this);
+		'''
+		return body
+	}
+
+    def String getDefaultVariableName(DataInterchange dataInterchange) {
+        return dataInterchange.name.toFirstLower
+    }
+    
+    def String getBasicRunConfiguration(DataInterchange dataInterchange, boolean fqClass, String fileURL) {
+    	var className = ""
+    	if	(fqClass) {
+    		className = dataInterchange.fullyQualifiedName.toString
+    	}
+    	else {
+    		className = dataInterchange.name
+    	} 
+        return '''
+            «className» «dataInterchange.getDefaultVariableName» = new «className»();
+            «dataInterchange.getDefaultVariableName».setFileURL("«fileURL»");
+            «dataInterchange.getDefaultVariableName».setPersistenceService(persistenceService);
+        '''
+    }
+
+	def String getFileURL(DataInterchange dataInterchange) {
+		switch(dataInterchange.fileEndpoint) {
+			DataInterchangeFileXML: return (dataInterchange.fileEndpoint as DataInterchangeFileXML).fileURL 
+			DataInterchangeFileCSV: return (dataInterchange.fileEndpoint as DataInterchangeFileCSV).fileURL 
+			DataInterchangeFileEDI: return (dataInterchange.fileEndpoint as DataInterchangeFileEDI).fileURL 
+		}
+		return ""
+	}
+	
+	/**
+	 * create more components. this fragment is repainted if something changes (e.g. language)
+	 * 
+	 * @param pkg
+	 *            the current package inferred {@link DataInterchangePackage}
+	 * @return code fragment
+	 */
+	def String createComponents(DataInterchangePackage pkg) {
+		return ""
+	}
+
+	/**
+	 * <p>build the constructor for each smooks class.</p> 
+	 *
+	 * @param pkg
+	 *            the current datainterchange inferred {@link DataInterchange}
+	 */
+	def void toConstructor(JvmDeclaredType type, DataInterchange dataInterchange) {
+		type.members += dataInterchange.toConstructor([
+			body = [append('''
+			setName("«dataInterchange.name»");
+			''')]
+		])
+	}
+
+	/**
+	 * <p>build the class variables.</p> 
+	 *
+	 */
+	def void toFields(JvmDeclaredType type, DataInterchange dataInterchange) {
+   		var JvmField field = null
+   		field = dataInterchange.toField("log", _typeReferenceBuilder.typeRef(Logger)) [setInitializer([ append('''LoggerFactory.getLogger("dataInterchange")''') ])]
+   		field.final = true
+   		field.static = true
+		type.members += field
+		field = dataInterchange.toField("smooksOSGIFactory", _typeReferenceBuilder.typeRef(SmooksFactory)) [setInitializer([ append('''null''') ])]
+		type.members += field
+		field = dataInterchange.toField("smooks", _typeReferenceBuilder.typeRef(Smooks))
+		type.members += field
+//		field = dataInterchange.toField("xmlBinding", _typeReferenceBuilder.typeRef(XMLBinding))
+//		type.members += field
+		field = dataInterchange.toField("em", _typeReferenceBuilder.typeRef(EntityManager))
+		type.members += field
+		field = dataInterchange.toField("fileURL", _typeReferenceBuilder.typeRef(URL))
+		type.members += field
+		field = dataInterchange.toField("executionContext", _typeReferenceBuilder.typeRef(ExecutionContext))
+		type.members += field
+		field = dataInterchange.toField("file", _typeReferenceBuilder.typeRef(OutputStream))
+		type.members += field
+		field = dataInterchange.toField("out", _typeReferenceBuilder.typeRef(OutputStream))
+		type.members += field
+		field = dataInterchange.toField("pollingInterval", _typeReferenceBuilder.typeRef(int)) [setInitializer([ append('''500''') ])]
+		type.members += field
+		field = dataInterchange.toField("transformerFactory", _typeReferenceBuilder.typeRef(TransformerFactory)) [setInitializer([ append('''TransformerFactory.newInstance()''') ])]
+		type.members += field
+		field = dataInterchange.toField("transformer", _typeReferenceBuilder.typeRef(Transformer))
+		type.members += field
+	}
+
+	/**
+	 * <p>build the methods.</p> 
+	 *
+	 */
+	def void toOperations(JvmDeclaredType type, DataInterchange dataInterchange) {
+   		type.members += dataInterchange.toMethod("run", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			annotations += _annotationTypesBuilder.annotationRef(Override)
+   			body = [ append('''run(null);''')]
+   		])
+   		type.members += dataInterchange.toMethod("run", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			parameters += dataInterchange.toParameter("importListener", _typeReferenceBuilder.typeRef(IEntityImportInitializationListener))
+   			body = [ append('''«dataInterchange.performSmooks»''')]
+   		])
+   		type.members += dataInterchange.toMethod("init", _typeReferenceBuilder.typeRef(boolean), [
+			visibility = JvmVisibility.PROTECTED
+   			parameters += dataInterchange.toParameter("direction", _typeReferenceBuilder.typeRef(WorkerThreadRunnable.Direction))
+   			body = [ append('''«dataInterchange.init»''')]
+   		])
+   		type.members += dataInterchange.toMethod("setFileURL", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			parameters += dataInterchange.toParameter("filePath", _typeReferenceBuilder.typeRef(String))
+   			body = [ append('''«dataInterchange.fileUrl»''')]
+   		])
+	}
+
+	/**
+	 * <p>create URL from filepath or other string.</p> 
+	 *
+	 * @param pkg
+	 *            the current datainterchange inferred {@link DataInterchange}
+	 * @return code fragment
+	 */
+	def fileUrl(DataInterchange dataInterchange)
+		'''
+		fileURL = null;
+		String path = filePath;
+		if	(filePath.startsWith("file://") && !org.eclipse.osbp.utils.common.SystemInformation.isMacOS()) {
+			path = filePath.substring("file://".length());
+		}
+		try {
+			fileURL = new URL(path);
+		} catch (MalformedURLException e1) {
+			if(e1.getMessage().startsWith("unknown protocol")) {
+				try {
+					fileURL = Paths.get(path).toUri().toURL();
+				} catch (MalformedURLException e2) {
+					log.error(e2.getLocalizedMessage()+e2.getCause());
+				}
+			}
+		}
+		'''
+
+	/**
+	 * init smooks factory to create the core import process.
+	 * setup listeners for UI communication.
+	 * setup persistence layer.
+	 * 
+	 * @param pkg
+	 *            the current datainterchange inferred {@link DataInterchange}
+	 * @return code fragment
+	 */
+	def String init(DataInterchange dataInterchange) {
+		var firstEntity = (dataInterchange.path.iterator.next as DataInterchangeBean)
+		var body = 
+		'''
+		if(getEventBroker()!=null) {
+			pollingInterval = UI.getCurrent().getPollInterval();
+			UI.getCurrent().setPollInterval(500);
+		}
+		try {
+			transformerFactory.setAttribute("indent-number", 4);
+			transformer = transformerFactory.newTransformer();
+			transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
+			transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+			transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
+			transformer.setOutputProperty(OutputKeys.MEDIA_TYPE, "text/xml");
+			
+			// init smooks
+			setProgressBarEnabled(true);
+			setProgressIndeterminated(true);
+			if (log.isDebugEnabled()) log.debug("initializing smooks factory");
+			smooksOSGIFactory = new SmooksOSGIFactory(FrameworkUtil.getBundle(this.getClass())); 
+			smooks = smooksOSGIFactory.createInstance(FrameworkUtil.getBundle(this.getClass()).getResource("«DSLOutputConfigurationProvider.SMOOKS_OUTPUT_DIRECTORY»/«dataInterchange.name»-"+direction.toString().toLowerCase()+".xml").openStream());
+			// prepare execution context
+			executionContext = smooks.createExecutionContext();
+			executionContext.setEventListener(this);
+			// get entity manager
+			if (log.isDebugEnabled()) log.debug("opening entity manager to persist smooks results");
+			getPersistenceService().registerPersistenceUnit("«firstEntity.entity.persistenceUnit»", «firstEntity.entity.fullyQualifiedName».class);
+			em = getPersistenceService().getEntityManagerFactory("«firstEntity.entity.persistenceUnit»").createEntityManager();
+			«IF dataInterchange.createReport»
+			// create a filtering report -- impacts performance
+			if (log.isDebugEnabled()) log.debug("reporting is on - impacting performance");
+			String location = FrameworkUtil.getBundle(this.getClass()).getLocation()+"«DSLOutputConfigurationProvider.SMOOKS_OUTPUT_DIRECTORY»/«dataInterchange.name»-"+direction.toString().toLowerCase()+"-report.html";
+			executionContext.setEventListener(new HtmlReportGenerator(location));
+			«ENDIF»
+		} catch (Exception e) {
+			if(getEventBroker()!=null) {
+				UI.getCurrent().setPollInterval(pollingInterval);
+			}
+			log.error(e.getLocalizedMessage()+e.getCause());
+			return false;
+		}
+		if(direction == Direction.EXPORT) {
+			int openTry = 0;
+			file = null;
+			URI uri = null;
+			try {
+				uri = fileURL.toURI();
+			} catch (URISyntaxException e) {
+				log.error(e.getLocalizedMessage()+e.getCause());
+				return false;
+			}
+			do {
+				Path path = null;
+				path = Paths.get(uri);
+				try {
+					// find a unique name - similar to given
+					file = Files.newOutputStream(path, StandardOpenOption.CREATE_NEW);
+				} catch (FileAlreadyExistsException ae) {
+					openTry ++;
+					try {
+						uri = fileURL.toURI();
+						int pos = uri.getPath().lastIndexOf('.');
+						if(pos == -1) {
+							uri = new URI(uri.getScheme()+":"+uri.getPath()+openTry);
+						} else {
+							uri = new URI(uri.getScheme()+":"+uri.getPath().substring(0,pos)+openTry+"."+uri.getPath().substring(pos+1));
+						}
+					} catch (URISyntaxException e) {
+							log.error(e.getLocalizedMessage()+e.getCause());
+						return false;
+					}
+				} catch (IOException e) {
+					log.error(e.getLocalizedMessage()+e.getCause());
+					return false;
+				}
+			}while(file == null);
+			out = new BufferedOutputStream(file);
+		}
+		return true;
+		'''
+	return body
+	}
+
+	/**
+	 * use smooks factory to create the core import process.
+	 * setup listeners for UI communication.
+	 * setup persistence layer.
+	 * 
+	 * @param pkg
+	 *            the current datainterchange inferred {@link DataInterchange}
+	 * @return code fragment
+	 */
+	def String performSmooks(DataInterchange dataInterchange) {
+		var firstEntity = (dataInterchange.path.iterator.next as DataInterchangeBean)
+		var body = '''
+		if(!init(getDirection())) {
+			return;
+		}
+		try {
+			if(getDirection()==WorkerThreadRunnable.Direction.IMPORT) {
+		'''
+		body = '''
+		«body»
+				if	(importListener != null) {
+					importListener.notifyInitializationStep("datainterchange «dataInterchange.name.toFirstUpper» load.", 0.4, 0.45, 0, 0);
+				}
+				// execute the smooks filtering
+				JavaResult result = new JavaResult();
+				InputStream in = fileURL.openStream();
+				byte[] contents = StreamUtils.readStream(in);
+				setLength(contents.length);
+				setAvgElementSize(«IF dataInterchange.elementSize==0»10«ELSE»«dataInterchange.elementSize»«ENDIF»);
+				StreamSource source = new StreamSource(new ByteArrayInputStream(contents));
+		'''
+		for (path:dataInterchange.path) {
+			for (lookup:path.lookup) {
+				if (lookup.cached) {
+					body = '''
+					«body»
+							em.setProperty(PersistenceUnitProperties.CACHE_SIZE_+"«lookup.entity.fullyQualifiedName»", "«lookup.cacheSize»");
+					'''
+				}
+			}
+		}
+		body = '''
+		«body»
+				PersistenceUtil.setDAORegister(executionContext, new EntityManagerRegister(em));
+				// execute smooks filtering
+				if (log.isDebugEnabled()) log.debug("filtering starts");
+				setProgressIndeterminated(false);
+				if	(importListener != null) {
+					importListener.notifyInitializationStep("datainterchange Warehouses load..", 0.4, 0.47, 0, 0);
+				}
+				smooks.filterSource(executionContext, source, result);
+				if	(importListener != null) {
+					importListener.notifyInitializationStep("datainterchange Warehouses load...", 0.4, 0.48, 0, 0);
+				}
+				if (log.isDebugEnabled()) log.debug("smooks filtering finished");
+		'''
+		if (firstEntity.recordList) {
+			body = '''
+			«body»
+					// retrieve bean list
+					List<«firstEntity.entity.fullyQualifiedName»> «firstEntity.entity.name.toFirstLower»List = Arrays.asList((«firstEntity.entity.fullyQualifiedName»[]) result.getBean("«firstEntity.entity.name»List"));
+					// persist
+					em.getTransaction().begin();
+					if (log.isDebugEnabled()) log.debug("persisting results");
+					int total = «firstEntity.entity.name.toFirstLower»List.size();
+					int count = 0;
+					long lastStep = System.currentTimeMillis();
+					if	(importListener != null) {
+						importListener.notifyInitializationStep("datainterchange «dataInterchange.name.toFirstUpper»", 0.4, 0.5, count, total);
+					}
+					for(«firstEntity.entity.fullyQualifiedName» «firstEntity.entity.name.toFirstLower»:«firstEntity.entity.name.toFirstLower»List) {
+						try {
+							em.persist(«firstEntity.entity.name.toFirstLower»);
+						}
+						catch (ConstraintViolationException cve) {
+							log.error("«firstEntity.entity.name.toFirstLower» #"+(count+1)+"/"+total+": "+cve.getLocalizedMessage());
+							for	(ConstraintViolation violation : cve.getConstraintViolations()) {
+								Object value = violation.getInvalidValue();
+								if	(value == null) {
+									value = "<null>";
+								}
+								log.error("- property:"
+									+violation.getLeafBean().toString()+"."+violation.getPropertyPath().toString()
+									+" value:'"+value.toString()
+									+" violation:"+violation.getMessage());
+							}
+						}
+						count++;
+						long thisStep = System.currentTimeMillis();
+						if	((importListener != null) && ((count % importListener.getInitializationSubStepNotifySize() == 0) || (thisStep-lastStep > 2500))) {
+							lastStep = System.currentTimeMillis();
+							importListener.notifyInitializationStep("datainterchange «dataInterchange.name.toFirstUpper»", 0.4, 0.5, count, total);
+						}
+					}
+					if	(importListener != null) {
+						importListener.notifyInitializationStep("datainterchange «dataInterchange.name.toFirstUpper»", 0.4, 0.5, count, total);
+					}
+					if (log.isDebugEnabled()) log.debug("committing results");
+					em.getTransaction().commit();			
+			'''
+		} else {
+			body = '''
+			«body»
+					// retrieve the root bean
+					«firstEntity.entity.fullyQualifiedName» «firstEntity.entity.name.toFirstLower» = («firstEntity.entity.fullyQualifiedName») result.getBean("«firstEntity.entity.name»");
+					// persist
+					em.getTransaction().begin();
+					if (log.isDebugEnabled()) log.debug("persisting results");
+					em.persist(«firstEntity.entity.name.toFirstLower»);
+					if (log.isDebugEnabled()) log.debug("committing results");
+					em.getTransaction().commit();			
+			'''
+		}
+		if (firstEntity.markLatest) {
+			body = '''
+			«body»
+					if (log.isDebugEnabled()) log.debug("mark results as latest import");
+					em.setProperty(QueryHints.PESSIMISTIC_LOCK, PessimisticLock.Lock);
+					em.getTransaction().begin();
+					em.createQuery("update «firstEntity.entity.name» set «firstEntity.latestProperty.name» = 0").executeUpdate();
+					em.createQuery("update «firstEntity.entity.name» set «firstEntity.latestProperty.name» = 1 where «»id= :id").setParameter("id", «firstEntity.entity.name.toFirstLower».getId()).executeUpdate();
+					if (log.isDebugEnabled()) log.debug("committing mark");
+					em.getTransaction().commit();			
+			'''
+		}		
+		if (dataInterchange.refreshEnabled)	{
+			body = '''
+			«body»
+					if(getEventBroker()!=null) {
+						getEventBroker().send(EventBrokerMsg.REFRESH_VIEW+"«dataInterchange.refresh»", "*");
+					}
+			'''
+		}
+		body = '''
+		«body»
+				if (log.isDebugEnabled()) log.debug("results persisted");
+		'''
+		var iter = dataInterchange.path.iterator
+		var root = (iter.next as DataInterchangeBean).entity
+		body = '''
+		«body»
+			} else {
+				if (log.isDebugEnabled()) log.debug("prepare export");
+«««				«IF dataInterchange.fileEndpoint instanceof DataInterchangeFileXML»
+«««				// Create and initilise the XMLBinding instance...
+«««				xmlBinding = new XMLBinding(smooks);
+«««				xmlBinding.intiailize();
+«««				xmlBinding.setOmitXMLDeclaration(true);
+«««	        	«ENDIF»
+«««				«dataInterchange.buildEntityGraph(iter, root)»
+				int pageNumber = 1;
+				int pageSize = 1000;
+				CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
+				 
+				if (log.isDebugEnabled()) log.debug("evaluate root entity count");
+				CriteriaQuery<Long> countQuery = criteriaBuilder.createQuery(Long.class);
+				countQuery.select(criteriaBuilder.count(countQuery.from(«firstEntity.entity.fullyQualifiedName».class)));
+				Long count = em.createQuery(countQuery).getSingleResult();
+				if (log.isDebugEnabled()) log.debug("root entity count is "+count.toString());
+				setLength(count*«IF dataInterchange.elementSize==0»10«ELSE»«dataInterchange.elementSize»«ENDIF»);
+				setAvgElementSize(1);
+				
+				CriteriaQuery<«firstEntity.entity.fullyQualifiedName»> criteriaQuery = criteriaBuilder.createQuery(«firstEntity.entity.fullyQualifiedName».class);
+				Root<«firstEntity.entity.fullyQualifiedName»> from = criteriaQuery.from(«firstEntity.entity.fullyQualifiedName».class);
+				/* ... not necessary due to eager loading of entities via JPA ... «dataInterchange.buildJoins(iter, root)» ...*/
+				CriteriaQuery<«firstEntity.entity.fullyQualifiedName»> select = criteriaQuery.multiselect(from);
+				 
+				TypedQuery<«firstEntity.entity.fullyQualifiedName»> typedQuery = em.createQuery(select);
+«««				typedQuery.setHint(QueryHints.JPA_LOAD_GRAPH, «firstEntity.entity.name.toFirstLower»Graph);
+				setProgressIndeterminated(false);
+				while (pageNumber < count.intValue()) {
+					if (log.isDebugEnabled()) log.debug("fetch and process entry "+pageNumber+" to "+(pageNumber+pageSize));
+				    typedQuery.setFirstResult(pageNumber - 1);
+				    typedQuery.setMaxResults(pageSize);
+				    List<«firstEntity.entity.fullyQualifiedName»> queryResults = typedQuery.getResultList();
+«««					«IF dataInterchange.fileEndpoint instanceof DataInterchangeFileCSV»
+					StringWriter writer = new StringWriter();
+					smooks.filterSource(executionContext, new JavaSource(queryResults), new StreamResult(writer));
+					out.write(writer.toString().getBytes());
+«««					«ELSEIF dataInterchange.fileEndpoint instanceof DataInterchangeFileXML»
+«««					for(«firstEntity.entity.fullyQualifiedName» row:queryResults) {
+«««						String outXML = xmlBinding.toXML(row); 
+«««						out.write(outXML.getBytes());
+«««					}
+«««					JAXBContext jc = JAXBContext.newInstance(«firstEntity.entity.fullyQualifiedName».class);
+«««					Marshaller marshaller = jc.createMarshaller();
+«««					marshaller.marshal(queryResults, out);
+«««					«ENDIF»
+				    pageNumber += pageSize;
+				}
+				if (log.isDebugEnabled()) log.debug("export finished");
+			}
+		'''
+		body = '''
+		«body»
+		} catch (Exception e) {
+			log.error("«dataInterchange.name»: "+e.getLocalizedMessage()+e.getCause(), e);
+		} finally {
+			if(file != null) {
+				try {
+					out.close();
+					file.close();
+				} catch (IOException e) {
+			    	log.error(e.getLocalizedMessage()+e.getCause());
+				}
+			}
+			smooks.close();
+			if(getEventBroker()!=null) {
+				UI.getCurrent().setPollInterval(pollingInterval);
+			}
+			// close everything
+			if (em != null) {
+				em.close();
+			}
+			if (log.isDebugEnabled()) log.debug("datainterchange finished");
+		}
+		'''
+		return body
+	}
+
+	/**
+	 * This seems to be not necessary, because JPA seems to load the entities eager itself!
+	 * With this functionality active, the sql result set would contain all root entities multiple times!
+	 */
+	@Deprecated
+	def buildJoins(DataInterchange interchange, Iterator<DataInterchangeBean> iter, LEntity rootEntity) {
+		var root = rootEntity
+		var body = ""
+		if(iter.hasNext) {
+			body = '''«body»from'''
+		}
+		while(iter.hasNext) {
+			var entity = (iter.next as DataInterchangeBean).entity
+			for(f:root.features) {
+				if (f instanceof LReference && f.toMany && f.type instanceof LEntity && f.type.toName.equals(entity.toName)) {
+					// one to many for the entity in sequence is found
+					body = '''«body».fetch("«f.name»", JoinType.LEFT)'''
+				}
+			}
+			root = entity
+		}
+		if(!body.empty) {
+			body = body + ";"	
+		}
+		return body
+	}
+
+	def localeChanged(DataInterchangePackage pkg)
+		'''
+		«IF pkg.title != null»
+		if(logo != null) {
+			logo.setValue(dslMetadataService.translate(locale.toLanguageTag(), "«pkg.title»"));
+		}
+		«ENDIF»
+		if(buttons != null) {
+			for(Button button: buttons.keySet()) {
+				ArrayList i18nKeys = buttons.get(button);
+				button.setCaption(dslMetadataService.translate(locale.toLanguageTag(),(String)i18nKeys.get(1)));
+				button.setDescription(dslMetadataService.translate(locale.toLanguageTag(),(String)i18nKeys.get(0))+" "+dslMetadataService.translate(locale.toLanguageTag(),(String)i18nKeys.get(2)));
+			}
+		}'''
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLModelGenerator.xtend b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLModelGenerator.xtend
new file mode 100644
index 0000000..b67aa60
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLModelGenerator.xtend
@@ -0,0 +1,1060 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * 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:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation 
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.jvmmodel
+
+import com.google.common.collect.Lists
+import com.vaadin.shared.ui.label.ContentMode
+import com.vaadin.ui.Button
+import com.vaadin.ui.Button.ClickEvent
+import com.vaadin.ui.Button.ClickListener
+import com.vaadin.ui.HorizontalLayout
+import com.vaadin.ui.Label
+import com.vaadin.ui.NativeButton
+import com.vaadin.ui.ProgressBar
+import com.vaadin.ui.UI
+import java.io.BufferedOutputStream
+import java.io.ByteArrayInputStream
+import java.io.IOException
+import java.io.InputStream
+import java.io.StringReader
+import java.io.StringWriter
+import java.net.MalformedURLException
+import java.net.URI
+import java.net.URISyntaxException
+import java.net.URL
+import java.nio.file.FileAlreadyExistsException
+import java.nio.file.Files
+import java.nio.file.Path
+import java.nio.file.Paths
+import java.nio.file.StandardOpenOption
+import java.text.MessageFormat
+import java.util.Arrays
+import java.util.HashMap
+import java.util.List
+import java.util.MissingResourceException
+import java.util.concurrent.Executors
+import java.util.concurrent.TimeUnit
+import javax.inject.Inject
+import javax.persistence.EntityManager
+import javax.persistence.EntityTransaction
+import javax.persistence.TypedQuery
+import javax.persistence.criteria.CriteriaBuilder
+import javax.persistence.criteria.CriteriaQuery
+import javax.persistence.criteria.JoinType
+import javax.persistence.criteria.Root
+import javax.validation.ConstraintViolation
+import javax.validation.ConstraintViolationException
+import javax.xml.parsers.DocumentBuilderFactory
+import javax.xml.transform.OutputKeys
+import javax.xml.transform.Transformer
+import javax.xml.transform.TransformerFactory
+import javax.xml.transform.dom.DOMSource
+import javax.xml.transform.stream.StreamResult
+import javax.xml.transform.stream.StreamSource
+import org.apache.commons.lang.StringEscapeUtils
+import org.eclipse.e4.core.di.extensions.EventUtils
+import org.eclipse.e4.core.services.events.IEventBroker
+import org.eclipse.emf.common.util.EList
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.osbp.dsl.entity.xtext.extensions.EntityTypesBuilder
+import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions
+import org.eclipse.osbp.dsl.semantic.common.types.LAttribute
+import org.eclipse.osbp.dsl.semantic.common.types.LDataType
+import org.eclipse.osbp.dsl.semantic.common.types.LReference
+import org.eclipse.osbp.dsl.semantic.entity.LEntity
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute
+import org.eclipse.osbp.dsl.semantic.entity.LEntityFeature
+import org.eclipse.osbp.eventbroker.EventBrokerMsg
+import org.eclipse.osbp.utils.entityhelper.DataType
+import org.eclipse.osbp.utils.entitymock.IEntityImportInitializationListener
+import org.eclipse.osbp.xtext.addons.EObjectHelper
+import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression
+import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable
+import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider
+import org.eclipse.osbp.xtext.i18n.I18NModelGenerator
+import org.eclipse.persistence.config.PersistenceUnitProperties
+import org.eclipse.persistence.config.PessimisticLock
+import org.eclipse.persistence.config.QueryHints
+import org.eclipse.xtext.generator.IFileSystemAccess
+import org.eclipse.xtext.generator.IOutputConfigurationProvider
+import org.eclipse.xtext.naming.IQualifiedNameProvider
+import org.eclipse.xtext.naming.QualifiedName
+import org.eclipse.xtext.xbase.compiler.GeneratorConfig
+import org.eclipse.xtext.xbase.compiler.ImportManager
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor
+import org.eclipse.osbp.ui.api.datamart.IDataMart.EType
+import org.milyn.Smooks
+import org.milyn.SmooksFactory
+import org.milyn.SmooksOSGIFactory
+import org.milyn.container.ExecutionContext
+import org.milyn.event.report.HtmlReportGenerator
+import org.milyn.event.types.ElementPresentEvent
+import org.milyn.event.types.FilterLifecycleEvent
+import org.milyn.event.types.FilterLifecycleEvent.EventType
+import org.milyn.io.StreamUtils
+import org.milyn.javabean.binding.xml.XMLBinding
+import org.milyn.payload.JavaResult
+import org.milyn.payload.JavaSource
+import org.milyn.payload.StringResult
+import org.milyn.persistence.util.PersistenceUtil
+import org.milyn.scribe.adapter.jpa.EntityManagerRegister
+import org.osgi.framework.Bundle
+import org.osgi.framework.BundleContext
+import org.osgi.framework.FrameworkUtil
+import org.osgi.service.event.Event
+import org.osgi.service.event.EventHandler
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
+import org.w3c.dom.Document
+import org.w3c.dom.Element
+
+class ParameterValue {
+	var public HashMap<String,String> modifiers = <String,String>newHashMap() 
+	var public String value
+}
+
+class DataDSLModelGenerator  extends I18NModelGenerator {
+	@Inject extension IQualifiedNameProvider
+	@Inject extension ModelExtensions
+	@Inject extension EntityTypesBuilder
+	@Inject extension IOutputConfigurationProvider outputConfig
+	@Inject extension BasicDslGeneratorUtils
+
+	@Inject
+	@Extension
+	private DataType dtType;
+
+	val static protected CAPTION__REPFIX_I18NKEY_EXPORT = "export"
+	val static protected CAPTION__REPFIX_I18NKEY_IMPORT = "import"
+	
+	var public static String pckgName = null
+	val DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+	val transformerFactory = TransformerFactory.newInstance()
+	var Transformer transformer = null
+	var db = dbf.newDocumentBuilder()
+    var domImpl = db.DOMImplementation
+	
+	def String generateKey(String name, QualifiedName packageName) {
+		var pattern = "(\\W)"
+		if (name != null) {
+			var newName = name.replaceAll(pattern ,"_").toLowerCase
+			System.out.println(newName)
+			if (packageName != null) {
+				return packageName.toString.concat(".").concat(newName)
+			}
+			else {
+				return newName
+			}
+		}
+		return null
+	}
+
+	def void generatePckgName(DataInterchangePackage dip, IJvmDeclaredTypeAcceptor acceptor) {
+		pckgName = dip.getName
+	}
+	
+	override doGenerate(Resource input, IFileSystemAccess fsa) {
+		addTranslatables('''«CAPTION__REPFIX_I18NKEY_EXPORT»,«CAPTION__REPFIX_I18NKEY_IMPORT»''')
+
+        // identation for pretty xml output
+        transformerFactory.setAttribute("indent-number", 4);
+	    transformer = transformerFactory.newTransformer()
+		transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
+        transformer.setOutputProperty(OutputKeys.INDENT, "yes") 
+        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8")
+        transformer.setOutputProperty(OutputKeys.STANDALONE, "yes")
+        transformer.setOutputProperty(OutputKeys.MEDIA_TYPE, "text/xml")
+
+		var configList = Lists.newArrayList(outputConfig.outputConfigurations)
+		var outputDirectory = ""
+		for(config:configList) {
+			if(config.name.equals(DSLOutputConfigurationProvider.SMOOKS_OUTPUT_ONCE)) {
+				outputDirectory = config.outputDirectory
+			}
+		}
+		EcoreUtil.getAllContents(EObjectHelper.getSemanticElement(input), false).filter(typeof(DataInterchange)).forEach[
+			// create all smooks config files
+			fsa.generateImportConfigStub(it)
+			fsa.generateExportConfigStub(it)
+		]
+		super.doGenerate(input, fsa)
+	}
+
+	def void generateExportConfigStub(IFileSystemAccess fsa, DataInterchange dataInterchange) {
+		var body = ""
+		dbf.namespaceAware = true
+        var document = domImpl.createDocument("http://www.milyn.org/xsd/smooks-1.1.xsd", "smooks-resource-list", null)
+
+		var config = document.createElement("resource-config")
+		var selector = document.createAttribute("selector")
+		selector.textContent = "global-parameters"
+		config.attributeNode = selector;
+		var pEl = document.createElement("param");
+		var name = document.createAttribute("name")
+		name.textContent = "stream.filter.type"
+		pEl.attributeNode = name
+		var value = document.createTextNode("SAX")
+		pEl.appendChild(value)
+		config.appendChild(pEl)
+		document.documentElement.appendChild(config)
+
+		var cartridges = <String,String>newHashMap()
+		cartridges.put("xmlns:jb", "http://www.milyn.org/xsd/smooks/javabean-1.4.xsd")
+		switch (dataInterchange.fileEndpoint) {
+			DataInterchangeFileCSV: {
+				var delimiter = ""
+				var quote = ""
+				cartridges.put("xmlns:ftl", "http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd")
+				var csv = dataInterchange.fileEndpoint as DataInterchangeFileCSV
+				if(csv.delimiter != null) {
+					delimiter = StringEscapeUtils.unescapeHtml(csv.delimiter)
+				}
+				if(csv.quoteCharacter != null) {
+					quote = StringEscapeUtils.unescapeHtml(csv.quoteCharacter)
+				}
+				dataInterchange.generateExportConfig(document, dataInterchange.fileEndpoint, delimiter, quote)
+			}
+			DataInterchangeFileXML: {
+				cartridges.put("xmlns:ftl", "http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd")
+				dataInterchange.generateExportConfig(document, dataInterchange.fileEndpoint, null, null)
+			}
+			DataInterchangeFileEDI: {
+			}
+		}
+		for(cdg:cartridges.keySet) {
+			document.documentElement.setAttributeNS("http://www.w3.org/2000/xmlns/", cdg, cartridges.get(cdg))			
+		}
+
+        var source = new DOMSource(document)
+        var res = new StringResult()
+        transformer.transform(source, res)
+        body = res.result 
+		fsa.generateFile('''«dataInterchange.name»-«WorkerThreadRunnable.Direction.EXPORT.toString().toLowerCase()».xml''', DSLOutputConfigurationProvider.SMOOKS_OUTPUT_ONCE, body)
+	}
+	
+	def void generateImportConfigStub(IFileSystemAccess fsa, DataInterchange dataInterchange) {
+		var body = ""
+		dbf.namespaceAware = true
+		var db = dbf.newDocumentBuilder()
+        var domImpl = db.DOMImplementation
+        var document = domImpl.createDocument("http://www.milyn.org/xsd/smooks-1.1.xsd", "smooks-resource-list", null)
+	
+		var fieldList = <LEntityAttribute>newArrayList()
+		var cartridges = <String,String>newHashMap()
+		var parameters = <String,ParameterValue>newHashMap()
+		// for the meaning of cartridges see: http://www.smooks.org/mediawiki/index.php?title=V1.5:Smooks_v1.5_User_Guidecartridges  
+		cartridges.put("xmlns:jb", "http://www.milyn.org/xsd/smooks/javabean-1.2.xsd")
+		cartridges.put("xmlns:dao", "http://www.milyn.org/xsd/smooks/persistence-1.2.xsd")
+		var pval = new ParameterValue
+		pval.value = "SAX" 
+		parameters.put("stream.filter.type", pval)
+		// the smooks.visitor.sort=false removes NPE when using dao:lookup according to:
+		// http://milyn.996300.n3.nabble.com/jira-Created-MILYN-265-Add-support-for-Producer-Consumer-based-sorting-of-Visitor-logic-td3387.html
+		pval = new ParameterValue
+		pval.value = "false" 
+		parameters.put("smooks.visitors.sort", pval)
+		 
+		switch (dataInterchange.fileEndpoint) {
+			DataInterchangeFileXML: {
+				// set input type and active filename
+				pval = new ParameterValue
+				pval.value = "input.xml"
+				parameters.put("inputType", pval) 
+				pval = new ParameterValue
+				pval.value = (dataInterchange.fileEndpoint as DataInterchangeFileXML).fileURL
+				pval.modifiers.put("type", "input.type.actived")
+				parameters.put("input.xml", pval)
+				dataInterchange.generateImportConfig(fieldList, document, dataInterchange.fileEndpoint)
+				(dataInterchange.fileEndpoint as DataInterchangeFileXML).input(dataInterchange, document)
+			}
+			DataInterchangeFileCSV: {
+				cartridges.put("xmlns:csv", "http://www.milyn.org/xsd/smooks/csv-1.2.xsd")
+				// set input type and active filename
+				pval = new ParameterValue
+				pval.value = "input.csv"
+				parameters.put("inputType", pval) 
+				pval = new ParameterValue
+				pval.value = (dataInterchange.fileEndpoint as DataInterchangeFileCSV).fileURL
+				pval.modifiers.put("type", "input.type.actived")
+				parameters.put("input.csv", pval)
+				dataInterchange.generateImportConfig(fieldList, document, dataInterchange.fileEndpoint)
+				(dataInterchange.fileEndpoint as DataInterchangeFileCSV).input(dataInterchange, fieldList, document)
+			}
+			DataInterchangeFileEDI: {
+				cartridges.put("xmlns:edi", "http://www.milyn.org/xsd/smooks/edi-1.2.xsd")
+				// set input type and active filename
+				pval = new ParameterValue
+				pval.value = "input.edi"
+				parameters.put("inputType", pval) 
+				pval = new ParameterValue
+				pval.value = (dataInterchange.fileEndpoint as DataInterchangeFileEDI).fileURL
+				pval.modifiers.put("type", "input.type.actived")
+				parameters.put("input.edi", pval)
+				dataInterchange.generateImportConfig(fieldList, document, dataInterchange.fileEndpoint)
+				(dataInterchange.fileEndpoint as DataInterchangeFileEDI).input(dataInterchange, document)
+			}
+		}
+		for(cdg:cartridges.keySet) {
+			document.documentElement.setAttributeNS("http://www.w3.org/2000/xmlns/", cdg, cartridges.get(cdg))			
+		}
+		var params = document.createElement("params")
+		for(para:parameters.keySet) {
+			var pEl = document.createElement("param");
+			var name = document.createAttribute("name")
+			name.textContent = para
+			pEl.attributeNode = name
+			var value = document.createTextNode(parameters.get(para).value)
+			pEl.appendChild(value)
+			for(mod:parameters.get(para).modifiers.keySet) {
+				var pAt = document.createAttribute(mod)
+				pAt.textContent = parameters.get(para).modifiers.get(mod)
+				pEl.attributeNode = pAt
+			}			
+			params.appendChild(pEl)
+		}
+		document.documentElement.appendChild(params)
+        var source = new DOMSource(document)
+        var res = new StringResult()
+        transformer.transform(source, res)
+        body = res.result 
+		fsa.generateFile('''«dataInterchange.name»-«WorkerThreadRunnable.Direction.IMPORT.toString().toLowerCase()».xml''', DSLOutputConfigurationProvider.SMOOKS_OUTPUT_ONCE, body)
+	}
+	
+	def input(DataInterchangeFileXML xml, DataInterchange interchange, Document doc) {
+	}
+	
+	def input(DataInterchangeFileCSV csv, DataInterchange interchange, List<LEntityAttribute> fieldList, Document doc) {
+		var reader = doc.createElement("csv:reader")
+		var fields = doc.createAttribute("fields")
+		var fldList = <String>newArrayList
+		for(f:fieldList) {
+			fldList.add(f.toName)
+		}
+		fields.textContent = fldList.join(",")
+		reader.attributeNode = fields
+		
+		if(csv.delimiter != null) {
+			var sep = doc.createAttribute("separator")
+			sep.textContent = csv.delimiter
+			reader.attributeNode = sep
+		}
+		
+		if(csv.quoteCharacter != null) {
+			var quote = doc.createAttribute("quote")
+			quote.textContent = StringEscapeUtils.unescapeXml(csv.quoteCharacter) 
+			reader.attributeNode = quote;
+		}
+
+		var indent = doc.createAttribute("indent")
+		indent.textContent = csv.indent.booleanValue.toString
+		reader.attributeNode = indent
+
+		var skip = doc.createAttribute("skipLines")
+		skip.textContent = csv.skipLines.toString
+		reader.attributeNode = skip
+
+		doc.documentElement.appendChild(reader)
+	}
+
+	def input(DataInterchangeFileEDI edi, DataInterchange interchange, Document doc) {
+		var reader = doc.createElement("edi:reader")
+		var mapping = doc.createAttribute("mappingModel")
+		mapping.textContent = edi.mappingModel
+		reader.attributeNode = mapping
+		
+		var validate = doc.createAttribute("validate")
+		validate.textContent = edi.validate.booleanValue.toString
+		reader.attributeNode = validate
+
+		doc.documentElement.appendChild(reader)
+	}
+
+	def createFreemarker(Document doc, String templateString) {
+		var freemarker = doc.createElement("ftl:freemarker")
+		var apply = doc.createAttribute("applyOnElement")
+		apply.textContent = "#document"
+		freemarker.attributeNode = apply
+
+		doc.documentElement.appendChild(freemarker)
+		var template = doc.createElement("ftl:template")
+		var tplName = doc.createCDATASection(templateString.replaceAll("\r",""));
+		template.appendChild(tplName)
+		freemarker.appendChild(template)
+	}
+	
+	def Element createBean(Document doc, String beanIdName, String className, String elementMap, boolean isList) {
+		var bean = doc.createElement("jb:bean")
+		doc.documentElement.appendChild(bean)
+		var beanId = doc.createAttribute("beanId")
+		beanId.textContent = beanIdName
+		bean.attributeNode = beanId
+		var clazz = doc.createAttribute("class")
+		clazz.textContent = '''«className»«IF isList»[]«ENDIF»'''
+		bean.attributeNode = clazz
+		// is mapping given?
+		if(elementMap != null) {
+			var create = doc.createAttribute("createOnElement")
+			create.textContent = elementMap
+			bean.attributeNode = create
+		}
+		return bean
+	}	
+	
+	def Element createProperty(Document doc, Element parent, String propertyName, String decoderName, EType type) {
+		var Element value = null
+		// try to find a value element, or create a new one
+		var node = parent.firstChild
+		while(node != null && (!node.nodeName.equals("jb:value") || !node.attributes.getNamedItem("property").nodeValue.equals(propertyName))) {
+			node = node.nextSibling
+		}
+		if(node == null) {
+			value = doc.createElement("jb:value")
+			parent.appendChild(value)
+		} else {
+			value = node as Element
+		}
+
+		var property = doc.createAttribute("property")
+		property.textContent = propertyName
+		value.attributeNode = property
+		if(decoderName != null) {
+			var decoder = doc.createAttribute("decoder")
+			decoder.textContent = decoderName
+			value.attributeNode = decoder
+		}
+		if	(type == EType.DATE) {
+			var defaultValue = doc.createAttribute("default")
+			defaultValue.textContent = "null"
+			value.attributeNode = defaultValue
+		}
+		return value
+	}
+	
+	def addMapping(Document doc, Element parent, String propertyName, String dataName) {
+		var elementMap = ""
+		var attr = parent.attributes.getNamedItem("createOnElement")
+		if (attr != null) {
+			elementMap = attr.textContent
+		}
+		var Element value = null
+		// try to find a value element, or create a new one
+		var node = parent.firstChild
+		while(node != null && node.hasAttributes && (!node.nodeName.equals("jb:value") || !node.attributes.getNamedItem("property").nodeValue.equals(propertyName))) {
+			node = node.nextSibling
+		}
+		if(node == null) {
+			value = doc.createElement("jb:value")
+			parent.appendChild(value)
+		} else {
+			value = node as Element
+		}
+		var data = doc.createAttribute("data")
+		data.textContent = elementMap+"/"+dataName
+		value.attributeNode = data
+	}
+	
+	def Element createDecodeParam(Document doc, Element parent, String paramName, String paramValue) {
+		var param = doc.createElement("jb:decodeParam")
+		parent.appendChild(param)
+		var name = doc.createAttribute("name")
+		name.textContent = paramName
+		param.attributeNode = name
+		var form = doc.createTextNode(paramValue)
+		param.appendChild(form)
+		return param
+	}
+
+	def Element createWiring(Document doc, Element parent, String beanIdRefName, String propertyName, String setterName) {
+		var value = doc.createElement("jb:wiring")
+		parent.appendChild(value)
+		var beanIdRef = doc.createAttribute("beanIdRef")
+		beanIdRef.textContent = beanIdRefName
+		value.attributeNode = beanIdRef
+		if(propertyName != null) {
+			var property = doc.createAttribute("property")
+			property.textContent = propertyName
+			value.attributeNode = property
+		}
+		if(setterName != null) {
+			var setter = doc.createAttribute("setterMethod")
+			setter.textContent = setterName
+			value.attributeNode = setter
+		}
+		return value
+	}
+
+	def Element createExpression(Document doc, Element parent, String propertyName, String propertyValue) {
+		var expression = doc.createElement("jb:expression")
+		parent.appendChild(expression)
+		var property = doc.createAttribute("property")
+		property.textContent = propertyName
+		expression.attributeNode = property
+		var propNode = doc.createTextNode(propertyValue)
+		expression.appendChild(propNode)
+		return expression
+	}
+
+	def Element createDaoLocator(Document doc, Element parent, String beanIdName, String elementMap, boolean allowNoResult, boolean allowNonuniqueResult) {
+		var locator = doc.createElement("dao:locator")
+		if (parent == null) {
+			doc.documentElement.appendChild(locator)
+		} else {
+			parent.appendChild(locator)
+		}
+		var beanId = doc.createAttribute("beanId")
+		beanId.textContent = beanIdName
+		locator.attributeNode = beanId
+		// mapping given?
+		if(elementMap != null) {
+			var lookupOnElement = doc.createAttribute("lookupOnElement")
+			lookupOnElement.textContent = elementMap
+			locator.attributeNode = lookupOnElement
+		}
+		
+		if(!allowNoResult) {
+			var onNoResult = doc.createAttribute("onNoResult")
+			onNoResult.textContent = "EXCEPTION"
+			locator.attributeNode = onNoResult
+		}
+		var uniqueResult = doc.createAttribute("uniqueResult")
+		uniqueResult.textContent = (!allowNonuniqueResult).booleanValue.toString
+		locator.attributeNode = uniqueResult
+		return locator
+	}
+		
+	def Element createDaoQuery(Document doc, Element parent, String query) {
+		var daoQuery = doc.createElement("dao:query")
+		parent.appendChild(daoQuery)
+		var queryText = doc.createTextNode(query)
+		daoQuery.appendChild(queryText)
+		return daoQuery
+	}
+	
+	def Element createDaoParam(Document doc, Element parent, String paramName, String paramValue, String elementMap, String dataMap) {
+		var Element daoParams = null
+		var node = parent.firstChild
+		while(node != null && !node.nodeName.equals("dao:params")) {
+			node = node.nextSibling
+		}
+		if(node == null) {
+			daoParams = doc.createElement("dao:params")
+			parent.appendChild(daoParams)
+		} else {
+			daoParams = node as Element
+		}
+		var daoValue = doc.createElement("dao:value")
+		daoParams.appendChild(daoValue)
+		var param = doc.createAttribute("name")
+		param.textContent = paramName
+		daoValue.attributeNode = param
+		var decoder = doc.createAttribute("decoder")
+		decoder.textContent = paramValue
+		daoValue.attributeNode = decoder
+		// mapping given?
+		if(dataMap != null) {
+			var data = doc.createAttribute("data")
+			data.textContent = elementMap+"/"+dataMap
+			daoValue.attributeNode = data
+		}
+		return daoParams
+	}
+	
+	def generateExportConfig(DataInterchange dataInterchange, Document doc, DataInterchangeFile endPoint, String delimiter, String quote) {
+		var substitutionMap = <String,String>newHashMap
+		var substitutionCount = 0
+		var fieldList = <LEntityAttribute>newArrayList 
+		var String rootEntityName = null
+		var Document ftlDocument = null
+		var Element bean = null
+		var vector = "vector"
+		for(path : dataInterchange.path) {
+			if (rootEntityName == null) {
+				rootEntityName = path.entity.name.toString
+			}
+			if (dataInterchange.fileEndpoint instanceof DataInterchangeFileXML) {
+				var currentKey = '''list«substitutionCount»'''
+				if(ftlDocument == null) {
+					ftlDocument = domImpl.createDocument(null, "vector", null)
+				}
+				substitutionMap.put(currentKey, '''«vector» as «path.entity.name»''')
+				bean = createXmlBean(ftlDocument, bean, path.entity, path.format, currentKey)
+				substitutionCount = substitutionCount + 1
+			}
+			for (f : path.entity.features) {
+				if(f instanceof LAttribute && !f.toMany) {
+					if ((!"disposed".equals((f as LEntityFeature).toName) && (!"id".equals((f as LEntityFeature).toName)))) {
+						fieldList.add(f as LEntityAttribute)
+					}
+				}
+				if(f instanceof LReference && f.toMany) {
+					var iter = dataInterchange.path.iterator
+					var next = iter.next
+					// find this entity
+					while (iter.hasNext && !next.entity.toName.equals(path.entity.toName)) {
+						next = iter.next
+					} 
+					while (iter.hasNext) {
+						// move to next entity
+						next = iter.next
+						if (next != null && next.entity.toName.equals((f.type as LEntity).toName)) {
+							vector = '''«path.entity.name».«(f as LEntityFeature).name»'''
+						}
+					}
+				}
+			}			
+		}
+		if(endPoint instanceof DataInterchangeFileCSV) {
+			createFreemarker(doc, createCsvTemplate(rootEntityName, fieldList, delimiter, quote, dataInterchange.path))
+		}
+		if(endPoint instanceof DataInterchangeFileXML) {
+			createFreemarker(doc, createXmlTemplate(ftlDocument, substitutionMap))
+		}
+	}
+	
+	def generateImportConfig(DataInterchange dataInterchange, List<LEntityAttribute> fieldList, Document doc, DataInterchangeFile endPoint) {
+		var autoMapping = ""
+		if(endPoint instanceof DataInterchangeFileCSV) {
+			autoMapping = "/csv-set"
+		} else if(endPoint instanceof DataInterchangeFileXML) {
+			autoMapping = "vector"
+		}
+		for(path : dataInterchange.path) {
+			var map = ""
+			if(path.elementMap == null) {
+				map = autoMapping
+			} else {
+				map = path.elementMap
+			}
+			var Element bean = null
+			if(path.recordList) {
+				var rootBean = createBean(doc, path.entity.toName+"List", path.entity.fullyQualifiedName.toString, map, true)
+				createWiring(doc, rootBean, path.entity.toName, null, null)
+				if(endPoint instanceof DataInterchangeFileCSV) {
+					autoMapping = autoMapping + "/csv-record"
+				} else if(endPoint instanceof DataInterchangeFileXML) {
+					autoMapping = autoMapping + "/" + path.entity.toName
+				}
+				if(path.elementMap == null) {
+					map = autoMapping
+				} else {
+					map = path.elementMap
+				}
+				bean = createBean(doc, path.entity.toName, path.entity.fullyQualifiedName.toString, map, false)
+			} else {
+				if(endPoint instanceof DataInterchangeFileXML) {
+					autoMapping = autoMapping + "/" + path.entity.toName
+				}
+				if(path.elementMap == null) {
+					map = autoMapping
+				} else {
+					map = path.elementMap
+				}
+				bean = createBean(doc, path.entity.toName, path.entity.fullyQualifiedName.toString, map, false)
+			}
+			var mappingFound = false
+			for (f : path.entity.features) {
+				switch f {
+					LAttribute: {
+						if (!f.toMany) {
+							// enable mapping for this field, but first try special cases...
+							if ((!"disposed".equals((f as LEntityFeature).toName) && (!"id".equals((f as LEntityFeature).toName) && (!path.markLatest  || !path.latestProperty.toName.equals((f as LEntityFeature).toName))))) {
+								// add to the level's field list
+								if (path.recordList || path.recordElement) {
+									fieldList.add(f as LEntityAttribute)
+								}
+								var expressionFound = false
+								// scan expressions for this field
+								for (expr : path.expression) {
+									switch(expr) {
+										DataInterchangeEntityExpression: {
+											// is there an entity expression for this attribute ?
+											if ((f as LEntityFeature).toName.equals((expr as DataInterchangeEntityExpression).targetProperty.toName)) {
+												createExpression(doc, bean, (f as LEntityFeature).toName, (expr as DataInterchangeEntityExpression).entity.toName+"."+(expr as DataInterchangeEntityExpression).property.toName)
+												expressionFound = true
+											}
+										}
+										DataInterchangePredefinedExpression: {
+											// is there an predefined expression modeled for this attribute ?
+											if ((f as LEntityFeature).toName.equals((expr as DataInterchangePredefinedExpression).targetProperty.toName)) {
+												if("UUID".equals((expr as DataInterchangePredefinedExpression).bean.literal)) {
+													createExpression(doc, bean, (f as LEntityFeature).toName, "PUUID."+(expr as DataInterchangePredefinedExpression).beanType.getName)
+												} else {
+													createExpression(doc, bean, (f as LEntityFeature).toName, "PTIME."+(expr as DataInterchangePredefinedExpression).bean.getName+(expr as DataInterchangePredefinedExpression).beanType.getName)
+												}
+												expressionFound = true
+											}
+										}
+									}
+								}
+								// scan formats for this field
+								var formatFound = false
+								for (format : path.format) {
+									// is there a format modeled for this attribute ?
+									if ((f as LEntityFeature).toName.equals(format.targetProperty.toName)) {
+										var value = createProperty(doc, bean, (f as LEntityFeature).toName, (f as LEntityFeature).decoder, dtType.getBasicType(f as LEntityAttribute))
+										if(format.format != null) {
+											createDecodeParam(doc, value, "format", format.format)
+											if (format.locale != null) {
+												createDecodeParam(doc, value, "locale-language", format.locale.split("_").get(0))
+												if(format.locale.split("_").size > 1) {
+													createDecodeParam(doc, value, "locale-country", format.locale.split("_").get(1))
+												}
+											}
+										}
+										formatFound = true
+									}
+								}
+								// scan lookup for this field - import only
+								var lookupFound = false
+								for (lookup : path.lookup) {
+									// entity and property must match
+									if ((f as LEntityFeature).toName.equals(lookup.targetProperty.toName)) {
+										var value = createWiring(doc, bean, (f.type as LEntity).toName, (f as LReference).name, null)
+										var locator = createDaoLocator(doc, value, (f.type as LEntity).toName, lookup.elementMap, lookup.allowNoResult, lookup.allowNonuniqueResult)
+										var daoQuery = createDaoQuery(doc, locator, (f.type as LEntity).query(lookup))
+										createDaoParam(doc, daoQuery, "param", (f as LEntityFeature).type.name.toFirstUpper, lookup.elementMap, lookup.dataMap)
+									}
+								}
+								// default for mapping purposes
+								if (!expressionFound && !formatFound && !lookupFound) {
+									// add format decoder
+									var etype = dtType.getBasicType(f as LEntityAttribute)
+									var value = createProperty(doc, bean, (f as LEntityFeature).toName, (f as LEntityFeature).decoder, etype) 
+									if (etype == EType.DATE) {
+										createDecodeParam(doc, value, "format", "yyyy-MM-dd")
+									}
+								}
+								// if mapping given
+								for(mapping : path.mappings) {
+									if(f.name.equals(mapping.property.name)) {
+										addMapping(doc, bean, (f as LEntityFeature).toName,  mapping.data)
+										mappingFound = true
+									}
+								}
+								// if recordElement given
+								if (!mappingFound && !fieldList.isEmpty) {
+									if (path.recordList || path.recordElement) {
+										for(fld : fieldList) {
+											addMapping(doc, bean, fld.toName,  fld.toName)
+										}
+									}
+								}
+								// default mapping for xml
+								if (!mappingFound && endPoint instanceof DataInterchangeFileXML) {
+									addMapping(doc, bean, (f as LEntityFeature).toName, (f as LEntityFeature).toName)
+								}
+							}
+						}
+					}
+					// check relations for modeled lookup
+					LReference: {
+						if (f.toMany) {
+							// one to many
+							// mapped automatically
+							var iter = dataInterchange.path.iterator
+							var next = iter.next
+							// find this entity
+							while (iter.hasNext && !next.entity.toName.equals(path.entity.toName)) {
+								next = iter.next
+							} 
+							while (iter.hasNext) {
+								// move to next entity
+								next = iter.next
+								if (next != null && next.entity.toName.equals((f.type as LEntity).toName)) {
+									createWiring(doc, bean, (f.type as LEntity).toName, null, (f as LEntityFeature).toAdder((f as LEntityFeature).name).simpleName)
+								}
+							}
+						} else {
+							// many to one
+							// generate possible lookups for this many to one relationship
+							for (lookup : path.lookup) {
+								// entity and property must match
+								if (lookup.targetProperty.toName.equals((f as LReference).name)) {
+									createWiring(doc, bean, (f.type as LEntity).toName, (f as LReference).name, null)
+									var locator = createDaoLocator(doc, null, (f.type as LEntity).toName, lookup.elementMap, lookup.allowNoResult, lookup.allowNonuniqueResult)
+									createDaoQuery(doc, locator, (f.type as LEntity).query(lookup))
+									createDaoParam(doc, locator, "param", lookup.queryProperty.type.name.toFirstUpper, lookup.elementMap, lookup.dataMap)									
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+	
+	def Element createXmlBean(Document doc, Element parent, LEntity entity, EList<DataInterchangeFormat> formats, String currentKey) {
+		var bean = doc.createElement(entity.name)
+		var pi = doc.createProcessingInstruction(currentKey, "")
+		if(parent == null) {
+			doc.documentElement.appendChild(pi)
+			doc.documentElement.appendChild(bean)
+		} else {
+			bean = doc.createElement(entity.name)
+			parent.appendChild(pi)
+			parent.appendChild(bean)
+		}
+		for(p:entity.allAttributes) {
+			if ((!"disposed".equals(p.toName) && (!"id".equals(p.toName)))) {
+				var format = null as DataInterchangeFormat
+				for (step : formats) {
+					// is there a format modeled for this attribute ?
+					if ((p as LEntityFeature).toName.equals(step.targetProperty.toName)) {
+						if	(step.format != null) {
+							format = step
+						}
+					}
+				}
+				var property = doc.createElement(p.toName)
+				property.textContent = encodeFreemarker(entity.name, p, format, "")
+				bean.appendChild(property)
+			}
+		}
+		var pa = doc.createProcessingInstruction(currentKey, "")
+		if(parent == null) {
+			doc.documentElement.appendChild(pa)
+		} else {
+			parent.appendChild(pa)
+		}
+		return bean
+	}
+	
+	def String decoder(LEntityFeature f) {
+		return getPrimitiveDataTypeName(f as LEntityAttribute)
+	}
+
+	def String getPrimitiveDataTypeName(LEntityAttribute attribute) {
+		var eType = dtType.getBasicType(attribute)
+		var String typeName = null
+		if	(eType == EType.DATE) {
+			typeName = "Date"
+		}
+		else if (attribute.type != null && (attribute.type instanceof LDataType) && (attribute.type as LDataType).jvmTypeReference != null) {
+			typeName = (attribute.type as LDataType).jvmTypeReference.simpleName
+		} else {
+			typeName = attribute.type.name
+		}
+		if ("int".equals(typeName)) {
+			typeName = "Integer"
+		}
+		return typeName.toFirstUpper
+	}
+//    <ftl:freemarker applyOnElement="org.eclipse.osbp.foodmart.entities.Mregion">
+//        <ftl:template>
+//				<!--<#list vector as Mregion>
+//<Mregion>
+//    <sales_city>${Mregion.sales_city}</sales_city>
+//    <#list Mregion.stores as Mstore>
+//    	<store_type>${Mstore.store_type}</store_type>
+//    </#list>
+//</Mregion>
+//</#list>
+//-->
+//        </ftl:template>
+//    </ftl:freemarker>
+				
+	def String createXmlTemplate(Document doc, HashMap<String,String> substitutionMap)	{
+        var source = new DOMSource(doc)
+        var res = new StringResult()
+		transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+        transformer.transform(source, res)
+        var output = res.result 
+        // processing instructions are embedded in question marks - they must be replaced
+        for(l:substitutionMap.keySet) {
+        	output = output.replaceFirst(l, '''#list «substitutionMap.get(l)»''')
+        }
+        for(l:substitutionMap.keySet) {
+        	output = output.replaceFirst(l, '''/#list''')
+        }
+        return output.replace("&lt;","<").replace("&gt;",">").replace("<?","<").replace("?>",">")//.replace("</#","\n</#") 
+	}
+	
+	def String createCsvTemplate(String rootEntityName, List<LEntityAttribute> fieldList, String delimiter, String quote, EList<DataInterchangeBean> paths)	{
+		var tmpList = <String>newArrayList()
+		var fldList = <String>newArrayList
+		for(field:fieldList) {
+			tmpList.add(encodeFreemarker(rootEntityName, field, paths, quote))
+			fldList.add(field.toName)
+		}
+		var body = '''«fldList.join(delimiter)»
+<#list vector as «rootEntityName»>
+«tmpList.join(delimiter)»
+</#list>'''
+        return body
+	}
+
+	def String encodeFreemarker(String entityName, LEntityAttribute field, EList<DataInterchangeBean> paths, String quote) {
+		var format = null as DataInterchangeFormat
+		val entity = field.eContainer as LEntity
+		for	(path : paths) {
+			if	(path.entity.equals(entity)) {
+				for (step : path.format) {
+					// is there a format modeled for this attribute ?
+					if (field.toName.equals(step.targetProperty.toName)) {
+						if	(step.format != null) {
+							format = step
+						}
+					}
+				}
+			}
+		}
+		return encodeFreemarker(entityName, field, format, quote)
+	}
+
+	def String encodeFreemarker(String entityName, LEntityAttribute field, DataInterchangeFormat format, String quote) {
+		var etype = dtType.getBasicType(field)
+		if	(etype == EType.BOOLEAN) {
+			return '''${(«entityName».«field.toName»?c)!}'''
+		}
+		else if	(format != null) {
+			return '''${(«entityName».«field.toName»?string["«format.format»"])!}'''
+		}
+		else if	(etype == EType.DATE) {
+			return '''${(«entityName».«field.toName»?date)!}'''
+		}
+		else if	(etype == EType.STRING) {
+			return '''«quote»${(«entityName».«field.toName»)!}«quote»'''
+		} 
+		else {
+			return '''${(«entityName».«field.toName»)!}'''
+		}
+	}	
+	
+	/* create a multistage left joined query to climb up along the one to many relations until import marker */
+	def String query(LEntity entity, DataInterchangeLookup lookup) {
+		var aliasCnt = 0
+		var select = '''«entity.toName» x«aliasCnt»'''
+		var joinList = <String>newArrayList
+		var whereList = <String>newArrayList
+		var qstr = '''x«aliasCnt».«lookup.queryProperty.toName» = :param'''
+		whereList.add(qstr)
+		if (lookup.markerPath != null) {
+			for(markerEntity:lookup.markerPath.path) {
+				aliasCnt = aliasCnt + 1
+				if (markerEntity.markLatest) {
+					qstr = '''x«aliasCnt».«markerEntity.markerProperty.toName» = 1'''
+					whereList.add(qstr)
+				}
+				for(ff:entity.features) {
+					if (ff instanceof LReference && !ff.toMany) {
+						if (markerEntity.markerEntity.toName.equals((ff.type as LEntity).toName)) {
+							qstr = '''x«aliasCnt-1».«ff.toName» x«aliasCnt»'''
+							joinList.add(qstr)
+						}
+					}
+				}
+			}
+		}
+		return '''from «select»«IF joinList.size>0» left join «ENDIF»«joinList.join(" left join ")» where «whereList.join(" and ")»'''
+	}
+
+	override createAppendable(EObject context, ImportManager importManager, GeneratorConfig config) {
+		// required to initialize the needed builder to avoid deprecated methods
+		builder = context.eResource
+		// ---------
+		addImportFor(importManager, _typeReferenceBuilder
+			, FrameworkUtil
+			, SmooksOSGIFactory
+			, SmooksFactory
+			, Smooks
+			, HtmlReportGenerator
+			, ExecutionContext
+			, JavaResult
+			, XMLBinding
+			, StreamSource
+			, ByteArrayInputStream
+			, URL
+			, URI
+			, InputStream
+			, StreamUtils
+			, MalformedURLException
+			, IOException
+			, FileAlreadyExistsException
+			, URISyntaxException
+			, EntityManager
+			, PersistenceUtil
+			, EntityManagerRegister
+			, EntityTransaction
+			, Logger
+			, LoggerFactory
+			, Label
+			, Button
+			, NativeButton
+			, ClickListener
+			, ClickEvent
+			, ContentMode
+			, PersistenceUnitProperties
+			, HorizontalLayout
+			, ProgressBar
+			, IEventBroker
+			, WorkerThreadRunnable
+			, HashMap
+			, Executors
+			, TimeUnit
+			, QueryHints
+			, PessimisticLock
+			, MissingResourceException
+			, MessageFormat
+			, EventHandler
+			, Event
+			, EventUtils
+			, EventBrokerMsg
+			, Bundle
+			, BundleContext
+			, List
+			, Arrays
+			, StringWriter
+			, StringReader
+			, OutputKeys
+			, StreamResult
+			, JavaSource
+			, CriteriaBuilder
+			, CriteriaQuery
+			, Root
+			, TypedQuery
+			, JoinType
+			, Paths
+			, Path
+			, Files
+			, StandardOpenOption
+			, BufferedOutputStream
+			, FilterLifecycleEvent
+			, ElementPresentEvent
+			, EventType
+			, UI
+			, Pair
+			, IEntityImportInitializationListener
+			, ConstraintViolationException
+			, ConstraintViolation
+		)
+		super.createAppendable(context, importManager, config)
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.xtend b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.xtend
new file mode 100644
index 0000000..796c5fb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.xtend
@@ -0,0 +1,233 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.scoping
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity
+import javax.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.xtext.resource.EObjectDescription
+import org.eclipse.xtext.resource.IEObjectDescription
+import org.eclipse.xtext.scoping.IScope
+import org.eclipse.xtext.scoping.impl.MapBasedScope
+import org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider
+import org.eclipse.osbp.dsl.entity.xtext.extensions.EntityTypesBuilder
+import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions
+import org.eclipse.osbp.dsl.semantic.common.types.LAttribute
+import org.eclipse.osbp.dsl.semantic.common.types.LReference
+import org.eclipse.osbp.dsl.semantic.entity.LEntity
+import org.eclipse.osbp.dsl.semantic.entity.LEntityReference
+
+class DataDSLScopeProvider extends XbaseWithAnnotationsBatchScopeProvider {
+	@Inject extension ModelExtensions
+	@Inject extension EntityTypesBuilder
+
+	override getScope(EObject context, EReference reference) {
+		if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY) {
+			return getScope_Data_Entity_latest(context, reference)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY) {
+			return getScope_Data_Target_property(context, reference, true)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY) {
+			return getScope_Data_Target_property(context, reference, true)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY) {
+			return getScope_Data_Expression_entity(context, reference, true)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY) {
+			return getScope_Data_Expression_entity(context, reference, false)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY) {
+			return getScope_Data_Target_property(context, reference, false)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY) {
+			return getScope_Data_Lookup_queryProperty(context, reference)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_LOOKUP__ENTITY) {
+			return getScope_Data_Lookup_lookupEntity(context, reference)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_BEAN__ENTITY) {
+			return getScope_Data_Bean_Entity(context, reference)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_MAPPING__PROPERTY) {
+			return getScope_Data_Target_property(context, reference, true)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY) {
+			return getScope_Data_Markerpath_entity(context, reference)
+		} else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY) {
+			return getScope_Data_Entity_latest(context, reference)
+		} else {
+			super.getScope(context, reference)
+		}
+	}
+	
+	def getScope_Data_Bean_Entity(EObject context, EReference reference) {
+		var result = <IEObjectDescription>newArrayList
+		var eObj = context.eContainer
+		while (!(eObj instanceof DataInterchange)) {
+			eObj = eObj.eContainer
+		}
+		if (eObj != null) {
+			var DataInterchangeBean previousEntity = null
+			for(diEntity:(eObj as DataInterchange).path) {
+				// find me
+				if (previousEntity != null) {
+					// remove this entity from result, we already used it
+					var IEObjectDescription delObj = null
+					for(r:result) {
+						if (r.name.toString.equals(previousEntity.entity.name)) { 
+							delObj = r
+						}
+					}
+					if(delObj != null) {
+						result.remove(delObj)
+					}
+					// scoping refers to the previous owner
+					for(f:previousEntity.entity.features) {
+						if (f instanceof LReference) {
+							if (f.cascading && f.toMany) {
+								var ref = (f as LEntityReference)
+								result.add(EObjectDescription.create(ref.type.toName, ref.type))
+							}
+						}
+					}
+				}
+				if (!diEntity.equals(context)) {
+					previousEntity = diEntity
+				}
+				else if (previousEntity == null) {
+					return super.getScope(context, reference)
+				}
+			}
+		}
+		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
+	}
+	
+	def getScope_Data_Lookup_queryProperty(EObject context, EReference reference) {
+		var result = <IEObjectDescription>newArrayList
+		if (context != null && context instanceof DataInterchangeLookup) {
+			var entity = (context as DataInterchangeLookup).entity
+			for (prop : entity.features) {
+				if (prop instanceof LAttribute && !prop.toMany) {
+					result.add(EObjectDescription.create((prop as LAttribute).name, (prop as LAttribute)))
+				}
+			}
+		}
+		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
+	}
+	
+	def getScope_Data_Lookup_lookupEntity(EObject context, EReference reference) {
+		var result = <IEObjectDescription>newArrayList
+		var targetProperty = (context as DataInterchangeLookup).targetProperty
+		var eObj = context.eContainer
+		while (!(eObj instanceof DataInterchangeBean)) {
+			eObj = eObj.eContainer
+		}
+		if (eObj != null) {
+			var entity = (eObj as DataInterchangeBean).entity
+			for (prop : entity.features) {
+				if (prop instanceof LReference && !prop.toMany && (prop as LReference).name.equals(targetProperty.toName)) {
+					result.add(EObjectDescription.create((prop as LReference).type.name, (prop as LReference).type))
+				}
+			}
+		}
+		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
+	}
+	
+	def getScope_Data_Expression_entity(EObject context, EReference reference, boolean filterEntity) {
+		var result = <IEObjectDescription>newArrayList
+		var targetProperty = (context as DataInterchangeEntityExpression).targetProperty
+		var fromEntity = (context as DataInterchangeEntityExpression).entity
+		var eObj = context.eContainer
+		while (!(eObj instanceof DataInterchange)) {
+			eObj = eObj.eContainer
+		}
+		if (eObj != null) {
+			for (path : (eObj as DataInterchange).path) {
+				for (f:path.entity.features) {
+					if (f instanceof LAttribute && (f as LAttribute).type.name.equals(targetProperty.type.name)) {
+						if (filterEntity) {
+							result.add(EObjectDescription.create(path.entity.toName, path.entity))
+						} else if (fromEntity == null || path.entity.toName.equals(fromEntity.toName)) {
+							result.add(EObjectDescription.create((f as LAttribute).toName, (f as LAttribute)))
+						}
+					}
+				}
+			}
+		}
+		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
+	}
+	
+	def getScope_Data_Target_property(EObject context, EReference reference, boolean filterAttributes) {
+		var result = <IEObjectDescription>newArrayList
+		var eObj = context.eContainer
+		while (!(eObj instanceof DataInterchangeBean)) {
+			eObj = eObj.eContainer
+		}
+		if (eObj != null) {
+			var entity = (eObj as DataInterchangeBean).entity
+			var marker = (eObj as DataInterchangeBean).latestProperty
+			for (prop : entity.features) {
+				if (filterAttributes) {
+					if (prop instanceof LAttribute && (marker==null || !prop.toName.equals(marker.toName))) {
+						result.add(EObjectDescription.create((prop as LAttribute).name, (prop as LAttribute)))
+					}
+				} else {
+					if (prop instanceof LReference && !prop.toMany) {
+						result.add(EObjectDescription.create((prop as LReference).name, (prop as LReference)))
+					}
+				}
+			}
+		}
+		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
+	}
+	
+	def getScope_Data_Entity_latest(EObject context, EReference reference) {
+		var result = <IEObjectDescription>newArrayList
+		var LEntity rootEntity = null
+		if (context != null) {
+			switch context {
+				DataInterchangeBean: {
+					rootEntity = (context as DataInterchangeBean).entity
+				}
+				DataInterchangeMarkerEntity: {
+					rootEntity = (context as DataInterchangeMarkerEntity).markerEntity
+				}
+			}
+			for (prop : rootEntity.features) {
+				if (prop instanceof LAttribute && "boolean".equals((prop as LAttribute).type.name)) {
+					result.add(EObjectDescription.create((prop as LAttribute).name, (prop as LAttribute)))
+				}
+			}
+		}
+		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
+	}
+	
+	def getScope_Data_Markerpath_entity(EObject context, EReference reference) {
+		var result = <IEObjectDescription>newArrayList
+		var eObj = context.eContainer
+		while (!(eObj instanceof DataInterchangeLookup)) {
+			eObj = eObj.eContainer
+		}
+		if (eObj != null) {
+			var entity = (eObj as DataInterchangeLookup).entity
+			for (f:entity.references) {
+				if (!f.toMany) {
+					result.add(EObjectDescription.create(f.type.toName , f.type))
+				}
+			}
+		}
+		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/validation/DataDSLValidator.xtend b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/validation/DataDSLValidator.xtend
new file mode 100644
index 0000000..c447636
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/validation/DataDSLValidator.xtend
@@ -0,0 +1,38 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.datainterchange.validation
+//import org.eclipse.xtext.validation.Check
+
+/**
+ * Custom validation rules. 
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#validation
+ */
+class DataDSLValidator extends AbstractDataDSLValidator {
+
+//  public static val INVALID_NAME = 'invalidName'
+//
+//	@Check
+//	def checkGreetingStartsWithCapital(Greeting greeting) {
+//		if (!Character.isUpperCase(greeting.name.charAt(0))) {
+//			warning('Name should start with a capital', 
+//					MyDslPackage.Literals.GREETING__NAME,
+//					INVALID_NAME)
+//		}
+//	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/valueconverter/DataDSLQualifiedNameProvider.java b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/valueconverter/DataDSLQualifiedNameProvider.java
new file mode 100644
index 0000000..a38751d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/valueconverter/DataDSLQualifiedNameProvider.java
@@ -0,0 +1,36 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.datainterchange.valueconverter;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.naming.IQualifiedNameConverter;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.xbase.scoping.XbaseQualifiedNameProvider;
+
+import com.google.inject.Inject;
+
+@SuppressWarnings("restriction")
+public class DataDSLQualifiedNameProvider extends XbaseQualifiedNameProvider {
+
+	@Inject
+	private IQualifiedNameConverter qualifiedNameConverter;
+
+	@Override
+	public QualifiedName getFullyQualifiedName(EObject obj) {
+		if (obj == null) {
+			return QualifiedName.create("");
+		}
+		return super.getFullyQualifiedName(obj);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/valueconverter/DataDSLValueConverterService.java b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/valueconverter/DataDSLValueConverterService.java
new file mode 100644
index 0000000..4020c30
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/valueconverter/DataDSLValueConverterService.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 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:
+ * 		Christophe Loetz - Initial implementation
+ */
+package org.eclipse.osbp.xtext.datainterchange.valueconverter;
+
+import org.eclipse.osbp.xtext.basic.valueconverter.TRANSLATABLESTRINGValueConverter;
+import org.eclipse.xtext.conversion.IValueConverter;
+import org.eclipse.xtext.conversion.ValueConverter;
+import org.eclipse.xtext.xbase.conversion.XbaseValueConverterService;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+/**
+ * Adds a value conversion for the QualifiedNameWithWildCard rule.
+ * 
+ */
+@SuppressWarnings("restriction")
+@Singleton
+public class DataDSLValueConverterService extends XbaseValueConverterService {
+	@Inject
+	private TRANSLATABLESTRINGValueConverter converter;
+
+	@ValueConverter(rule = "QualifiedNameWithWildCard")
+	public IValueConverter<String> getQualifiedNameWithWildCard() {
+		return getQualifiedNameValueConverter();
+	}
+
+	@ValueConverter(rule = "TRANSLATABLESTRING")
+	public IValueConverter<String> getTranslatableStringValueConverter() {
+		return converter;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/formatting/DataDSLFormatter.java b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/formatting/DataDSLFormatter.java
new file mode 100644
index 0000000..883437b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/formatting/DataDSLFormatter.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.formatting;
+
+import com.google.inject.Inject;
+import org.eclipse.osbp.utils.xtext.GenericFormatter;
+import org.eclipse.xtext.Grammar;
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+import org.eclipse.xtext.xbase.services.XtypeGrammarAccess;
+
+/**
+ * This class contains custom formatting description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#formatting
+ * on how and when to use it
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+@SuppressWarnings("all")
+public class DataDSLFormatter extends AbstractDeclarativeFormatter {
+  @Inject
+  private XtypeGrammarAccess grammarAccess;
+  
+  protected void configureFormatting(final FormattingConfig c) {
+    final GenericFormatter genericFormatter = new GenericFormatter();
+    Grammar _grammar = this.grammar.getGrammar();
+    genericFormatter.formatFirstLevelBlocks(c, _grammar, "DataInterchange", "DataInterchangeImport");
+    genericFormatter.genericFormatting(c, this.grammar, this.grammarAccess);
+  }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLJvmModelInferrer.java
new file mode 100644
index 0000000..8c6bccf
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLJvmModelInferrer.java
@@ -0,0 +1,2622 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ * 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:
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.jvmmodel;
+
+import com.google.common.base.Objects;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.CssLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.VerticalLayout;
+import java.io.OutputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions;
+import org.eclipse.osbp.dsl.semantic.common.types.LReference;
+import org.eclipse.osbp.dsl.semantic.common.types.LType;
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityFeature;
+import org.eclipse.osbp.osgi.hybrid.api.AbstractHybridVaaclipseView;
+import org.eclipse.osbp.persistence.IPersistenceService;
+import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
+import org.eclipse.osbp.ui.api.user.IUser;
+import org.eclipse.osbp.utils.constants.GeneratorConstants;
+import org.eclipse.osbp.utils.entitymock.IEntityImportInitializationListener;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage;
+import org.eclipse.osbp.xtext.datainterchange.ProgressBarStylesEnum;
+import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable;
+import org.eclipse.osbp.xtext.datainterchange.jvmmodel.DataDSLModelGenerator;
+import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.common.types.JvmAnnotationReference;
+import org.eclipse.xtext.common.types.JvmConstructor;
+import org.eclipse.xtext.common.types.JvmDeclaredType;
+import org.eclipse.xtext.common.types.JvmField;
+import org.eclipse.xtext.common.types.JvmFormalParameter;
+import org.eclipse.xtext.common.types.JvmGenericType;
+import org.eclipse.xtext.common.types.JvmMember;
+import org.eclipse.xtext.common.types.JvmOperation;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.xtext.common.types.JvmVisibility;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.xbase.compiler.output.ITreeAppendable;
+import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer;
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor;
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder;
+import org.eclipse.xtext.xbase.lib.Conversions;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+import org.milyn.Smooks;
+import org.milyn.SmooksFactory;
+import org.milyn.container.ExecutionContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleListener;
+import org.osgi.service.event.EventHandler;
+import org.slf4j.Logger;
+
+/**
+ * <p>
+ * Data Interchange Repository Domain Specific Language
+ * This inferrer infers models of extension .data and generates code to be used by any data interchanging process
+ * to facilitate the communication with external data sources and drains. Underlying components
+ * are from the smooks repository
+ * </p>
+ * 
+ * @author Joerg Riegel
+ */
+@SuppressWarnings("all")
+public class DataDSLJvmModelInferrer extends AbstractModelInferrer {
+  @Inject
+  @Extension
+  private JvmTypesBuilder _jvmTypesBuilder;
+  
+  @Inject
+  @Extension
+  private IQualifiedNameProvider _iQualifiedNameProvider;
+  
+  @Inject
+  @Extension
+  private DataDSLModelGenerator dg;
+  
+  @Inject
+  @Extension
+  private ModelExtensions _modelExtensions;
+  
+  /**
+   * ramp up NTHREADS and threads are finished start more but up to this limit
+   */
+  private int NTHREADS = 10;
+  
+  /**
+   * infer model on package base. Will be called for every defined package.
+   * 
+   * @param dataInterchangePackage
+   *            An instance of {@link DataInterchangePackage}
+   * @param acceptor
+   *            the xtext acceptor interface
+   * @param isPreIndexingPhase
+   *            true if in preindexing phase
+   */
+  protected void _infer(final DataInterchangePackage dataInterchangePackage, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
+    this.dg.generatePckgName(dataInterchangePackage, acceptor);
+    String _name = dataInterchangePackage.getName();
+    String _string = _name.toString();
+    String _concat = _string.concat("TriggerView");
+    JvmGenericType cls = this._jvmTypesBuilder.toClass(dataInterchangePackage, _concat);
+    String _simpleName = cls.getSimpleName();
+    String _firstUpper = StringExtensions.toFirstUpper(_simpleName);
+    cls.setSimpleName(_firstUpper);
+    final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+      public void apply(final JvmGenericType it) {
+        EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(AbstractHybridVaaclipseView.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _typeRef);
+        EList<JvmTypeReference> _superTypes_1 = it.getSuperTypes();
+        JvmTypeReference _typeRef_1 = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(BundleListener.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes_1, _typeRef_1);
+        EList<JvmTypeReference> _superTypes_2 = it.getSuperTypes();
+        JvmTypeReference _typeRef_2 = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IUser.UserLocaleListener.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes_2, _typeRef_2);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(SuppressWarnings.class, "serial");
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        QualifiedName _fullyQualifiedName = DataDSLJvmModelInferrer.this._iQualifiedNameProvider.getFullyQualifiedName(dataInterchangePackage);
+        String _string = _fullyQualifiedName.toString();
+        it.setPackageName(_string);
+        DataDSLJvmModelInferrer.this.toFields(it, dataInterchangePackage);
+        DataDSLJvmModelInferrer.this.toConstructor(it, dataInterchangePackage);
+        DataDSLJvmModelInferrer.this.toOperations(it, dataInterchangePackage);
+      }
+    };
+    acceptor.<JvmGenericType>accept(cls, _function);
+    EList<DataInterchange> _datInts = dataInterchangePackage.getDatInts();
+    for (final DataInterchange dataInterchange : _datInts) {
+      {
+        QualifiedName clsName2 = this._iQualifiedNameProvider.getFullyQualifiedName(dataInterchange);
+        JvmGenericType _class = this._jvmTypesBuilder.toClass(dataInterchange, clsName2);
+        final Procedure1<JvmGenericType> _function_1 = new Procedure1<JvmGenericType>() {
+          public void apply(final JvmGenericType it) {
+            EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+            JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(WorkerThreadRunnable.class);
+            DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _typeRef);
+            EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+            JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(SuppressWarnings.class, "serial");
+            DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+            DataDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION);
+            DataDSLJvmModelInferrer.this.toConstructor(it, dataInterchange);
+            DataDSLJvmModelInferrer.this.toFields(it, dataInterchange);
+            DataDSLJvmModelInferrer.this.toOperations(it, dataInterchange);
+          }
+        };
+        acceptor.<JvmGenericType>accept(_class, _function_1);
+      }
+    }
+  }
+  
+  /**
+   * generate the fields in the inferred class.
+   * 
+   * @param type
+   *            the xtext generic types list
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   */
+  public void toFields(final JvmGenericType type, final DataInterchangePackage pkg) {
+    JvmField field = null;
+    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(VerticalLayout.class);
+    JvmField _field = this._jvmTypesBuilder.toField(pkg, "sidebar", _typeRef);
+    field = _field;
+    EList<JvmMember> _members = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members, field);
+    String _name = pkg.getName();
+    String _string = _name.toString();
+    String name = _string.replace(".", ":");
+    String[] parts = name.split(":");
+    final String[] _converted_parts = (String[])parts;
+    int _size = ((List<String>)Conversions.doWrapArray(_converted_parts)).size();
+    int _minus = (_size - 1);
+    String _get = parts[_minus];
+    final String clsName = StringExtensions.toFirstUpper(_get);
+    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(Logger.class);
+    final Procedure1<JvmField> _function = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("LoggerFactory.getLogger(");
+            _builder.append(clsName, "");
+            _builder.append("TriggerView.class)");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setInitializer(it, _function);
+      }
+    };
+    JvmField _field_1 = this._jvmTypesBuilder.toField(pkg, "log", _typeRef_1, _function);
+    field = _field_1;
+    field.setFinal(true);
+    field.setStatic(true);
+    EList<JvmMember> _members_1 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field);
+    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(CssLayout.class);
+    JvmField _field_2 = this._jvmTypesBuilder.toField(pkg, "menu", _typeRef_2);
+    field = _field_2;
+    EList<JvmMember> _members_2 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field);
+    JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(EventHandler.class);
+    JvmField _field_3 = this._jvmTypesBuilder.toField(pkg, "workerInfo", _typeRef_3);
+    field = _field_3;
+    EList<JvmMember> _members_3 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field);
+    JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(CssLayout.class);
+    JvmField _field_4 = this._jvmTypesBuilder.toField(pkg, "branding", _typeRef_4);
+    field = _field_4;
+    EList<JvmMember> _members_4 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
+    JvmTypeReference _typeRef_5 = this._typeReferenceBuilder.typeRef(IEventBroker.class);
+    final Procedure1<JvmField> _function_1 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_5 = this._jvmTypesBuilder.toField(pkg, "eventBroker", _typeRef_5, _function_1);
+    field = _field_5;
+    EList<JvmMember> _members_5 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field);
+    JvmTypeReference _typeRef_6 = this._typeReferenceBuilder.typeRef(IPersistenceService.class);
+    final Procedure1<JvmField> _function_2 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_6 = this._jvmTypesBuilder.toField(pkg, "persistenceService", _typeRef_6, _function_2);
+    field = _field_6;
+    EList<JvmMember> _members_6 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_6, field);
+    JvmTypeReference _typeRef_7 = this._typeReferenceBuilder.typeRef(String.class);
+    JvmTypeReference _typeRef_8 = this._typeReferenceBuilder.typeRef(WorkerThreadRunnable.class);
+    JvmTypeReference _typeRef_9 = this._typeReferenceBuilder.typeRef(Map.class, _typeRef_7, _typeRef_8);
+    JvmField _field_7 = this._jvmTypesBuilder.toField(pkg, "progressBars", _typeRef_9);
+    field = _field_7;
+    EList<JvmMember> _members_7 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_7, field);
+    JvmTypeReference _typeRef_10 = this._typeReferenceBuilder.typeRef(ExecutorService.class);
+    JvmField _field_8 = this._jvmTypesBuilder.toField(pkg, "executorService", _typeRef_10);
+    field = _field_8;
+    field.setStatic(true);
+    EList<JvmMember> _members_8 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_8, field);
+    JvmTypeReference _typeRef_11 = this._typeReferenceBuilder.typeRef(IDSLMetadataService.class);
+    final Procedure1<JvmField> _function_3 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_9 = this._jvmTypesBuilder.toField(pkg, "dslMetadataService", _typeRef_11, _function_3);
+    field = _field_9;
+    EList<JvmMember> _members_9 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_9, field);
+    JvmTypeReference _typeRef_12 = this._typeReferenceBuilder.typeRef(IUser.class);
+    final Procedure1<JvmField> _function_4 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_10 = this._jvmTypesBuilder.toField(pkg, "user", _typeRef_12, _function_4);
+    field = _field_10;
+    EList<JvmMember> _members_10 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_10, field);
+    JvmTypeReference _typeRef_13 = this._typeReferenceBuilder.typeRef(Label.class);
+    JvmField _field_11 = this._jvmTypesBuilder.toField(pkg, "logo", _typeRef_13);
+    field = _field_11;
+    EList<JvmMember> _members_11 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_11, field);
+    JvmTypeReference _typeRef_14 = this._typeReferenceBuilder.typeRef(Button.class);
+    JvmTypeReference _typeRef_15 = this._typeReferenceBuilder.typeRef(ArrayList.class);
+    JvmTypeReference _typeRef_16 = this._typeReferenceBuilder.typeRef(HashMap.class, _typeRef_14, _typeRef_15);
+    JvmField _field_12 = this._jvmTypesBuilder.toField(pkg, "buttons", _typeRef_16);
+    field = _field_12;
+    EList<JvmMember> _members_12 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_12, field);
+  }
+  
+  /**
+   * <p>build the constructors to be used by an e4 application.</p>
+   */
+  public void toConstructor(final JvmDeclaredType type, final DataInterchangePackage pkg) {
+    EList<JvmMember> _members = type.getMembers();
+    final Procedure1<JvmConstructor> _function = new Procedure1<JvmConstructor>() {
+      public void apply(final JvmConstructor it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(VerticalLayout.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(pkg, "parent", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+        JvmTypeReference _typeRef_1 = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IEclipseContext.class);
+        JvmFormalParameter _parameter_1 = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(pkg, "context", _typeRef_1);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+        EList<JvmFormalParameter> _parameters_2 = it.getParameters();
+        JvmTypeReference _typeRef_2 = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(MApplication.class);
+        JvmFormalParameter _parameter_2 = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(pkg, "app", _typeRef_2);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("super(parent,context,app);");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(pkg, _function);
+    this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
+  }
+  
+  /**
+   * generate the fields in the inferred class.
+   * 
+   * @param type
+   *            the xtext generic types list
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   */
+  public void toOperations(final JvmGenericType type, final DataInterchangePackage pkg) {
+    EList<JvmMember> _members = type.getMembers();
+    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(VerticalLayout.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(pkg, "parent", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _createView = DataDSLJvmModelInferrer.this.createView(pkg);
+            _builder.append(_createView, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(pkg, "createView", _typeRef, _function);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+    EList<JvmMember> _members_1 = type.getMembers();
+    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_1 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _createComponents = DataDSLJvmModelInferrer.this.createComponents(pkg);
+            _builder.append(_createComponents, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(pkg, "createComponents", _typeRef_1, _function_1);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+    EList<JvmMember> _members_2 = type.getMembers();
+    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(String.class);
+    final Procedure1<JvmOperation> _function_2 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(String.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(pkg, "name", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _uniqueName = DataDSLJvmModelInferrer.this.uniqueName(pkg);
+            _builder.append(_uniqueName, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(pkg, "uniqueName", _typeRef_2, _function_2);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method_2);
+    EList<JvmMember> _members_3 = type.getMembers();
+    JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(boolean.class);
+    final Procedure1<JvmOperation> _function_3 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(String.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(pkg, "name", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _isDuplicate = DataDSLJvmModelInferrer.this.isDuplicate(pkg);
+            _builder.append(_isDuplicate, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(pkg, "isDuplicate", _typeRef_3, _function_3);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3);
+    EList<JvmMember> _members_4 = type.getMembers();
+    JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(VerticalLayout.class);
+    final Procedure1<JvmOperation> _function_4 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(Button.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(pkg, "button", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _findButtonLayout = DataDSLJvmModelInferrer.this.findButtonLayout(pkg);
+            _builder.append(_findButtonLayout, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(pkg, "findButtonLayout", _typeRef_4, _function_4);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method_4);
+    EList<JvmMember> _members_5 = type.getMembers();
+    JvmTypeReference _typeRef_5 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_5 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(BundleEvent.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(pkg, "event", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _bundleChanged = DataDSLJvmModelInferrer.this.bundleChanged(pkg);
+            _builder.append(_bundleChanged, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(pkg, "bundleChanged", _typeRef_5, _function_5);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_5);
+    EList<JvmMember> _members_6 = type.getMembers();
+    JvmTypeReference _typeRef_6 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_6 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        it.setVisibility(JvmVisibility.PROTECTED);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(PostConstruct.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _subscribe = DataDSLJvmModelInferrer.this.subscribe(pkg);
+            _builder.append(_subscribe, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(pkg, "subscribe", _typeRef_6, _function_6);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_6);
+    EList<JvmMember> _members_7 = type.getMembers();
+    JvmTypeReference _typeRef_7 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_7 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        it.setVisibility(JvmVisibility.PROTECTED);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(PreDestroy.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _unsubscribe = DataDSLJvmModelInferrer.this.unsubscribe(pkg);
+            _builder.append(_unsubscribe, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(pkg, "unsubscribe", _typeRef_7, _function_7);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_7, _method_7);
+    EList<JvmMember> _members_8 = type.getMembers();
+    JvmTypeReference _typeRef_8 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_8 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        it.setVisibility(JvmVisibility.PUBLIC);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(Locale.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(pkg, "locale", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            CharSequence _localeChanged = DataDSLJvmModelInferrer.this.localeChanged(pkg);
+            _builder.append(_localeChanged, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_8 = this._jvmTypesBuilder.toMethod(pkg, "localeChanged", _typeRef_8, _function_8);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_8, _method_8);
+  }
+  
+  /**
+   * handle the worker progress UI. provide the appropriate code.
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return code fragment
+   */
+  public String workerInfo(final DataInterchangePackage pkg) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("new EventHandler() {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("@Override");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("public void handleEvent(Event event) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("// a worker notified this view that it is finished");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("String workername = (String)event.getProperty(EventUtils.DATA);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("if (progressBars.containsKey(workername)) {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("final WorkerThreadRunnable worker = progressBars.get(workername); ");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("((VerticalLayout)worker.getProgressBarArea().getParent()).removeComponent(worker.getProgressBarArea());");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("progressBars.remove(workername);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("};");
+    _builder.newLine();
+    body = _builder.toString();
+    return body;
+  }
+  
+  /**
+   * subscribe the event broker for messages on changed locale and worker progress.
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return code fragment
+   */
+  public String subscribe(final DataInterchangePackage pkg) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("eventBroker.subscribe(EventBrokerMsg.WORKER_THREAD_INFO, workerInfo);");
+    _builder.newLine();
+    body = _builder.toString();
+    return body;
+  }
+  
+  /**
+   * unsubscribe from event broker for messages.
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return code fragment
+   */
+  public String unsubscribe(final DataInterchangePackage pkg) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("eventBroker.unsubscribe(workerInfo);");
+    _builder.newLine();
+    body = _builder.toString();
+    return body;
+  }
+  
+  /**
+   * normalize package name.
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return normalized package name
+   */
+  public String toEventID(final DataInterchangePackage pkg) {
+    QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(pkg);
+    String _string = _fullyQualifiedName.toString();
+    String _upperCase = _string.toUpperCase();
+    return _upperCase.replaceAll("(\\W)", "_");
+  }
+  
+  /**
+   * let the app wait for finishing the workers before allowing to stop bundle.
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return code fragment
+   */
+  public String bundleChanged(final DataInterchangePackage pkg) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("if (event.getType() == BundleEvent.STOPPING) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("log.debug(\"bundle is stopping\");");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("// This will make the executorService accept no new threads");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("// and finish all existing threads in the queue");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if (executorService != null) {");
+    _builder.newLine();
+    _builder.append("\t    ");
+    _builder.append("executorService.shutdown();");
+    _builder.newLine();
+    _builder.append("\t    ");
+    _builder.append("// Wait until all threads are finished");
+    _builder.newLine();
+    _builder.append("\t    ");
+    _builder.append("try {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("executorService.awaitTermination(10, TimeUnit.SECONDS);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("} catch (InterruptedException e) {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("e.printStackTrace();");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("log.debug(\"all executors finished\");");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    body = _builder.toString();
+    return body;
+  }
+  
+  /**
+   * find the right button layout for a given button.
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return code fragment
+   */
+  public String findButtonLayout(final DataInterchangePackage pkg) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("int count = menu.getComponentCount(); ");
+    _builder.newLine();
+    _builder.append("for(int i=0; i<count; i++) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("VerticalLayout buttonLayout = (VerticalLayout)menu.getComponent(i);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("Button b = (Button)buttonLayout.getComponent(0);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if (b == button) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("return buttonLayout;");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("return null;");
+    _builder.newLine();
+    body = _builder.toString();
+    return body;
+  }
+  
+  /**
+   * find out if a given thread-id is already running.
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return code fragment
+   */
+  public String isDuplicate(final DataInterchangePackage pkg) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("boolean found = false;");
+    _builder.newLine();
+    _builder.append("for(String threadName : progressBars.keySet()) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if (name.equals(threadName)) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("found = true;");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("break;");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("return found;");
+    _builder.newLine();
+    body = _builder.toString();
+    return body;
+  }
+  
+  /**
+   * make a name unique by concatenating a number.
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return code fragment
+   */
+  public String uniqueName(final DataInterchangePackage pkg) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("Integer cnt = 0;");
+    _builder.newLine();
+    _builder.append("String searchName;");
+    _builder.newLine();
+    _builder.append("do {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if (cnt > 0) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("searchName = name+cnt.toString();");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("} else {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("searchName = name;");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("cnt ++;");
+    _builder.newLine();
+    _builder.append("}while(isDuplicate(searchName));");
+    _builder.newLine();
+    _builder.append("return searchName;");
+    _builder.newLine();
+    body = _builder.toString();
+    return body;
+  }
+  
+  public String descriptionI18nKey(final DataInterchange dataInterchange) {
+    String _xifexpression = null;
+    boolean _or = false;
+    String _descriptionValue = dataInterchange.getDescriptionValue();
+    boolean _equals = Objects.equal(_descriptionValue, null);
+    if (_equals) {
+      _or = true;
+    } else {
+      String _descriptionValue_1 = dataInterchange.getDescriptionValue();
+      boolean _isEmpty = _descriptionValue_1.isEmpty();
+      _or = _isEmpty;
+    }
+    if (_or) {
+      _xifexpression = dataInterchange.getName();
+    } else {
+      _xifexpression = dataInterchange.getDescriptionValue();
+    }
+    return _xifexpression;
+  }
+  
+  /**
+   * build an e4 compatible view and create necessary components.
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return code fragment
+   */
+  public String createView(final DataInterchangePackage pkg) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("buttons = new HashMap<Button, ArrayList>();");
+    _builder.newLine();
+    _builder.append("workerInfo = ");
+    String _workerInfo = this.workerInfo(pkg);
+    _builder.append(_workerInfo, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("Bundle bundle = FrameworkUtil.getBundle(getClass());");
+    _builder.newLine();
+    _builder.append("if (bundle != null) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("BundleContext ctx = bundle.getBundleContext();");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if (ctx != null) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("ctx.addBundleListener(this);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("FrameworkUtil.getBundle(getClass()).getBundleContext().addBundleListener(this);");
+    _builder.newLine();
+    _builder.append("executorService = Executors.newFixedThreadPool(");
+    _builder.append(this.NTHREADS, "");
+    _builder.append(");");
+    _builder.newLineIfNotEmpty();
+    _builder.append("progressBars = new HashMap<String,WorkerThreadRunnable>(); ");
+    _builder.newLine();
+    _builder.append("sidebar=new VerticalLayout();");
+    _builder.newLine();
+    _builder.append("menu=new CssLayout();");
+    _builder.newLine();
+    _builder.append("branding=new CssLayout();");
+    _builder.newLine();
+    _builder.append("parent.setPrimaryStyleName(\"osbp\");");
+    _builder.newLine();
+    _builder.append("parent.setId(\"parent\");");
+    _builder.newLine();
+    _builder.append("parent.setSizeFull();");
+    _builder.newLine();
+    _builder.append("sidebar.setSpacing(true);");
+    _builder.newLine();
+    _builder.append("sidebar.setId(\"sidebar\");");
+    _builder.newLine();
+    _builder.append("parent.addComponent(sidebar);");
+    _builder.newLine();
+    _builder.append("parent.setExpandRatio(sidebar, 1.0f);");
+    _builder.newLine();
+    _builder.append("// create sidebar");
+    _builder.newLine();
+    _builder.append("sidebar.addStyleName(\"osbpsidebar\");");
+    _builder.newLine();
+    _builder.append("sidebar.setSizeFull();");
+    _builder.newLine();
+    _builder.append("sidebar.addComponent(branding);");
+    _builder.newLine();
+    _builder.append("// branding title");
+    _builder.newLine();
+    _builder.append("branding.addStyleName(\"branding\");");
+    _builder.newLine();
+    _builder.append("logo = new Label();");
+    _builder.newLine();
+    _builder.append("logo.setContentMode(ContentMode.HTML);");
+    _builder.newLine();
+    _builder.append("logo.setSizeUndefined();");
+    _builder.newLine();
+    _builder.append("branding.addComponent(logo);");
+    _builder.newLine();
+    _builder.append("// add menu");
+    _builder.newLine();
+    _builder.append("sidebar.addComponent(menu);");
+    _builder.newLine();
+    _builder.append("sidebar.setExpandRatio(menu, 1.0f);");
+    _builder.newLine();
+    _builder.newLine();
+    String body = _builder.toString();
+    StringConcatenation _builder_1 = new StringConcatenation();
+    _builder_1.append(body, "");
+    _builder_1.newLineIfNotEmpty();
+    _builder_1.append("\t\t");
+    _builder_1.append("// add menu items");
+    _builder_1.newLine();
+    _builder_1.append("\t\t");
+    _builder_1.append("Button b;");
+    _builder_1.newLine();
+    _builder_1.append("\t\t");
+    _builder_1.append("VerticalLayout buttonLayout;");
+    _builder_1.newLine();
+    body = _builder_1.toString();
+    EList<DataInterchange> _datInts = pkg.getDatInts();
+    for (final DataInterchange dataInterchange : _datInts) {
+      {
+        StringConcatenation _builder_2 = new StringConcatenation();
+        _builder_2.append(body, "");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("b = new NativeButton();");
+        _builder_2.newLine();
+        _builder_2.append("b.setHtmlContentAllowed(true);");
+        _builder_2.newLine();
+        _builder_2.append("buttons.put(b, new ArrayList<String>(Arrays.asList(new String[] {\"");
+        _builder_2.append(DataDSLModelGenerator.CAPTION__REPFIX_I18NKEY_IMPORT, "");
+        _builder_2.append("\", \"");
+        String _name = dataInterchange.getName();
+        _builder_2.append(_name, "");
+        _builder_2.append("\",\"");
+        String _descriptionI18nKey = this.descriptionI18nKey(dataInterchange);
+        _builder_2.append(_descriptionI18nKey, "");
+        _builder_2.append("\"})));");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("b.addStyleName(\"icon-download\");");
+        _builder_2.newLine();
+        _builder_2.append("b.addClickListener(new ClickListener() {");
+        _builder_2.newLine();
+        _builder_2.append("\t");
+        _builder_2.append("@Override");
+        _builder_2.newLine();
+        _builder_2.append("\t");
+        _builder_2.append("public void buttonClick(ClickEvent event) {");
+        _builder_2.newLine();
+        _builder_2.append("\t\t");
+        _builder_2.append("log.debug(\"pressed ");
+        String _name_1 = dataInterchange.getName();
+        _builder_2.append(_name_1, "\t\t");
+        _builder_2.append(" import\");");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        _builder_2.append("String uniqueName = uniqueName(\"");
+        String _name_2 = dataInterchange.getName();
+        _builder_2.append(_name_2, "\t\t");
+        _builder_2.append("\");");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        String _fileURL = this.getFileURL(dataInterchange);
+        String _basicRunConfiguration = this.getBasicRunConfiguration(dataInterchange, false, _fileURL);
+        _builder_2.append(_basicRunConfiguration, "\t\t");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        String _defaultVariableName = this.getDefaultVariableName(dataInterchange);
+        _builder_2.append(_defaultVariableName, "\t\t");
+        _builder_2.append(".setName(uniqueName);");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        String _defaultVariableName_1 = this.getDefaultVariableName(dataInterchange);
+        _builder_2.append(_defaultVariableName_1, "\t\t");
+        _builder_2.append(".setEventBroker(eventBroker);");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        String _defaultVariableName_2 = this.getDefaultVariableName(dataInterchange);
+        _builder_2.append(_defaultVariableName_2, "\t\t");
+        _builder_2.append(".setUi(UI.getCurrent());");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        String _defaultVariableName_3 = this.getDefaultVariableName(dataInterchange);
+        _builder_2.append(_defaultVariableName_3, "\t\t");
+        _builder_2.append(".setDirection(WorkerThreadRunnable.Direction.IMPORT);");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        {
+          ProgressBarStylesEnum _progressBarStyle = dataInterchange.getProgressBarStyle();
+          boolean _notEquals = (!Objects.equal(_progressBarStyle, null));
+          if (_notEquals) {
+            String _defaultVariableName_4 = this.getDefaultVariableName(dataInterchange);
+            _builder_2.append(_defaultVariableName_4, "\t\t");
+            _builder_2.append(".setProgressBarStyleName(\"");
+            ProgressBarStylesEnum _progressBarStyle_1 = dataInterchange.getProgressBarStyle();
+            String _literal = _progressBarStyle_1.getLiteral();
+            _builder_2.append(_literal, "\t\t");
+            _builder_2.append("\");");
+          }
+        }
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        _builder_2.append("findButtonLayout(event.getButton()).addComponent(");
+        String _defaultVariableName_5 = this.getDefaultVariableName(dataInterchange);
+        _builder_2.append(_defaultVariableName_5, "\t\t");
+        _builder_2.append(".getProgressBarArea());");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        _builder_2.append("progressBars.put(uniqueName, ");
+        String _defaultVariableName_6 = this.getDefaultVariableName(dataInterchange);
+        _builder_2.append(_defaultVariableName_6, "\t\t");
+        _builder_2.append(");");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        _builder_2.append("executorService.execute(");
+        String _defaultVariableName_7 = this.getDefaultVariableName(dataInterchange);
+        _builder_2.append(_defaultVariableName_7, "\t\t");
+        _builder_2.append(");");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t\t");
+        _builder_2.append("log.debug(\"");
+        String _name_3 = dataInterchange.getName();
+        _builder_2.append(_name_3, "\t\t");
+        _builder_2.append(" import added to executor queue\");");
+        _builder_2.newLineIfNotEmpty();
+        _builder_2.append("\t");
+        _builder_2.append("}");
+        _builder_2.newLine();
+        _builder_2.append("});");
+        _builder_2.newLine();
+        _builder_2.append("buttonLayout = new VerticalLayout();");
+        _builder_2.newLine();
+        _builder_2.append("buttonLayout.addComponent(b); ");
+        _builder_2.newLine();
+        _builder_2.append("menu.addComponent(buttonLayout);");
+        _builder_2.newLine();
+        body = _builder_2.toString();
+        StringConcatenation _builder_3 = new StringConcatenation();
+        _builder_3.append(body, "");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("b = new NativeButton();");
+        _builder_3.newLine();
+        _builder_3.append("b.setHtmlContentAllowed(true);");
+        _builder_3.newLine();
+        _builder_3.append("buttons.put(b, new ArrayList<String>(Arrays.asList(new String[] {\"");
+        _builder_3.append(DataDSLModelGenerator.CAPTION__REPFIX_I18NKEY_EXPORT, "");
+        _builder_3.append("\", \"");
+        String _name_4 = dataInterchange.getName();
+        _builder_3.append(_name_4, "");
+        _builder_3.append("\",\"");
+        String _descriptionI18nKey_1 = this.descriptionI18nKey(dataInterchange);
+        _builder_3.append(_descriptionI18nKey_1, "");
+        _builder_3.append("\"})));");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("b.addStyleName(\"icon-upload\");");
+        _builder_3.newLine();
+        _builder_3.append("b.addClickListener(new ClickListener() {");
+        _builder_3.newLine();
+        _builder_3.append("\t");
+        _builder_3.append("@Override");
+        _builder_3.newLine();
+        _builder_3.append("\t");
+        _builder_3.append("public void buttonClick(ClickEvent event) {");
+        _builder_3.newLine();
+        _builder_3.append("\t\t");
+        _builder_3.append("log.debug(\"pressed ");
+        String _name_5 = dataInterchange.getName();
+        _builder_3.append(_name_5, "\t\t");
+        _builder_3.append(" export\");");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        _builder_3.append("String uniqueName = uniqueName(\"");
+        String _name_6 = dataInterchange.getName();
+        _builder_3.append(_name_6, "\t\t");
+        _builder_3.append("\");");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        String _fileURL_1 = this.getFileURL(dataInterchange);
+        String _basicRunConfiguration_1 = this.getBasicRunConfiguration(dataInterchange, false, _fileURL_1);
+        _builder_3.append(_basicRunConfiguration_1, "\t\t");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        String _defaultVariableName_8 = this.getDefaultVariableName(dataInterchange);
+        _builder_3.append(_defaultVariableName_8, "\t\t");
+        _builder_3.append(".setName(uniqueName);");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        String _defaultVariableName_9 = this.getDefaultVariableName(dataInterchange);
+        _builder_3.append(_defaultVariableName_9, "\t\t");
+        _builder_3.append(".setEventBroker(eventBroker);");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        String _defaultVariableName_10 = this.getDefaultVariableName(dataInterchange);
+        _builder_3.append(_defaultVariableName_10, "\t\t");
+        _builder_3.append(".setUi(UI.getCurrent());");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        String _defaultVariableName_11 = this.getDefaultVariableName(dataInterchange);
+        _builder_3.append(_defaultVariableName_11, "\t\t");
+        _builder_3.append(".setDirection(WorkerThreadRunnable.Direction.EXPORT);");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        {
+          ProgressBarStylesEnum _progressBarStyle_2 = dataInterchange.getProgressBarStyle();
+          boolean _notEquals_1 = (!Objects.equal(_progressBarStyle_2, null));
+          if (_notEquals_1) {
+            String _defaultVariableName_12 = this.getDefaultVariableName(dataInterchange);
+            _builder_3.append(_defaultVariableName_12, "\t\t");
+            _builder_3.append(".setProgressBarStyleName(\"");
+            ProgressBarStylesEnum _progressBarStyle_3 = dataInterchange.getProgressBarStyle();
+            String _literal_1 = _progressBarStyle_3.getLiteral();
+            _builder_3.append(_literal_1, "\t\t");
+            _builder_3.append("\");");
+          }
+        }
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        _builder_3.append("findButtonLayout(event.getButton()).addComponent(");
+        String _defaultVariableName_13 = this.getDefaultVariableName(dataInterchange);
+        _builder_3.append(_defaultVariableName_13, "\t\t");
+        _builder_3.append(".getProgressBarArea());");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        _builder_3.append("progressBars.put(uniqueName, ");
+        String _defaultVariableName_14 = this.getDefaultVariableName(dataInterchange);
+        _builder_3.append(_defaultVariableName_14, "\t\t");
+        _builder_3.append(");");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        _builder_3.append("executorService.execute(");
+        String _defaultVariableName_15 = this.getDefaultVariableName(dataInterchange);
+        _builder_3.append(_defaultVariableName_15, "\t\t");
+        _builder_3.append(");");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t\t");
+        _builder_3.append("log.debug(\"");
+        String _name_7 = dataInterchange.getName();
+        _builder_3.append(_name_7, "\t\t");
+        _builder_3.append(" export added to executor queue\");");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("\t");
+        _builder_3.append("}");
+        _builder_3.newLine();
+        _builder_3.append("});");
+        _builder_3.newLine();
+        _builder_3.append("buttonLayout = new VerticalLayout();");
+        _builder_3.newLine();
+        _builder_3.append("buttonLayout.addComponent(b); ");
+        _builder_3.newLine();
+        _builder_3.append("menu.addComponent(buttonLayout);");
+        _builder_3.newLine();
+        body = _builder_3.toString();
+      }
+    }
+    StringConcatenation _builder_2 = new StringConcatenation();
+    _builder_2.append(body, "");
+    _builder_2.newLineIfNotEmpty();
+    _builder_2.append("menu.addStyleName(\"menu\");");
+    _builder_2.newLine();
+    _builder_2.append("menu.setHeight(\"100%\");");
+    _builder_2.newLine();
+    _builder_2.append("user.addUserLocaleListener(this);");
+    _builder_2.newLine();
+    body = _builder_2.toString();
+    return body;
+  }
+  
+  public String getDefaultVariableName(final DataInterchange dataInterchange) {
+    String _name = dataInterchange.getName();
+    return StringExtensions.toFirstLower(_name);
+  }
+  
+  public String getBasicRunConfiguration(final DataInterchange dataInterchange, final boolean fqClass, final String fileURL) {
+    String className = "";
+    if (fqClass) {
+      QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(dataInterchange);
+      String _string = _fullyQualifiedName.toString();
+      className = _string;
+    } else {
+      String _name = dataInterchange.getName();
+      className = _name;
+    }
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(className, "");
+    _builder.append(" ");
+    String _defaultVariableName = this.getDefaultVariableName(dataInterchange);
+    _builder.append(_defaultVariableName, "");
+    _builder.append(" = new ");
+    _builder.append(className, "");
+    _builder.append("();");
+    _builder.newLineIfNotEmpty();
+    String _defaultVariableName_1 = this.getDefaultVariableName(dataInterchange);
+    _builder.append(_defaultVariableName_1, "");
+    _builder.append(".setFileURL(\"");
+    _builder.append(fileURL, "");
+    _builder.append("\");");
+    _builder.newLineIfNotEmpty();
+    String _defaultVariableName_2 = this.getDefaultVariableName(dataInterchange);
+    _builder.append(_defaultVariableName_2, "");
+    _builder.append(".setPersistenceService(persistenceService);");
+    _builder.newLineIfNotEmpty();
+    return _builder.toString();
+  }
+  
+  public String getFileURL(final DataInterchange dataInterchange) {
+    DataInterchangeFile _fileEndpoint = dataInterchange.getFileEndpoint();
+    boolean _matched = false;
+    if (!_matched) {
+      if (_fileEndpoint instanceof DataInterchangeFileXML) {
+        _matched=true;
+        DataInterchangeFile _fileEndpoint_1 = dataInterchange.getFileEndpoint();
+        return ((DataInterchangeFileXML) _fileEndpoint_1).getFileURL();
+      }
+    }
+    if (!_matched) {
+      if (_fileEndpoint instanceof DataInterchangeFileCSV) {
+        _matched=true;
+        DataInterchangeFile _fileEndpoint_1 = dataInterchange.getFileEndpoint();
+        return ((DataInterchangeFileCSV) _fileEndpoint_1).getFileURL();
+      }
+    }
+    if (!_matched) {
+      if (_fileEndpoint instanceof DataInterchangeFileEDI) {
+        _matched=true;
+        DataInterchangeFile _fileEndpoint_1 = dataInterchange.getFileEndpoint();
+        return ((DataInterchangeFileEDI) _fileEndpoint_1).getFileURL();
+      }
+    }
+    return "";
+  }
+  
+  /**
+   * create more components. this fragment is repainted if something changes (e.g. language)
+   * 
+   * @param pkg
+   *            the current package inferred {@link DataInterchangePackage}
+   * @return code fragment
+   */
+  public String createComponents(final DataInterchangePackage pkg) {
+    return "";
+  }
+  
+  /**
+   * <p>build the constructor for each smooks class.</p>
+   * 
+   * @param pkg
+   *            the current datainterchange inferred {@link DataInterchange}
+   */
+  public void toConstructor(final JvmDeclaredType type, final DataInterchange dataInterchange) {
+    EList<JvmMember> _members = type.getMembers();
+    final Procedure1<JvmConstructor> _function = new Procedure1<JvmConstructor>() {
+      public void apply(final JvmConstructor it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("setName(\"");
+            String _name = dataInterchange.getName();
+            _builder.append(_name, "");
+            _builder.append("\");");
+            _builder.newLineIfNotEmpty();
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(dataInterchange, _function);
+    this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
+  }
+  
+  /**
+   * <p>build the class variables.</p>
+   */
+  public void toFields(final JvmDeclaredType type, final DataInterchange dataInterchange) {
+    JvmField field = null;
+    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Logger.class);
+    final Procedure1<JvmField> _function = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("LoggerFactory.getLogger(\"dataInterchange\")");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setInitializer(it, _function);
+      }
+    };
+    JvmField _field = this._jvmTypesBuilder.toField(dataInterchange, "log", _typeRef, _function);
+    field = _field;
+    field.setFinal(true);
+    field.setStatic(true);
+    EList<JvmMember> _members = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members, field);
+    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(SmooksFactory.class);
+    final Procedure1<JvmField> _function_1 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("null");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setInitializer(it, _function);
+      }
+    };
+    JvmField _field_1 = this._jvmTypesBuilder.toField(dataInterchange, "smooksOSGIFactory", _typeRef_1, _function_1);
+    field = _field_1;
+    EList<JvmMember> _members_1 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field);
+    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(Smooks.class);
+    JvmField _field_2 = this._jvmTypesBuilder.toField(dataInterchange, "smooks", _typeRef_2);
+    field = _field_2;
+    EList<JvmMember> _members_2 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field);
+    JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(EntityManager.class);
+    JvmField _field_3 = this._jvmTypesBuilder.toField(dataInterchange, "em", _typeRef_3);
+    field = _field_3;
+    EList<JvmMember> _members_3 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field);
+    JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(URL.class);
+    JvmField _field_4 = this._jvmTypesBuilder.toField(dataInterchange, "fileURL", _typeRef_4);
+    field = _field_4;
+    EList<JvmMember> _members_4 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
+    JvmTypeReference _typeRef_5 = this._typeReferenceBuilder.typeRef(ExecutionContext.class);
+    JvmField _field_5 = this._jvmTypesBuilder.toField(dataInterchange, "executionContext", _typeRef_5);
+    field = _field_5;
+    EList<JvmMember> _members_5 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field);
+    JvmTypeReference _typeRef_6 = this._typeReferenceBuilder.typeRef(OutputStream.class);
+    JvmField _field_6 = this._jvmTypesBuilder.toField(dataInterchange, "file", _typeRef_6);
+    field = _field_6;
+    EList<JvmMember> _members_6 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_6, field);
+    JvmTypeReference _typeRef_7 = this._typeReferenceBuilder.typeRef(OutputStream.class);
+    JvmField _field_7 = this._jvmTypesBuilder.toField(dataInterchange, "out", _typeRef_7);
+    field = _field_7;
+    EList<JvmMember> _members_7 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_7, field);
+    JvmTypeReference _typeRef_8 = this._typeReferenceBuilder.typeRef(int.class);
+    final Procedure1<JvmField> _function_2 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("500");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setInitializer(it, _function);
+      }
+    };
+    JvmField _field_8 = this._jvmTypesBuilder.toField(dataInterchange, "pollingInterval", _typeRef_8, _function_2);
+    field = _field_8;
+    EList<JvmMember> _members_8 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_8, field);
+    JvmTypeReference _typeRef_9 = this._typeReferenceBuilder.typeRef(TransformerFactory.class);
+    final Procedure1<JvmField> _function_3 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("TransformerFactory.newInstance()");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setInitializer(it, _function);
+      }
+    };
+    JvmField _field_9 = this._jvmTypesBuilder.toField(dataInterchange, "transformerFactory", _typeRef_9, _function_3);
+    field = _field_9;
+    EList<JvmMember> _members_9 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_9, field);
+    JvmTypeReference _typeRef_10 = this._typeReferenceBuilder.typeRef(Transformer.class);
+    JvmField _field_10 = this._jvmTypesBuilder.toField(dataInterchange, "transformer", _typeRef_10);
+    field = _field_10;
+    EList<JvmMember> _members_10 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_10, field);
+  }
+  
+  /**
+   * <p>build the methods.</p>
+   */
+  public void toOperations(final JvmDeclaredType type, final DataInterchange dataInterchange) {
+    EList<JvmMember> _members = type.getMembers();
+    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = DataDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("run(null);");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(dataInterchange, "run", _typeRef, _function);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+    EList<JvmMember> _members_1 = type.getMembers();
+    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_1 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IEntityImportInitializationListener.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(dataInterchange, "importListener", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _performSmooks = DataDSLJvmModelInferrer.this.performSmooks(dataInterchange);
+            _builder.append(_performSmooks, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(dataInterchange, "run", _typeRef_1, _function_1);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+    EList<JvmMember> _members_2 = type.getMembers();
+    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(boolean.class);
+    final Procedure1<JvmOperation> _function_2 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        it.setVisibility(JvmVisibility.PROTECTED);
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(WorkerThreadRunnable.Direction.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(dataInterchange, "direction", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _init = DataDSLJvmModelInferrer.this.init(dataInterchange);
+            _builder.append(_init, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(dataInterchange, "init", _typeRef_2, _function_2);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method_2);
+    EList<JvmMember> _members_3 = type.getMembers();
+    JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_3 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = DataDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(String.class);
+        JvmFormalParameter _parameter = DataDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(dataInterchange, "filePath", _typeRef);
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            CharSequence _fileUrl = DataDSLJvmModelInferrer.this.fileUrl(dataInterchange);
+            _builder.append(_fileUrl, "");
+            it.append(_builder);
+          }
+        };
+        DataDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(dataInterchange, "setFileURL", _typeRef_3, _function_3);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3);
+  }
+  
+  /**
+   * <p>create URL from filepath or other string.</p>
+   * 
+   * @param pkg
+   *            the current datainterchange inferred {@link DataInterchange}
+   * @return code fragment
+   */
+  public CharSequence fileUrl(final DataInterchange dataInterchange) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("fileURL = null;");
+    _builder.newLine();
+    _builder.append("String path = filePath;");
+    _builder.newLine();
+    _builder.append("if\t(filePath.startsWith(\"file://\") && !org.eclipse.osbp.utils.common.SystemInformation.isMacOS()) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("path = filePath.substring(\"file://\".length());");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("try {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("fileURL = new URL(path);");
+    _builder.newLine();
+    _builder.append("} catch (MalformedURLException e1) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if(e1.getMessage().startsWith(\"unknown protocol\")) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("try {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("fileURL = Paths.get(path).toUri().toURL();");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("} catch (MalformedURLException e2) {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("log.error(e2.getLocalizedMessage()+e2.getCause());");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    return _builder;
+  }
+  
+  /**
+   * init smooks factory to create the core import process.
+   * setup listeners for UI communication.
+   * setup persistence layer.
+   * 
+   * @param pkg
+   *            the current datainterchange inferred {@link DataInterchange}
+   * @return code fragment
+   */
+  public String init(final DataInterchange dataInterchange) {
+    EList<DataInterchangeBean> _path = dataInterchange.getPath();
+    Iterator<DataInterchangeBean> _iterator = _path.iterator();
+    DataInterchangeBean _next = _iterator.next();
+    DataInterchangeBean firstEntity = ((DataInterchangeBean) _next);
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("if(getEventBroker()!=null) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("pollingInterval = UI.getCurrent().getPollInterval();");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("UI.getCurrent().setPollInterval(500);");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("try {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("transformerFactory.setAttribute(\"indent-number\", 4);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("transformer = transformerFactory.newTransformer();");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("transformer.setOutputProperty(OutputKeys.INDENT, \"yes\"); ");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("transformer.setOutputProperty(OutputKeys.ENCODING, \"UTF-8\");");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("transformer.setOutputProperty(OutputKeys.STANDALONE, \"yes\");");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("transformer.setOutputProperty(OutputKeys.MEDIA_TYPE, \"text/xml\");");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("// init smooks");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("setProgressBarEnabled(true);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("setProgressIndeterminated(true);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if (log.isDebugEnabled()) log.debug(\"initializing smooks factory\");");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("smooksOSGIFactory = new SmooksOSGIFactory(FrameworkUtil.getBundle(this.getClass())); ");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("smooks = smooksOSGIFactory.createInstance(FrameworkUtil.getBundle(this.getClass()).getResource(\"");
+    _builder.append(DSLOutputConfigurationProvider.SMOOKS_OUTPUT_DIRECTORY, "\t");
+    _builder.append("/");
+    String _name = dataInterchange.getName();
+    _builder.append(_name, "\t");
+    _builder.append("-\"+direction.toString().toLowerCase()+\".xml\").openStream());");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
+    _builder.append("// prepare execution context");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("executionContext = smooks.createExecutionContext();");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("executionContext.setEventListener(this);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("// get entity manager");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if (log.isDebugEnabled()) log.debug(\"opening entity manager to persist smooks results\");");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("getPersistenceService().registerPersistenceUnit(\"");
+    LEntity _entity = firstEntity.getEntity();
+    String _persistenceUnit = _entity.getPersistenceUnit();
+    _builder.append(_persistenceUnit, "\t");
+    _builder.append("\", ");
+    LEntity _entity_1 = firstEntity.getEntity();
+    QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_1);
+    _builder.append(_fullyQualifiedName, "\t");
+    _builder.append(".class);");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
+    _builder.append("em = getPersistenceService().getEntityManagerFactory(\"");
+    LEntity _entity_2 = firstEntity.getEntity();
+    String _persistenceUnit_1 = _entity_2.getPersistenceUnit();
+    _builder.append(_persistenceUnit_1, "\t");
+    _builder.append("\").createEntityManager();");
+    _builder.newLineIfNotEmpty();
+    {
+      boolean _isCreateReport = dataInterchange.isCreateReport();
+      if (_isCreateReport) {
+        _builder.append("\t");
+        _builder.append("// create a filtering report -- impacts performance");
+        _builder.newLine();
+        _builder.append("\t");
+        _builder.append("if (log.isDebugEnabled()) log.debug(\"reporting is on - impacting performance\");");
+        _builder.newLine();
+        _builder.append("\t");
+        _builder.append("String location = FrameworkUtil.getBundle(this.getClass()).getLocation()+\"");
+        _builder.append(DSLOutputConfigurationProvider.SMOOKS_OUTPUT_DIRECTORY, "\t");
+        _builder.append("/");
+        String _name_1 = dataInterchange.getName();
+        _builder.append(_name_1, "\t");
+        _builder.append("-\"+direction.toString().toLowerCase()+\"-report.html\";");
+        _builder.newLineIfNotEmpty();
+        _builder.append("\t");
+        _builder.append("executionContext.setEventListener(new HtmlReportGenerator(location));");
+        _builder.newLine();
+      }
+    }
+    _builder.append("} catch (Exception e) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if(getEventBroker()!=null) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("UI.getCurrent().setPollInterval(pollingInterval);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("log.error(e.getLocalizedMessage()+e.getCause());");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("return false;");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("if(direction == Direction.EXPORT) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("int openTry = 0;");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("file = null;");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("URI uri = null;");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("try {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("uri = fileURL.toURI();");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("} catch (URISyntaxException e) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("log.error(e.getLocalizedMessage()+e.getCause());");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("return false;");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("do {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("Path path = null;");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("path = Paths.get(uri);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("try {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("// find a unique name - similar to given");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("file = Files.newOutputStream(path, StandardOpenOption.CREATE_NEW);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("} catch (FileAlreadyExistsException ae) {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("openTry ++;");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("try {");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("uri = fileURL.toURI();");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("int pos = uri.getPath().lastIndexOf(\'.\');");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("if(pos == -1) {");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("uri = new URI(uri.getScheme()+\":\"+uri.getPath()+openTry);");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("} else {");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("uri = new URI(uri.getScheme()+\":\"+uri.getPath().substring(0,pos)+openTry+\".\"+uri.getPath().substring(pos+1));");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("} catch (URISyntaxException e) {");
+    _builder.newLine();
+    _builder.append("\t\t\t\t\t");
+    _builder.append("log.error(e.getLocalizedMessage()+e.getCause());");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("return false;");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("} catch (IOException e) {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("log.error(e.getLocalizedMessage()+e.getCause());");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("return false;");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}while(file == null);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("out = new BufferedOutputStream(file);");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("return true;");
+    _builder.newLine();
+    String body = _builder.toString();
+    return body;
+  }
+  
+  /**
+   * use smooks factory to create the core import process.
+   * setup listeners for UI communication.
+   * setup persistence layer.
+   * 
+   * @param pkg
+   *            the current datainterchange inferred {@link DataInterchange}
+   * @return code fragment
+   */
+  public String performSmooks(final DataInterchange dataInterchange) {
+    EList<DataInterchangeBean> _path = dataInterchange.getPath();
+    Iterator<DataInterchangeBean> _iterator = _path.iterator();
+    DataInterchangeBean _next = _iterator.next();
+    DataInterchangeBean firstEntity = ((DataInterchangeBean) _next);
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("if(!init(getDirection())) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("return;");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("try {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if(getDirection()==WorkerThreadRunnable.Direction.IMPORT) {");
+    _builder.newLine();
+    String body = _builder.toString();
+    StringConcatenation _builder_1 = new StringConcatenation();
+    _builder_1.append(body, "");
+    _builder_1.newLineIfNotEmpty();
+    _builder_1.append("\t\t");
+    _builder_1.append("if\t(importListener != null) {");
+    _builder_1.newLine();
+    _builder_1.append("\t\t\t");
+    _builder_1.append("importListener.notifyInitializationStep(\"datainterchange ");
+    String _name = dataInterchange.getName();
+    String _firstUpper = StringExtensions.toFirstUpper(_name);
+    _builder_1.append(_firstUpper, "\t\t\t");
+    _builder_1.append(" load.\", 0.4, 0.45, 0, 0);");
+    _builder_1.newLineIfNotEmpty();
+    _builder_1.append("\t\t");
+    _builder_1.append("}");
+    _builder_1.newLine();
+    _builder_1.append("\t\t");
+    _builder_1.append("// execute the smooks filtering");
+    _builder_1.newLine();
+    _builder_1.append("\t\t");
+    _builder_1.append("JavaResult result = new JavaResult();");
+    _builder_1.newLine();
+    _builder_1.append("\t\t");
+    _builder_1.append("InputStream in = fileURL.openStream();");
+    _builder_1.newLine();
+    _builder_1.append("\t\t");
+    _builder_1.append("byte[] contents = StreamUtils.readStream(in);");
+    _builder_1.newLine();
+    _builder_1.append("\t\t");
+    _builder_1.append("setLength(contents.length);");
+    _builder_1.newLine();
+    _builder_1.append("\t\t");
+    _builder_1.append("setAvgElementSize(");
+    {
+      int _elementSize = dataInterchange.getElementSize();
+      boolean _equals = (_elementSize == 0);
+      if (_equals) {
+        _builder_1.append("10");
+      } else {
+        int _elementSize_1 = dataInterchange.getElementSize();
+        _builder_1.append(_elementSize_1, "\t\t");
+      }
+    }
+    _builder_1.append(");");
+    _builder_1.newLineIfNotEmpty();
+    _builder_1.append("\t\t");
+    _builder_1.append("StreamSource source = new StreamSource(new ByteArrayInputStream(contents));");
+    _builder_1.newLine();
+    body = _builder_1.toString();
+    EList<DataInterchangeBean> _path_1 = dataInterchange.getPath();
+    for (final DataInterchangeBean path : _path_1) {
+      EList<DataInterchangeLookup> _lookup = path.getLookup();
+      for (final DataInterchangeLookup lookup : _lookup) {
+        boolean _isCached = lookup.isCached();
+        if (_isCached) {
+          StringConcatenation _builder_2 = new StringConcatenation();
+          _builder_2.append(body, "");
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("\t\t");
+          _builder_2.append("em.setProperty(PersistenceUnitProperties.CACHE_SIZE_+\"");
+          LEntity _entity = lookup.getEntity();
+          QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(_entity);
+          _builder_2.append(_fullyQualifiedName, "\t\t");
+          _builder_2.append("\", \"");
+          int _cacheSize = lookup.getCacheSize();
+          _builder_2.append(_cacheSize, "\t\t");
+          _builder_2.append("\");");
+          _builder_2.newLineIfNotEmpty();
+          body = _builder_2.toString();
+        }
+      }
+    }
+    StringConcatenation _builder_3 = new StringConcatenation();
+    _builder_3.append(body, "");
+    _builder_3.newLineIfNotEmpty();
+    _builder_3.append("\t\t");
+    _builder_3.append("PersistenceUtil.setDAORegister(executionContext, new EntityManagerRegister(em));");
+    _builder_3.newLine();
+    _builder_3.append("\t\t");
+    _builder_3.append("// execute smooks filtering");
+    _builder_3.newLine();
+    _builder_3.append("\t\t");
+    _builder_3.append("if (log.isDebugEnabled()) log.debug(\"filtering starts\");");
+    _builder_3.newLine();
+    _builder_3.append("\t\t");
+    _builder_3.append("setProgressIndeterminated(false);");
+    _builder_3.newLine();
+    _builder_3.append("\t\t");
+    _builder_3.append("if\t(importListener != null) {");
+    _builder_3.newLine();
+    _builder_3.append("\t\t\t");
+    _builder_3.append("importListener.notifyInitializationStep(\"datainterchange Warehouses load..\", 0.4, 0.47, 0, 0);");
+    _builder_3.newLine();
+    _builder_3.append("\t\t");
+    _builder_3.append("}");
+    _builder_3.newLine();
+    _builder_3.append("\t\t");
+    _builder_3.append("smooks.filterSource(executionContext, source, result);");
+    _builder_3.newLine();
+    _builder_3.append("\t\t");
+    _builder_3.append("if\t(importListener != null) {");
+    _builder_3.newLine();
+    _builder_3.append("\t\t\t");
+    _builder_3.append("importListener.notifyInitializationStep(\"datainterchange Warehouses load...\", 0.4, 0.48, 0, 0);");
+    _builder_3.newLine();
+    _builder_3.append("\t\t");
+    _builder_3.append("}");
+    _builder_3.newLine();
+    _builder_3.append("\t\t");
+    _builder_3.append("if (log.isDebugEnabled()) log.debug(\"smooks filtering finished\");");
+    _builder_3.newLine();
+    body = _builder_3.toString();
+    boolean _isRecordList = firstEntity.isRecordList();
+    if (_isRecordList) {
+      StringConcatenation _builder_4 = new StringConcatenation();
+      _builder_4.append(body, "");
+      _builder_4.newLineIfNotEmpty();
+      _builder_4.append("\t\t");
+      _builder_4.append("// retrieve bean list");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("List<");
+      LEntity _entity_1 = firstEntity.getEntity();
+      QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_1);
+      _builder_4.append(_fullyQualifiedName_1, "\t\t");
+      _builder_4.append("> ");
+      LEntity _entity_2 = firstEntity.getEntity();
+      String _name_1 = _entity_2.getName();
+      String _firstLower = StringExtensions.toFirstLower(_name_1);
+      _builder_4.append(_firstLower, "\t\t");
+      _builder_4.append("List = Arrays.asList((");
+      LEntity _entity_3 = firstEntity.getEntity();
+      QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_3);
+      _builder_4.append(_fullyQualifiedName_2, "\t\t");
+      _builder_4.append("[]) result.getBean(\"");
+      LEntity _entity_4 = firstEntity.getEntity();
+      String _name_2 = _entity_4.getName();
+      _builder_4.append(_name_2, "\t\t");
+      _builder_4.append("List\"));");
+      _builder_4.newLineIfNotEmpty();
+      _builder_4.append("\t\t");
+      _builder_4.append("// persist");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("em.getTransaction().begin();");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("if (log.isDebugEnabled()) log.debug(\"persisting results\");");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("int total = ");
+      LEntity _entity_5 = firstEntity.getEntity();
+      String _name_3 = _entity_5.getName();
+      String _firstLower_1 = StringExtensions.toFirstLower(_name_3);
+      _builder_4.append(_firstLower_1, "\t\t");
+      _builder_4.append("List.size();");
+      _builder_4.newLineIfNotEmpty();
+      _builder_4.append("\t\t");
+      _builder_4.append("int count = 0;");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("long lastStep = System.currentTimeMillis();");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("if\t(importListener != null) {");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("importListener.notifyInitializationStep(\"datainterchange ");
+      String _name_4 = dataInterchange.getName();
+      String _firstUpper_1 = StringExtensions.toFirstUpper(_name_4);
+      _builder_4.append(_firstUpper_1, "\t\t\t");
+      _builder_4.append("\", 0.4, 0.5, count, total);");
+      _builder_4.newLineIfNotEmpty();
+      _builder_4.append("\t\t");
+      _builder_4.append("}");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("for(");
+      LEntity _entity_6 = firstEntity.getEntity();
+      QualifiedName _fullyQualifiedName_3 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_6);
+      _builder_4.append(_fullyQualifiedName_3, "\t\t");
+      _builder_4.append(" ");
+      LEntity _entity_7 = firstEntity.getEntity();
+      String _name_5 = _entity_7.getName();
+      String _firstLower_2 = StringExtensions.toFirstLower(_name_5);
+      _builder_4.append(_firstLower_2, "\t\t");
+      _builder_4.append(":");
+      LEntity _entity_8 = firstEntity.getEntity();
+      String _name_6 = _entity_8.getName();
+      String _firstLower_3 = StringExtensions.toFirstLower(_name_6);
+      _builder_4.append(_firstLower_3, "\t\t");
+      _builder_4.append("List) {");
+      _builder_4.newLineIfNotEmpty();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("try {");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t");
+      _builder_4.append("em.persist(");
+      LEntity _entity_9 = firstEntity.getEntity();
+      String _name_7 = _entity_9.getName();
+      String _firstLower_4 = StringExtensions.toFirstLower(_name_7);
+      _builder_4.append(_firstLower_4, "\t\t\t\t");
+      _builder_4.append(");");
+      _builder_4.newLineIfNotEmpty();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("}");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("catch (ConstraintViolationException cve) {");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t");
+      _builder_4.append("log.error(\"");
+      LEntity _entity_10 = firstEntity.getEntity();
+      String _name_8 = _entity_10.getName();
+      String _firstLower_5 = StringExtensions.toFirstLower(_name_8);
+      _builder_4.append(_firstLower_5, "\t\t\t\t");
+      _builder_4.append(" #\"+(count+1)+\"/\"+total+\": \"+cve.getLocalizedMessage());");
+      _builder_4.newLineIfNotEmpty();
+      _builder_4.append("\t\t\t\t");
+      _builder_4.append("for\t(ConstraintViolation violation : cve.getConstraintViolations()) {");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t\t");
+      _builder_4.append("Object value = violation.getInvalidValue();");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t\t");
+      _builder_4.append("if\t(value == null) {");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t\t\t");
+      _builder_4.append("value = \"<null>\";");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t\t");
+      _builder_4.append("}");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t\t");
+      _builder_4.append("log.error(\"- property:\"");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t\t\t");
+      _builder_4.append("+violation.getLeafBean().toString()+\".\"+violation.getPropertyPath().toString()");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t\t\t");
+      _builder_4.append("+\" value:\'\"+value.toString()");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t\t\t");
+      _builder_4.append("+\" violation:\"+violation.getMessage());");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t");
+      _builder_4.append("}");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("}");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("count++;");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("long thisStep = System.currentTimeMillis();");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("if\t((importListener != null) && ((count % importListener.getInitializationSubStepNotifySize() == 0) || (thisStep-lastStep > 2500))) {");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t");
+      _builder_4.append("lastStep = System.currentTimeMillis();");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t\t");
+      _builder_4.append("importListener.notifyInitializationStep(\"datainterchange ");
+      String _name_9 = dataInterchange.getName();
+      String _firstUpper_2 = StringExtensions.toFirstUpper(_name_9);
+      _builder_4.append(_firstUpper_2, "\t\t\t\t");
+      _builder_4.append("\", 0.4, 0.5, count, total);");
+      _builder_4.newLineIfNotEmpty();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("}");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("}");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("if\t(importListener != null) {");
+      _builder_4.newLine();
+      _builder_4.append("\t\t\t");
+      _builder_4.append("importListener.notifyInitializationStep(\"datainterchange ");
+      String _name_10 = dataInterchange.getName();
+      String _firstUpper_3 = StringExtensions.toFirstUpper(_name_10);
+      _builder_4.append(_firstUpper_3, "\t\t\t");
+      _builder_4.append("\", 0.4, 0.5, count, total);");
+      _builder_4.newLineIfNotEmpty();
+      _builder_4.append("\t\t");
+      _builder_4.append("}");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("if (log.isDebugEnabled()) log.debug(\"committing results\");");
+      _builder_4.newLine();
+      _builder_4.append("\t\t");
+      _builder_4.append("em.getTransaction().commit();\t\t\t");
+      _builder_4.newLine();
+      body = _builder_4.toString();
+    } else {
+      StringConcatenation _builder_5 = new StringConcatenation();
+      _builder_5.append(body, "");
+      _builder_5.newLineIfNotEmpty();
+      _builder_5.append("\t\t");
+      _builder_5.append("// retrieve the root bean");
+      _builder_5.newLine();
+      _builder_5.append("\t\t");
+      LEntity _entity_11 = firstEntity.getEntity();
+      QualifiedName _fullyQualifiedName_4 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_11);
+      _builder_5.append(_fullyQualifiedName_4, "\t\t");
+      _builder_5.append(" ");
+      LEntity _entity_12 = firstEntity.getEntity();
+      String _name_11 = _entity_12.getName();
+      String _firstLower_6 = StringExtensions.toFirstLower(_name_11);
+      _builder_5.append(_firstLower_6, "\t\t");
+      _builder_5.append(" = (");
+      LEntity _entity_13 = firstEntity.getEntity();
+      QualifiedName _fullyQualifiedName_5 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_13);
+      _builder_5.append(_fullyQualifiedName_5, "\t\t");
+      _builder_5.append(") result.getBean(\"");
+      LEntity _entity_14 = firstEntity.getEntity();
+      String _name_12 = _entity_14.getName();
+      _builder_5.append(_name_12, "\t\t");
+      _builder_5.append("\");");
+      _builder_5.newLineIfNotEmpty();
+      _builder_5.append("\t\t");
+      _builder_5.append("// persist");
+      _builder_5.newLine();
+      _builder_5.append("\t\t");
+      _builder_5.append("em.getTransaction().begin();");
+      _builder_5.newLine();
+      _builder_5.append("\t\t");
+      _builder_5.append("if (log.isDebugEnabled()) log.debug(\"persisting results\");");
+      _builder_5.newLine();
+      _builder_5.append("\t\t");
+      _builder_5.append("em.persist(");
+      LEntity _entity_15 = firstEntity.getEntity();
+      String _name_13 = _entity_15.getName();
+      String _firstLower_7 = StringExtensions.toFirstLower(_name_13);
+      _builder_5.append(_firstLower_7, "\t\t");
+      _builder_5.append(");");
+      _builder_5.newLineIfNotEmpty();
+      _builder_5.append("\t\t");
+      _builder_5.append("if (log.isDebugEnabled()) log.debug(\"committing results\");");
+      _builder_5.newLine();
+      _builder_5.append("\t\t");
+      _builder_5.append("em.getTransaction().commit();\t\t\t");
+      _builder_5.newLine();
+      body = _builder_5.toString();
+    }
+    boolean _isMarkLatest = firstEntity.isMarkLatest();
+    if (_isMarkLatest) {
+      StringConcatenation _builder_6 = new StringConcatenation();
+      _builder_6.append(body, "");
+      _builder_6.newLineIfNotEmpty();
+      _builder_6.append("\t\t");
+      _builder_6.append("if (log.isDebugEnabled()) log.debug(\"mark results as latest import\");");
+      _builder_6.newLine();
+      _builder_6.append("\t\t");
+      _builder_6.append("em.setProperty(QueryHints.PESSIMISTIC_LOCK, PessimisticLock.Lock);");
+      _builder_6.newLine();
+      _builder_6.append("\t\t");
+      _builder_6.append("em.getTransaction().begin();");
+      _builder_6.newLine();
+      _builder_6.append("\t\t");
+      _builder_6.append("em.createQuery(\"update ");
+      LEntity _entity_16 = firstEntity.getEntity();
+      String _name_14 = _entity_16.getName();
+      _builder_6.append(_name_14, "\t\t");
+      _builder_6.append(" set ");
+      LEntityAttribute _latestProperty = firstEntity.getLatestProperty();
+      String _name_15 = _latestProperty.getName();
+      _builder_6.append(_name_15, "\t\t");
+      _builder_6.append(" = 0\").executeUpdate();");
+      _builder_6.newLineIfNotEmpty();
+      _builder_6.append("\t\t");
+      _builder_6.append("em.createQuery(\"update ");
+      LEntity _entity_17 = firstEntity.getEntity();
+      String _name_16 = _entity_17.getName();
+      _builder_6.append(_name_16, "\t\t");
+      _builder_6.append(" set ");
+      LEntityAttribute _latestProperty_1 = firstEntity.getLatestProperty();
+      String _name_17 = _latestProperty_1.getName();
+      _builder_6.append(_name_17, "\t\t");
+      _builder_6.append(" = 1 where ");
+      _builder_6.append("id= :id\").setParameter(\"id\", ");
+      LEntity _entity_18 = firstEntity.getEntity();
+      String _name_18 = _entity_18.getName();
+      String _firstLower_8 = StringExtensions.toFirstLower(_name_18);
+      _builder_6.append(_firstLower_8, "\t\t");
+      _builder_6.append(".getId()).executeUpdate();");
+      _builder_6.newLineIfNotEmpty();
+      _builder_6.append("\t\t");
+      _builder_6.append("if (log.isDebugEnabled()) log.debug(\"committing mark\");");
+      _builder_6.newLine();
+      _builder_6.append("\t\t");
+      _builder_6.append("em.getTransaction().commit();\t\t\t");
+      _builder_6.newLine();
+      body = _builder_6.toString();
+    }
+    boolean _isRefreshEnabled = dataInterchange.isRefreshEnabled();
+    if (_isRefreshEnabled) {
+      StringConcatenation _builder_7 = new StringConcatenation();
+      _builder_7.append(body, "");
+      _builder_7.newLineIfNotEmpty();
+      _builder_7.append("\t\t");
+      _builder_7.append("if(getEventBroker()!=null) {");
+      _builder_7.newLine();
+      _builder_7.append("\t\t\t");
+      _builder_7.append("getEventBroker().send(EventBrokerMsg.REFRESH_VIEW+\"");
+      String _refresh = dataInterchange.getRefresh();
+      _builder_7.append(_refresh, "\t\t\t");
+      _builder_7.append("\", \"*\");");
+      _builder_7.newLineIfNotEmpty();
+      _builder_7.append("\t\t");
+      _builder_7.append("}");
+      _builder_7.newLine();
+      body = _builder_7.toString();
+    }
+    StringConcatenation _builder_8 = new StringConcatenation();
+    _builder_8.append(body, "");
+    _builder_8.newLineIfNotEmpty();
+    _builder_8.append("\t\t");
+    _builder_8.append("if (log.isDebugEnabled()) log.debug(\"results persisted\");");
+    _builder_8.newLine();
+    body = _builder_8.toString();
+    EList<DataInterchangeBean> _path_2 = dataInterchange.getPath();
+    Iterator<DataInterchangeBean> iter = _path_2.iterator();
+    DataInterchangeBean _next_1 = iter.next();
+    LEntity root = ((DataInterchangeBean) _next_1).getEntity();
+    StringConcatenation _builder_9 = new StringConcatenation();
+    _builder_9.append(body, "");
+    _builder_9.newLineIfNotEmpty();
+    _builder_9.append("\t");
+    _builder_9.append("} else {");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("if (log.isDebugEnabled()) log.debug(\"prepare export\");");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("int pageNumber = 1;");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("int pageSize = 1000;");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();");
+    _builder_9.newLine();
+    _builder_9.append("\t\t ");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("if (log.isDebugEnabled()) log.debug(\"evaluate root entity count\");");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("CriteriaQuery<Long> countQuery = criteriaBuilder.createQuery(Long.class);");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("countQuery.select(criteriaBuilder.count(countQuery.from(");
+    LEntity _entity_19 = firstEntity.getEntity();
+    QualifiedName _fullyQualifiedName_6 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_19);
+    _builder_9.append(_fullyQualifiedName_6, "\t\t");
+    _builder_9.append(".class)));");
+    _builder_9.newLineIfNotEmpty();
+    _builder_9.append("\t\t");
+    _builder_9.append("Long count = em.createQuery(countQuery).getSingleResult();");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("if (log.isDebugEnabled()) log.debug(\"root entity count is \"+count.toString());");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("setLength(count*");
+    {
+      int _elementSize_2 = dataInterchange.getElementSize();
+      boolean _equals_1 = (_elementSize_2 == 0);
+      if (_equals_1) {
+        _builder_9.append("10");
+      } else {
+        int _elementSize_3 = dataInterchange.getElementSize();
+        _builder_9.append(_elementSize_3, "\t\t");
+      }
+    }
+    _builder_9.append(");");
+    _builder_9.newLineIfNotEmpty();
+    _builder_9.append("\t\t");
+    _builder_9.append("setAvgElementSize(1);");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("CriteriaQuery<");
+    LEntity _entity_20 = firstEntity.getEntity();
+    QualifiedName _fullyQualifiedName_7 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_20);
+    _builder_9.append(_fullyQualifiedName_7, "\t\t");
+    _builder_9.append("> criteriaQuery = criteriaBuilder.createQuery(");
+    LEntity _entity_21 = firstEntity.getEntity();
+    QualifiedName _fullyQualifiedName_8 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_21);
+    _builder_9.append(_fullyQualifiedName_8, "\t\t");
+    _builder_9.append(".class);");
+    _builder_9.newLineIfNotEmpty();
+    _builder_9.append("\t\t");
+    _builder_9.append("Root<");
+    LEntity _entity_22 = firstEntity.getEntity();
+    QualifiedName _fullyQualifiedName_9 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_22);
+    _builder_9.append(_fullyQualifiedName_9, "\t\t");
+    _builder_9.append("> from = criteriaQuery.from(");
+    LEntity _entity_23 = firstEntity.getEntity();
+    QualifiedName _fullyQualifiedName_10 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_23);
+    _builder_9.append(_fullyQualifiedName_10, "\t\t");
+    _builder_9.append(".class);");
+    _builder_9.newLineIfNotEmpty();
+    _builder_9.append("\t\t");
+    _builder_9.append("/* ... not necessary due to eager loading of entities via JPA ... ");
+    String _buildJoins = this.buildJoins(dataInterchange, iter, root);
+    _builder_9.append(_buildJoins, "\t\t");
+    _builder_9.append(" ...*/");
+    _builder_9.newLineIfNotEmpty();
+    _builder_9.append("\t\t");
+    _builder_9.append("CriteriaQuery<");
+    LEntity _entity_24 = firstEntity.getEntity();
+    QualifiedName _fullyQualifiedName_11 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_24);
+    _builder_9.append(_fullyQualifiedName_11, "\t\t");
+    _builder_9.append("> select = criteriaQuery.multiselect(from);");
+    _builder_9.newLineIfNotEmpty();
+    _builder_9.append("\t\t ");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("TypedQuery<");
+    LEntity _entity_25 = firstEntity.getEntity();
+    QualifiedName _fullyQualifiedName_12 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_25);
+    _builder_9.append(_fullyQualifiedName_12, "\t\t");
+    _builder_9.append("> typedQuery = em.createQuery(select);");
+    _builder_9.newLineIfNotEmpty();
+    _builder_9.append("\t\t");
+    _builder_9.append("setProgressIndeterminated(false);");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("while (pageNumber < count.intValue()) {");
+    _builder_9.newLine();
+    _builder_9.append("\t\t\t");
+    _builder_9.append("if (log.isDebugEnabled()) log.debug(\"fetch and process entry \"+pageNumber+\" to \"+(pageNumber+pageSize));");
+    _builder_9.newLine();
+    _builder_9.append("\t\t    ");
+    _builder_9.append("typedQuery.setFirstResult(pageNumber - 1);");
+    _builder_9.newLine();
+    _builder_9.append("\t\t    ");
+    _builder_9.append("typedQuery.setMaxResults(pageSize);");
+    _builder_9.newLine();
+    _builder_9.append("\t\t    ");
+    _builder_9.append("List<");
+    LEntity _entity_26 = firstEntity.getEntity();
+    QualifiedName _fullyQualifiedName_13 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_26);
+    _builder_9.append(_fullyQualifiedName_13, "\t\t    ");
+    _builder_9.append("> queryResults = typedQuery.getResultList();");
+    _builder_9.newLineIfNotEmpty();
+    _builder_9.append("\t\t\t");
+    _builder_9.append("StringWriter writer = new StringWriter();");
+    _builder_9.newLine();
+    _builder_9.append("\t\t\t");
+    _builder_9.append("smooks.filterSource(executionContext, new JavaSource(queryResults), new StreamResult(writer));");
+    _builder_9.newLine();
+    _builder_9.append("\t\t\t");
+    _builder_9.append("out.write(writer.toString().getBytes());");
+    _builder_9.newLine();
+    _builder_9.append("\t\t    ");
+    _builder_9.append("pageNumber += pageSize;");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("}");
+    _builder_9.newLine();
+    _builder_9.append("\t\t");
+    _builder_9.append("if (log.isDebugEnabled()) log.debug(\"export finished\");");
+    _builder_9.newLine();
+    _builder_9.append("\t");
+    _builder_9.append("}");
+    _builder_9.newLine();
+    body = _builder_9.toString();
+    StringConcatenation _builder_10 = new StringConcatenation();
+    _builder_10.append(body, "");
+    _builder_10.newLineIfNotEmpty();
+    _builder_10.append("} catch (Exception e) {");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("log.error(\"");
+    String _name_19 = dataInterchange.getName();
+    _builder_10.append(_name_19, "\t");
+    _builder_10.append(": \"+e.getLocalizedMessage()+e.getCause(), e);");
+    _builder_10.newLineIfNotEmpty();
+    _builder_10.append("} finally {");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("if(file != null) {");
+    _builder_10.newLine();
+    _builder_10.append("\t\t");
+    _builder_10.append("try {");
+    _builder_10.newLine();
+    _builder_10.append("\t\t\t");
+    _builder_10.append("out.close();");
+    _builder_10.newLine();
+    _builder_10.append("\t\t\t");
+    _builder_10.append("file.close();");
+    _builder_10.newLine();
+    _builder_10.append("\t\t");
+    _builder_10.append("} catch (IOException e) {");
+    _builder_10.newLine();
+    _builder_10.append("\t    \t");
+    _builder_10.append("log.error(e.getLocalizedMessage()+e.getCause());");
+    _builder_10.newLine();
+    _builder_10.append("\t\t");
+    _builder_10.append("}");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("}");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("smooks.close();");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("if(getEventBroker()!=null) {");
+    _builder_10.newLine();
+    _builder_10.append("\t\t");
+    _builder_10.append("UI.getCurrent().setPollInterval(pollingInterval);");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("}");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("// close everything");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("if (em != null) {");
+    _builder_10.newLine();
+    _builder_10.append("\t\t");
+    _builder_10.append("em.close();");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("}");
+    _builder_10.newLine();
+    _builder_10.append("\t");
+    _builder_10.append("if (log.isDebugEnabled()) log.debug(\"datainterchange finished\");");
+    _builder_10.newLine();
+    _builder_10.append("}");
+    _builder_10.newLine();
+    body = _builder_10.toString();
+    return body;
+  }
+  
+  /**
+   * This seems to be not necessary, because JPA seems to load the entities eager itself!
+   * With this functionality active, the sql result set would contain all root entities multiple times!
+   */
+  @Deprecated
+  public String buildJoins(final DataInterchange interchange, final Iterator<DataInterchangeBean> iter, final LEntity rootEntity) {
+    LEntity root = rootEntity;
+    String body = "";
+    boolean _hasNext = iter.hasNext();
+    if (_hasNext) {
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append(body, "");
+      _builder.append("from");
+      body = _builder.toString();
+    }
+    while (iter.hasNext()) {
+      {
+        DataInterchangeBean _next = iter.next();
+        LEntity entity = ((DataInterchangeBean) _next).getEntity();
+        EList<LEntityFeature> _features = root.getFeatures();
+        for (final LEntityFeature f : _features) {
+          boolean _and = false;
+          boolean _and_1 = false;
+          boolean _and_2 = false;
+          if (!(f instanceof LReference)) {
+            _and_2 = false;
+          } else {
+            boolean _isToMany = this._modelExtensions.isToMany(f);
+            _and_2 = _isToMany;
+          }
+          if (!_and_2) {
+            _and_1 = false;
+          } else {
+            LType _type = this._modelExtensions.type(f);
+            _and_1 = (_type instanceof LEntity);
+          }
+          if (!_and_1) {
+            _and = false;
+          } else {
+            LType _type_1 = this._modelExtensions.type(f);
+            String _name = this._modelExtensions.toName(_type_1);
+            String _name_1 = this._modelExtensions.toName(entity);
+            boolean _equals = _name.equals(_name_1);
+            _and = _equals;
+          }
+          if (_and) {
+            StringConcatenation _builder_1 = new StringConcatenation();
+            _builder_1.append(body, "");
+            _builder_1.append(".fetch(\"");
+            String _name_2 = f.getName();
+            _builder_1.append(_name_2, "");
+            _builder_1.append("\", JoinType.LEFT)");
+            body = _builder_1.toString();
+          }
+        }
+        root = entity;
+      }
+    }
+    boolean _isEmpty = body.isEmpty();
+    boolean _not = (!_isEmpty);
+    if (_not) {
+      body = (body + ";");
+    }
+    return body;
+  }
+  
+  public CharSequence localeChanged(final DataInterchangePackage pkg) {
+    StringConcatenation _builder = new StringConcatenation();
+    {
+      String _title = pkg.getTitle();
+      boolean _notEquals = (!Objects.equal(_title, null));
+      if (_notEquals) {
+        _builder.append("if(logo != null) {");
+        _builder.newLine();
+        _builder.append("\t");
+        _builder.append("logo.setValue(dslMetadataService.translate(locale.toLanguageTag(), \"");
+        String _title_1 = pkg.getTitle();
+        _builder.append(_title_1, "\t");
+        _builder.append("\"));");
+        _builder.newLineIfNotEmpty();
+        _builder.append("}");
+        _builder.newLine();
+      }
+    }
+    _builder.append("if(buttons != null) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("for(Button button: buttons.keySet()) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("ArrayList i18nKeys = buttons.get(button);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("button.setCaption(dslMetadataService.translate(locale.toLanguageTag(),(String)i18nKeys.get(1)));");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("button.setDescription(dslMetadataService.translate(locale.toLanguageTag(),(String)i18nKeys.get(0))+\" \"+dslMetadataService.translate(locale.toLanguageTag(),(String)i18nKeys.get(2)));");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("}");
+    return _builder;
+  }
+  
+  public void infer(final EObject dataInterchangePackage, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
+    if (dataInterchangePackage instanceof DataInterchangePackage) {
+      _infer((DataInterchangePackage)dataInterchangePackage, acceptor, isPreIndexingPhase);
+      return;
+    } else if (dataInterchangePackage != null) {
+      _infer(dataInterchangePackage, acceptor, isPreIndexingPhase);
+      return;
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        Arrays.<Object>asList(dataInterchangePackage, acceptor, isPreIndexingPhase).toString());
+    }
+  }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLModelGenerator.java b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLModelGenerator.java
new file mode 100644
index 0000000..c51de26
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/jvmmodel/DataDSLModelGenerator.java
@@ -0,0 +1,1717 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ * 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:
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.jvmmodel;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterators;
+import com.google.common.collect.Lists;
+import com.vaadin.shared.ui.label.ContentMode;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.NativeButton;
+import com.vaadin.ui.ProgressBar;
+import com.vaadin.ui.UI;
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.FileAlreadyExistsException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.MissingResourceException;
+import java.util.Set;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityTransaction;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.JoinType;
+import javax.persistence.criteria.Root;
+import javax.validation.ConstraintViolation;
+import javax.validation.ConstraintViolationException;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.eclipse.e4.core.di.extensions.EventUtils;
+import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.osbp.dsl.entity.xtext.extensions.EntityTypesBuilder;
+import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions;
+import org.eclipse.osbp.dsl.semantic.common.types.LAttribute;
+import org.eclipse.osbp.dsl.semantic.common.types.LDataType;
+import org.eclipse.osbp.dsl.semantic.common.types.LFeature;
+import org.eclipse.osbp.dsl.semantic.common.types.LReference;
+import org.eclipse.osbp.dsl.semantic.common.types.LScalarType;
+import org.eclipse.osbp.dsl.semantic.common.types.LType;
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityFeature;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityReference;
+import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+import org.eclipse.osbp.ui.api.datamart.IDataMart;
+import org.eclipse.osbp.utils.entityhelper.DataType;
+import org.eclipse.osbp.utils.entitymock.IEntityImportInitializationListener;
+import org.eclipse.osbp.xtext.addons.EObjectHelper;
+import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeExpression;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFile;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileCSV;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileEDI;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFileXML;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeFormat;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMapping;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerPath;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangePredefinedExpression;
+import org.eclipse.osbp.xtext.datainterchange.PredefinedBeanEnum;
+import org.eclipse.osbp.xtext.datainterchange.PredefinedBeanTypeEnum;
+import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable;
+import org.eclipse.osbp.xtext.datainterchange.jvmmodel.ParameterValue;
+import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider;
+import org.eclipse.osbp.xtext.i18n.I18NModelGenerator;
+import org.eclipse.persistence.config.PersistenceUnitProperties;
+import org.eclipse.persistence.config.PessimisticLock;
+import org.eclipse.persistence.config.QueryHints;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.common.types.JvmOperation;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IOutputConfigurationProvider;
+import org.eclipse.xtext.generator.OutputConfiguration;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.xbase.compiler.GeneratorConfig;
+import org.eclipse.xtext.xbase.compiler.ImportManager;
+import org.eclipse.xtext.xbase.compiler.output.TreeAppendable;
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Conversions;
+import org.eclipse.xtext.xbase.lib.Exceptions;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function0;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import org.eclipse.xtext.xbase.lib.Pair;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+import org.milyn.Smooks;
+import org.milyn.SmooksFactory;
+import org.milyn.SmooksOSGIFactory;
+import org.milyn.container.ExecutionContext;
+import org.milyn.event.report.HtmlReportGenerator;
+import org.milyn.event.types.ElementPresentEvent;
+import org.milyn.event.types.FilterLifecycleEvent;
+import org.milyn.io.StreamUtils;
+import org.milyn.javabean.binding.xml.XMLBinding;
+import org.milyn.payload.JavaResult;
+import org.milyn.payload.JavaSource;
+import org.milyn.payload.StringResult;
+import org.milyn.persistence.util.PersistenceUtil;
+import org.milyn.scribe.adapter.jpa.EntityManagerRegister;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Attr;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.ProcessingInstruction;
+import org.w3c.dom.Text;
+
+@SuppressWarnings("all")
+public class DataDSLModelGenerator extends I18NModelGenerator {
+  @Inject
+  @Extension
+  private IQualifiedNameProvider _iQualifiedNameProvider;
+  
+  @Inject
+  @Extension
+  private ModelExtensions _modelExtensions;
+  
+  @Inject
+  @Extension
+  private EntityTypesBuilder _entityTypesBuilder;
+  
+  @Inject
+  @Extension
+  private IOutputConfigurationProvider outputConfig;
+  
+  @Inject
+  @Extension
+  private BasicDslGeneratorUtils _basicDslGeneratorUtils;
+  
+  @Inject
+  @Extension
+  private DataType dtType;
+  
+  protected final static String CAPTION__REPFIX_I18NKEY_EXPORT = "export";
+  
+  protected final static String CAPTION__REPFIX_I18NKEY_IMPORT = "import";
+  
+  public static String pckgName = null;
+  
+  private final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+  
+  private final TransformerFactory transformerFactory = new Function0<TransformerFactory>() {
+    public TransformerFactory apply() {
+      try {
+        TransformerFactory _newInstance = TransformerFactory.newInstance();
+        return _newInstance;
+      } catch (Throwable _e) {
+        throw Exceptions.sneakyThrow(_e);
+      }
+    }
+  }.apply();
+  
+  private Transformer transformer = null;
+  
+  private DocumentBuilder db = new Function0<DocumentBuilder>() {
+    public DocumentBuilder apply() {
+      try {
+        DocumentBuilder _newDocumentBuilder = DataDSLModelGenerator.this.dbf.newDocumentBuilder();
+        return _newDocumentBuilder;
+      } catch (Throwable _e) {
+        throw Exceptions.sneakyThrow(_e);
+      }
+    }
+  }.apply();
+  
+  private DOMImplementation domImpl = this.db.getDOMImplementation();
+  
+  public String generateKey(final String name, final QualifiedName packageName) {
+    String pattern = "(\\W)";
+    boolean _notEquals = (!Objects.equal(name, null));
+    if (_notEquals) {
+      String _replaceAll = name.replaceAll(pattern, "_");
+      String newName = _replaceAll.toLowerCase();
+      System.out.println(newName);
+      boolean _notEquals_1 = (!Objects.equal(packageName, null));
+      if (_notEquals_1) {
+        String _string = packageName.toString();
+        String _concat = _string.concat(".");
+        return _concat.concat(newName);
+      } else {
+        return newName;
+      }
+    }
+    return null;
+  }
+  
+  public void generatePckgName(final DataInterchangePackage dip, final IJvmDeclaredTypeAcceptor acceptor) {
+    String _name = dip.getName();
+    DataDSLModelGenerator.pckgName = _name;
+  }
+  
+  public void doGenerate(final Resource input, final IFileSystemAccess fsa) {
+    try {
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append(DataDSLModelGenerator.CAPTION__REPFIX_I18NKEY_EXPORT, "");
+      _builder.append(",");
+      _builder.append(DataDSLModelGenerator.CAPTION__REPFIX_I18NKEY_IMPORT, "");
+      this.addTranslatables(_builder.toString());
+      this.transformerFactory.setAttribute("indent-number", Integer.valueOf(4));
+      Transformer _newTransformer = this.transformerFactory.newTransformer();
+      this.transformer = _newTransformer;
+      this.transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
+      this.transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+      this.transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+      this.transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
+      this.transformer.setOutputProperty(OutputKeys.MEDIA_TYPE, "text/xml");
+      Set<OutputConfiguration> _outputConfigurations = this.outputConfig.getOutputConfigurations();
+      ArrayList<OutputConfiguration> configList = Lists.<OutputConfiguration>newArrayList(_outputConfigurations);
+      String outputDirectory = "";
+      for (final OutputConfiguration config : configList) {
+        String _name = config.getName();
+        boolean _equals = _name.equals(DSLOutputConfigurationProvider.SMOOKS_OUTPUT_ONCE);
+        if (_equals) {
+          String _outputDirectory = config.getOutputDirectory();
+          outputDirectory = _outputDirectory;
+        }
+      }
+      EObject _semanticElement = EObjectHelper.getSemanticElement(input);
+      TreeIterator<Object> _allContents = EcoreUtil.<Object>getAllContents(_semanticElement, false);
+      Iterator<DataInterchange> _filter = Iterators.<DataInterchange>filter(_allContents, DataInterchange.class);
+      final Procedure1<DataInterchange> _function = new Procedure1<DataInterchange>() {
+        public void apply(final DataInterchange it) {
+          DataDSLModelGenerator.this.generateImportConfigStub(fsa, it);
+          DataDSLModelGenerator.this.generateExportConfigStub(fsa, it);
+        }
+      };
+      IteratorExtensions.<DataInterchange>forEach(_filter, _function);
+      super.doGenerate(input, fsa);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  public void generateExportConfigStub(final IFileSystemAccess fsa, final DataInterchange dataInterchange) {
+    try {
+      String body = "";
+      this.dbf.setNamespaceAware(true);
+      Document document = this.domImpl.createDocument("http://www.milyn.org/xsd/smooks-1.1.xsd", "smooks-resource-list", null);
+      Element config = document.createElement("resource-config");
+      Attr selector = document.createAttribute("selector");
+      selector.setTextContent("global-parameters");
+      config.setAttributeNode(selector);
+      Element pEl = document.createElement("param");
+      Attr name = document.createAttribute("name");
+      name.setTextContent("stream.filter.type");
+      pEl.setAttributeNode(name);
+      Text value = document.createTextNode("SAX");
+      pEl.appendChild(value);
+      config.appendChild(pEl);
+      Element _documentElement = document.getDocumentElement();
+      _documentElement.appendChild(config);
+      HashMap<String, String> cartridges = CollectionLiterals.<String, String>newHashMap();
+      cartridges.put("xmlns:jb", "http://www.milyn.org/xsd/smooks/javabean-1.4.xsd");
+      DataInterchangeFile _fileEndpoint = dataInterchange.getFileEndpoint();
+      boolean _matched = false;
+      if (!_matched) {
+        if (_fileEndpoint instanceof DataInterchangeFileCSV) {
+          _matched=true;
+          String delimiter = "";
+          String quote = "";
+          cartridges.put("xmlns:ftl", "http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd");
+          DataInterchangeFile _fileEndpoint_1 = dataInterchange.getFileEndpoint();
+          DataInterchangeFileCSV csv = ((DataInterchangeFileCSV) _fileEndpoint_1);
+          String _delimiter = csv.getDelimiter();
+          boolean _notEquals = (!Objects.equal(_delimiter, null));
+          if (_notEquals) {
+            String _delimiter_1 = csv.getDelimiter();
+            String _unescapeHtml = StringEscapeUtils.unescapeHtml(_delimiter_1);
+            delimiter = _unescapeHtml;
+          }
+          String _quoteCharacter = csv.getQuoteCharacter();
+          boolean _notEquals_1 = (!Objects.equal(_quoteCharacter, null));
+          if (_notEquals_1) {
+            String _quoteCharacter_1 = csv.getQuoteCharacter();
+            String _unescapeHtml_1 = StringEscapeUtils.unescapeHtml(_quoteCharacter_1);
+            quote = _unescapeHtml_1;
+          }
+          DataInterchangeFile _fileEndpoint_2 = dataInterchange.getFileEndpoint();
+          this.generateExportConfig(dataInterchange, document, _fileEndpoint_2, delimiter, quote);
+        }
+      }
+      if (!_matched) {
+        if (_fileEndpoint instanceof DataInterchangeFileXML) {
+          _matched=true;
+          cartridges.put("xmlns:ftl", "http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd");
+          DataInterchangeFile _fileEndpoint_1 = dataInterchange.getFileEndpoint();
+          this.generateExportConfig(dataInterchange, document, _fileEndpoint_1, null, null);
+        }
+      }
+      if (!_matched) {
+        if (_fileEndpoint instanceof DataInterchangeFileEDI) {
+          _matched=true;
+        }
+      }
+      Set<String> _keySet = cartridges.keySet();
+      for (final String cdg : _keySet) {
+        Element _documentElement_1 = document.getDocumentElement();
+        String _get = cartridges.get(cdg);
+        _documentElement_1.setAttributeNS("http://www.w3.org/2000/xmlns/", cdg, _get);
+      }
+      DOMSource source = new DOMSource(document);
+      StringResult res = new StringResult();
+      this.transformer.transform(source, res);
+      String _result = res.getResult();
+      body = _result;
+      StringConcatenation _builder = new StringConcatenation();
+      String _name = dataInterchange.getName();
+      _builder.append(_name, "");
+      _builder.append("-");
+      String _string = WorkerThreadRunnable.Direction.EXPORT.toString();
+      String _lowerCase = _string.toLowerCase();
+      _builder.append(_lowerCase, "");
+      _builder.append(".xml");
+      fsa.generateFile(_builder.toString(), DSLOutputConfigurationProvider.SMOOKS_OUTPUT_ONCE, body);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  public void generateImportConfigStub(final IFileSystemAccess fsa, final DataInterchange dataInterchange) {
+    try {
+      String body = "";
+      this.dbf.setNamespaceAware(true);
+      DocumentBuilder db = this.dbf.newDocumentBuilder();
+      DOMImplementation domImpl = db.getDOMImplementation();
+      Document document = domImpl.createDocument("http://www.milyn.org/xsd/smooks-1.1.xsd", "smooks-resource-list", null);
+      ArrayList<LEntityAttribute> fieldList = CollectionLiterals.<LEntityAttribute>newArrayList();
+      HashMap<String, String> cartridges = CollectionLiterals.<String, String>newHashMap();
+      HashMap<String, ParameterValue> parameters = CollectionLiterals.<String, ParameterValue>newHashMap();
+      cartridges.put("xmlns:jb", "http://www.milyn.org/xsd/smooks/javabean-1.2.xsd");
+      cartridges.put("xmlns:dao", "http://www.milyn.org/xsd/smooks/persistence-1.2.xsd");
+      ParameterValue pval = new ParameterValue();
+      pval.value = "SAX";
+      parameters.put("stream.filter.type", pval);
+      ParameterValue _parameterValue = new ParameterValue();
+      pval = _parameterValue;
+      pval.value = "false";
+      parameters.put("smooks.visitors.sort", pval);
+      DataInterchangeFile _fileEndpoint = dataInterchange.getFileEndpoint();
+      boolean _matched = false;
+      if (!_matched) {
+        if (_fileEndpoint instanceof DataInterchangeFileXML) {
+          _matched=true;
+          ParameterValue _parameterValue_1 = new ParameterValue();
+          pval = _parameterValue_1;
+          pval.value = "input.xml";
+          parameters.put("inputType", pval);
+          ParameterValue _parameterValue_2 = new ParameterValue();
+          pval = _parameterValue_2;
+          DataInterchangeFile _fileEndpoint_1 = dataInterchange.getFileEndpoint();
+          String _fileURL = ((DataInterchangeFileXML) _fileEndpoint_1).getFileURL();
+          pval.value = _fileURL;
+          pval.modifiers.put("type", "input.type.actived");
+          parameters.put("input.xml", pval);
+          DataInterchangeFile _fileEndpoint_2 = dataInterchange.getFileEndpoint();
+          this.generateImportConfig(dataInterchange, fieldList, document, _fileEndpoint_2);
+          DataInterchangeFile _fileEndpoint_3 = dataInterchange.getFileEndpoint();
+          this.input(((DataInterchangeFileXML) _fileEndpoint_3), dataInterchange, document);
+        }
+      }
+      if (!_matched) {
+        if (_fileEndpoint instanceof DataInterchangeFileCSV) {
+          _matched=true;
+          cartridges.put("xmlns:csv", "http://www.milyn.org/xsd/smooks/csv-1.2.xsd");
+          ParameterValue _parameterValue_1 = new ParameterValue();
+          pval = _parameterValue_1;
+          pval.value = "input.csv";
+          parameters.put("inputType", pval);
+          ParameterValue _parameterValue_2 = new ParameterValue();
+          pval = _parameterValue_2;
+          DataInterchangeFile _fileEndpoint_1 = dataInterchange.getFileEndpoint();
+          String _fileURL = ((DataInterchangeFileCSV) _fileEndpoint_1).getFileURL();
+          pval.value = _fileURL;
+          pval.modifiers.put("type", "input.type.actived");
+          parameters.put("input.csv", pval);
+          DataInterchangeFile _fileEndpoint_2 = dataInterchange.getFileEndpoint();
+          this.generateImportConfig(dataInterchange, fieldList, document, _fileEndpoint_2);
+          DataInterchangeFile _fileEndpoint_3 = dataInterchange.getFileEndpoint();
+          this.input(((DataInterchangeFileCSV) _fileEndpoint_3), dataInterchange, fieldList, document);
+        }
+      }
+      if (!_matched) {
+        if (_fileEndpoint instanceof DataInterchangeFileEDI) {
+          _matched=true;
+          cartridges.put("xmlns:edi", "http://www.milyn.org/xsd/smooks/edi-1.2.xsd");
+          ParameterValue _parameterValue_1 = new ParameterValue();
+          pval = _parameterValue_1;
+          pval.value = "input.edi";
+          parameters.put("inputType", pval);
+          ParameterValue _parameterValue_2 = new ParameterValue();
+          pval = _parameterValue_2;
+          DataInterchangeFile _fileEndpoint_1 = dataInterchange.getFileEndpoint();
+          String _fileURL = ((DataInterchangeFileEDI) _fileEndpoint_1).getFileURL();
+          pval.value = _fileURL;
+          pval.modifiers.put("type", "input.type.actived");
+          parameters.put("input.edi", pval);
+          DataInterchangeFile _fileEndpoint_2 = dataInterchange.getFileEndpoint();
+          this.generateImportConfig(dataInterchange, fieldList, document, _fileEndpoint_2);
+          DataInterchangeFile _fileEndpoint_3 = dataInterchange.getFileEndpoint();
+          this.input(((DataInterchangeFileEDI) _fileEndpoint_3), dataInterchange, document);
+        }
+      }
+      Set<String> _keySet = cartridges.keySet();
+      for (final String cdg : _keySet) {
+        Element _documentElement = document.getDocumentElement();
+        String _get = cartridges.get(cdg);
+        _documentElement.setAttributeNS("http://www.w3.org/2000/xmlns/", cdg, _get);
+      }
+      Element params = document.createElement("params");
+      Set<String> _keySet_1 = parameters.keySet();
+      for (final String para : _keySet_1) {
+        {
+          Element pEl = document.createElement("param");
+          Attr name = document.createAttribute("name");
+          name.setTextContent(para);
+          pEl.setAttributeNode(name);
+          ParameterValue _get_1 = parameters.get(para);
+          Text value = document.createTextNode(_get_1.value);
+          pEl.appendChild(value);
+          ParameterValue _get_2 = parameters.get(para);
+          Set<String> _keySet_2 = _get_2.modifiers.keySet();
+          for (final String mod : _keySet_2) {
+            {
+              Attr pAt = document.createAttribute(mod);
+              ParameterValue _get_3 = parameters.get(para);
+              String _get_4 = _get_3.modifiers.get(mod);
+              pAt.setTextContent(_get_4);
+              pEl.setAttributeNode(pAt);
+            }
+          }
+          params.appendChild(pEl);
+        }
+      }
+      Element _documentElement_1 = document.getDocumentElement();
+      _documentElement_1.appendChild(params);
+      DOMSource source = new DOMSource(document);
+      StringResult res = new StringResult();
+      this.transformer.transform(source, res);
+      String _result = res.getResult();
+      body = _result;
+      StringConcatenation _builder = new StringConcatenation();
+      String _name = dataInterchange.getName();
+      _builder.append(_name, "");
+      _builder.append("-");
+      String _string = WorkerThreadRunnable.Direction.IMPORT.toString();
+      String _lowerCase = _string.toLowerCase();
+      _builder.append(_lowerCase, "");
+      _builder.append(".xml");
+      fsa.generateFile(_builder.toString(), DSLOutputConfigurationProvider.SMOOKS_OUTPUT_ONCE, body);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  public Object input(final DataInterchangeFileXML xml, final DataInterchange interchange, final Document doc) {
+    return null;
+  }
+  
+  public Node input(final DataInterchangeFileCSV csv, final DataInterchange interchange, final List<LEntityAttribute> fieldList, final Document doc) {
+    Node _xblockexpression = null;
+    {
+      Element reader = doc.createElement("csv:reader");
+      Attr fields = doc.createAttribute("fields");
+      ArrayList<String> fldList = CollectionLiterals.<String>newArrayList();
+      for (final LEntityAttribute f : fieldList) {
+        String _name = this._modelExtensions.toName(f);
+        fldList.add(_name);
+      }
+      String _join = IterableExtensions.join(fldList, ",");
+      fields.setTextContent(_join);
+      reader.setAttributeNode(fields);
+      String _delimiter = csv.getDelimiter();
+      boolean _notEquals = (!Objects.equal(_delimiter, null));
+      if (_notEquals) {
+        Attr sep = doc.createAttribute("separator");
+        String _delimiter_1 = csv.getDelimiter();
+        sep.setTextContent(_delimiter_1);
+        reader.setAttributeNode(sep);
+      }
+      String _quoteCharacter = csv.getQuoteCharacter();
+      boolean _notEquals_1 = (!Objects.equal(_quoteCharacter, null));
+      if (_notEquals_1) {
+        Attr quote = doc.createAttribute("quote");
+        String _quoteCharacter_1 = csv.getQuoteCharacter();
+        String _unescapeXml = StringEscapeUtils.unescapeXml(_quoteCharacter_1);
+        quote.setTextContent(_unescapeXml);
+        reader.setAttributeNode(quote);
+      }
+      Attr indent = doc.createAttribute("indent");
+      boolean _isIndent = csv.isIndent();
+      boolean _booleanValue = Boolean.valueOf(_isIndent).booleanValue();
+      String _string = Boolean.valueOf(_booleanValue).toString();
+      indent.setTextContent(_string);
+      reader.setAttributeNode(indent);
+      Attr skip = doc.createAttribute("skipLines");
+      int _skipLines = csv.getSkipLines();
+      String _string_1 = Integer.valueOf(_skipLines).toString();
+      skip.setTextContent(_string_1);
+      reader.setAttributeNode(skip);
+      Element _documentElement = doc.getDocumentElement();
+      _xblockexpression = _documentElement.appendChild(reader);
+    }
+    return _xblockexpression;
+  }
+  
+  public Node input(final DataInterchangeFileEDI edi, final DataInterchange interchange, final Document doc) {
+    Node _xblockexpression = null;
+    {
+      Element reader = doc.createElement("edi:reader");
+      Attr mapping = doc.createAttribute("mappingModel");
+      String _mappingModel = edi.getMappingModel();
+      mapping.setTextContent(_mappingModel);
+      reader.setAttributeNode(mapping);
+      Attr validate = doc.createAttribute("validate");
+      boolean _isValidate = edi.isValidate();
+      boolean _booleanValue = Boolean.valueOf(_isValidate).booleanValue();
+      String _string = Boolean.valueOf(_booleanValue).toString();
+      validate.setTextContent(_string);
+      reader.setAttributeNode(validate);
+      Element _documentElement = doc.getDocumentElement();
+      _xblockexpression = _documentElement.appendChild(reader);
+    }
+    return _xblockexpression;
+  }
+  
+  public Node createFreemarker(final Document doc, final String templateString) {
+    Node _xblockexpression = null;
+    {
+      Element freemarker = doc.createElement("ftl:freemarker");
+      Attr apply = doc.createAttribute("applyOnElement");
+      apply.setTextContent("#document");
+      freemarker.setAttributeNode(apply);
+      Element _documentElement = doc.getDocumentElement();
+      _documentElement.appendChild(freemarker);
+      Element template = doc.createElement("ftl:template");
+      String _replaceAll = templateString.replaceAll("\r", "");
+      CDATASection tplName = doc.createCDATASection(_replaceAll);
+      template.appendChild(tplName);
+      _xblockexpression = freemarker.appendChild(template);
+    }
+    return _xblockexpression;
+  }
+  
+  public Element createBean(final Document doc, final String beanIdName, final String className, final String elementMap, final boolean isList) {
+    Element bean = doc.createElement("jb:bean");
+    Element _documentElement = doc.getDocumentElement();
+    _documentElement.appendChild(bean);
+    Attr beanId = doc.createAttribute("beanId");
+    beanId.setTextContent(beanIdName);
+    bean.setAttributeNode(beanId);
+    Attr clazz = doc.createAttribute("class");
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(className, "");
+    {
+      if (isList) {
+        _builder.append("[]");
+      }
+    }
+    clazz.setTextContent(_builder.toString());
+    bean.setAttributeNode(clazz);
+    boolean _notEquals = (!Objects.equal(elementMap, null));
+    if (_notEquals) {
+      Attr create = doc.createAttribute("createOnElement");
+      create.setTextContent(elementMap);
+      bean.setAttributeNode(create);
+    }
+    return bean;
+  }
+  
+  public Element createProperty(final Document doc, final Element parent, final String propertyName, final String decoderName, final IDataMart.EType type) {
+    Element value = null;
+    Node node = parent.getFirstChild();
+    while (((!Objects.equal(node, null)) && ((!node.getNodeName().equals("jb:value")) || (!node.getAttributes().getNamedItem("property").getNodeValue().equals(propertyName))))) {
+      Node _nextSibling = node.getNextSibling();
+      node = _nextSibling;
+    }
+    boolean _equals = Objects.equal(node, null);
+    if (_equals) {
+      Element _createElement = doc.createElement("jb:value");
+      value = _createElement;
+      parent.appendChild(value);
+    } else {
+      value = ((Element) node);
+    }
+    Attr property = doc.createAttribute("property");
+    property.setTextContent(propertyName);
+    value.setAttributeNode(property);
+    boolean _notEquals = (!Objects.equal(decoderName, null));
+    if (_notEquals) {
+      Attr decoder = doc.createAttribute("decoder");
+      decoder.setTextContent(decoderName);
+      value.setAttributeNode(decoder);
+    }
+    boolean _equals_1 = Objects.equal(type, IDataMart.EType.DATE);
+    if (_equals_1) {
+      Attr defaultValue = doc.createAttribute("default");
+      defaultValue.setTextContent("null");
+      value.setAttributeNode(defaultValue);
+    }
+    return value;
+  }
+  
+  public Attr addMapping(final Document doc, final Element parent, final String propertyName, final String dataName) {
+    Attr _xblockexpression = null;
+    {
+      String elementMap = "";
+      NamedNodeMap _attributes = parent.getAttributes();
+      Node attr = _attributes.getNamedItem("createOnElement");
+      boolean _notEquals = (!Objects.equal(attr, null));
+      if (_notEquals) {
+        String _textContent = attr.getTextContent();
+        elementMap = _textContent;
+      }
+      Element value = null;
+      Node node = parent.getFirstChild();
+      while ((((!Objects.equal(node, null)) && node.hasAttributes()) && ((!node.getNodeName().equals("jb:value")) || (!node.getAttributes().getNamedItem("property").getNodeValue().equals(propertyName))))) {
+        Node _nextSibling = node.getNextSibling();
+        node = _nextSibling;
+      }
+      boolean _equals = Objects.equal(node, null);
+      if (_equals) {
+        Element _createElement = doc.createElement("jb:value");
+        value = _createElement;
+        parent.appendChild(value);
+      } else {
+        value = ((Element) node);
+      }
+      Attr data = doc.createAttribute("data");
+      data.setTextContent(((elementMap + "/") + dataName));
+      _xblockexpression = value.setAttributeNode(data);
+    }
+    return _xblockexpression;
+  }
+  
+  public Element createDecodeParam(final Document doc, final Element parent, final String paramName, final String paramValue) {
+    Element param = doc.createElement("jb:decodeParam");
+    parent.appendChild(param);
+    Attr name = doc.createAttribute("name");
+    name.setTextContent(paramName);
+    param.setAttributeNode(name);
+    Text form = doc.createTextNode(paramValue);
+    param.appendChild(form);
+    return param;
+  }
+  
+  public Element createWiring(final Document doc, final Element parent, final String beanIdRefName, final String propertyName, final String setterName) {
+    Element value = doc.createElement("jb:wiring");
+    parent.appendChild(value);
+    Attr beanIdRef = doc.createAttribute("beanIdRef");
+    beanIdRef.setTextContent(beanIdRefName);
+    value.setAttributeNode(beanIdRef);
+    boolean _notEquals = (!Objects.equal(propertyName, null));
+    if (_notEquals) {
+      Attr property = doc.createAttribute("property");
+      property.setTextContent(propertyName);
+      value.setAttributeNode(property);
+    }
+    boolean _notEquals_1 = (!Objects.equal(setterName, null));
+    if (_notEquals_1) {
+      Attr setter = doc.createAttribute("setterMethod");
+      setter.setTextContent(setterName);
+      value.setAttributeNode(setter);
+    }
+    return value;
+  }
+  
+  public Element createExpression(final Document doc, final Element parent, final String propertyName, final String propertyValue) {
+    Element expression = doc.createElement("jb:expression");
+    parent.appendChild(expression);
+    Attr property = doc.createAttribute("property");
+    property.setTextContent(propertyName);
+    expression.setAttributeNode(property);
+    Text propNode = doc.createTextNode(propertyValue);
+    expression.appendChild(propNode);
+    return expression;
+  }
+  
+  public Element createDaoLocator(final Document doc, final Element parent, final String beanIdName, final String elementMap, final boolean allowNoResult, final boolean allowNonuniqueResult) {
+    Element locator = doc.createElement("dao:locator");
+    boolean _equals = Objects.equal(parent, null);
+    if (_equals) {
+      Element _documentElement = doc.getDocumentElement();
+      _documentElement.appendChild(locator);
+    } else {
+      parent.appendChild(locator);
+    }
+    Attr beanId = doc.createAttribute("beanId");
+    beanId.setTextContent(beanIdName);
+    locator.setAttributeNode(beanId);
+    boolean _notEquals = (!Objects.equal(elementMap, null));
+    if (_notEquals) {
+      Attr lookupOnElement = doc.createAttribute("lookupOnElement");
+      lookupOnElement.setTextContent(elementMap);
+      locator.setAttributeNode(lookupOnElement);
+    }
+    if ((!allowNoResult)) {
+      Attr onNoResult = doc.createAttribute("onNoResult");
+      onNoResult.setTextContent("EXCEPTION");
+      locator.setAttributeNode(onNoResult);
+    }
+    Attr uniqueResult = doc.createAttribute("uniqueResult");
+    boolean _booleanValue = Boolean.valueOf((!allowNonuniqueResult)).booleanValue();
+    String _string = Boolean.valueOf(_booleanValue).toString();
+    uniqueResult.setTextContent(_string);
+    locator.setAttributeNode(uniqueResult);
+    return locator;
+  }
+  
+  public Element createDaoQuery(final Document doc, final Element parent, final String query) {
+    Element daoQuery = doc.createElement("dao:query");
+    parent.appendChild(daoQuery);
+    Text queryText = doc.createTextNode(query);
+    daoQuery.appendChild(queryText);
+    return daoQuery;
+  }
+  
+  public Element createDaoParam(final Document doc, final Element parent, final String paramName, final String paramValue, final String elementMap, final String dataMap) {
+    Element daoParams = null;
+    Node node = parent.getFirstChild();
+    while (((!Objects.equal(node, null)) && (!node.getNodeName().equals("dao:params")))) {
+      Node _nextSibling = node.getNextSibling();
+      node = _nextSibling;
+    }
+    boolean _equals = Objects.equal(node, null);
+    if (_equals) {
+      Element _createElement = doc.createElement("dao:params");
+      daoParams = _createElement;
+      parent.appendChild(daoParams);
+    } else {
+      daoParams = ((Element) node);
+    }
+    Element daoValue = doc.createElement("dao:value");
+    daoParams.appendChild(daoValue);
+    Attr param = doc.createAttribute("name");
+    param.setTextContent(paramName);
+    daoValue.setAttributeNode(param);
+    Attr decoder = doc.createAttribute("decoder");
+    decoder.setTextContent(paramValue);
+    daoValue.setAttributeNode(decoder);
+    boolean _notEquals = (!Objects.equal(dataMap, null));
+    if (_notEquals) {
+      Attr data = doc.createAttribute("data");
+      data.setTextContent(((elementMap + "/") + dataMap));
+      daoValue.setAttributeNode(data);
+    }
+    return daoParams;
+  }
+  
+  public Node generateExportConfig(final DataInterchange dataInterchange, final Document doc, final DataInterchangeFile endPoint, final String delimiter, final String quote) {
+    Node _xblockexpression = null;
+    {
+      HashMap<String, String> substitutionMap = CollectionLiterals.<String, String>newHashMap();
+      int substitutionCount = 0;
+      ArrayList<LEntityAttribute> fieldList = CollectionLiterals.<LEntityAttribute>newArrayList();
+      String rootEntityName = null;
+      Document ftlDocument = null;
+      Element bean = null;
+      String vector = "vector";
+      EList<DataInterchangeBean> _path = dataInterchange.getPath();
+      for (final DataInterchangeBean path : _path) {
+        {
+          boolean _equals = Objects.equal(rootEntityName, null);
+          if (_equals) {
+            LEntity _entity = path.getEntity();
+            String _name = _entity.getName();
+            String _string = _name.toString();
+            rootEntityName = _string;
+          }
+          DataInterchangeFile _fileEndpoint = dataInterchange.getFileEndpoint();
+          if ((_fileEndpoint instanceof DataInterchangeFileXML)) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("list");
+            _builder.append(substitutionCount, "");
+            String currentKey = _builder.toString();
+            boolean _equals_1 = Objects.equal(ftlDocument, null);
+            if (_equals_1) {
+              Document _createDocument = this.domImpl.createDocument(null, "vector", null);
+              ftlDocument = _createDocument;
+            }
+            StringConcatenation _builder_1 = new StringConcatenation();
+            _builder_1.append(vector, "");
+            _builder_1.append(" as ");
+            LEntity _entity_1 = path.getEntity();
+            String _name_1 = _entity_1.getName();
+            _builder_1.append(_name_1, "");
+            substitutionMap.put(currentKey, _builder_1.toString());
+            LEntity _entity_2 = path.getEntity();
+            EList<DataInterchangeFormat> _format = path.getFormat();
+            Element _createXmlBean = this.createXmlBean(ftlDocument, bean, _entity_2, _format, currentKey);
+            bean = _createXmlBean;
+            substitutionCount = (substitutionCount + 1);
+          }
+          LEntity _entity_3 = path.getEntity();
+          EList<LEntityFeature> _features = _entity_3.getFeatures();
+          for (final LEntityFeature f : _features) {
+            {
+              boolean _and = false;
+              if (!(f instanceof LAttribute)) {
+                _and = false;
+              } else {
+                boolean _isToMany = this._modelExtensions.isToMany(f);
+                boolean _not = (!_isToMany);
+                _and = _not;
+              }
+              if (_and) {
+                boolean _and_1 = false;
+                String _name_2 = this._modelExtensions.toName(((LEntityFeature) f));
+                boolean _equals_2 = "disposed".equals(_name_2);
+                boolean _not_1 = (!_equals_2);
+                if (!_not_1) {
+                  _and_1 = false;
+                } else {
+                  String _name_3 = this._modelExtensions.toName(((LEntityFeature) f));
+                  boolean _equals_3 = "id".equals(_name_3);
+                  boolean _not_2 = (!_equals_3);
+                  _and_1 = _not_2;
+                }
+                if (_and_1) {
+                  fieldList.add(((LEntityAttribute) f));
+                }
+              }
+              boolean _and_2 = false;
+              if (!(f instanceof LReference)) {
+                _and_2 = false;
+              } else {
+                boolean _isToMany_1 = this._modelExtensions.isToMany(f);
+                _and_2 = _isToMany_1;
+              }
+              if (_and_2) {
+                EList<DataInterchangeBean> _path_1 = dataInterchange.getPath();
+                Iterator<DataInterchangeBean> iter = _path_1.iterator();
+                DataInterchangeBean next = iter.next();
+                while ((iter.hasNext() && (!this._modelExtensions.toName(next.getEntity()).equals(this._modelExtensions.toName(path.getEntity()))))) {
+                  DataInterchangeBean _next = iter.next();
+                  next = _next;
+                }
+                while (iter.hasNext()) {
+                  {
+                    DataInterchangeBean _next = iter.next();
+                    next = _next;
+                    boolean _and_3 = false;
+                    boolean _notEquals = (!Objects.equal(next, null));
+                    if (!_notEquals) {
+                      _and_3 = false;
+                    } else {
+                      LEntity _entity_4 = next.getEntity();
+                      String _name_4 = this._modelExtensions.toName(_entity_4);
+                      LType _type = this._modelExtensions.type(f);
+                      String _name_5 = this._modelExtensions.toName(((LEntity) _type));
+                      boolean _equals_4 = _name_4.equals(_name_5);
+                      _and_3 = _equals_4;
+                    }
+                    if (_and_3) {
+                      StringConcatenation _builder_2 = new StringConcatenation();
+                      LEntity _entity_5 = path.getEntity();
+                      String _name_6 = _entity_5.getName();
+                      _builder_2.append(_name_6, "");
+                      _builder_2.append(".");
+                      String _name_7 = ((LEntityFeature) f).getName();
+                      _builder_2.append(_name_7, "");
+                      vector = _builder_2.toString();
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+      if ((endPoint instanceof DataInterchangeFileCSV)) {
+        EList<DataInterchangeBean> _path_1 = dataInterchange.getPath();
+        String _createCsvTemplate = this.createCsvTemplate(rootEntityName, fieldList, delimiter, quote, _path_1);
+        this.createFreemarker(doc, _createCsvTemplate);
+      }
+      Node _xifexpression = null;
+      if ((endPoint instanceof DataInterchangeFileXML)) {
+        String _createXmlTemplate = this.createXmlTemplate(ftlDocument, substitutionMap);
+        _xifexpression = this.createFreemarker(doc, _createXmlTemplate);
+      }
+      _xblockexpression = _xifexpression;
+    }
+    return _xblockexpression;
+  }
+  
+  public void generateImportConfig(final DataInterchange dataInterchange, final List<LEntityAttribute> fieldList, final Document doc, final DataInterchangeFile endPoint) {
+    String autoMapping = "";
+    if ((endPoint instanceof DataInterchangeFileCSV)) {
+      autoMapping = "/csv-set";
+    } else {
+      if ((endPoint instanceof DataInterchangeFileXML)) {
+        autoMapping = "vector";
+      }
+    }
+    EList<DataInterchangeBean> _path = dataInterchange.getPath();
+    for (final DataInterchangeBean path : _path) {
+      {
+        String map = "";
+        String _elementMap = path.getElementMap();
+        boolean _equals = Objects.equal(_elementMap, null);
+        if (_equals) {
+          map = autoMapping;
+        } else {
+          String _elementMap_1 = path.getElementMap();
+          map = _elementMap_1;
+        }
+        Element bean = null;
+        boolean _isRecordList = path.isRecordList();
+        if (_isRecordList) {
+          LEntity _entity = path.getEntity();
+          String _name = this._modelExtensions.toName(_entity);
+          String _plus = (_name + "List");
+          LEntity _entity_1 = path.getEntity();
+          QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_1);
+          String _string = _fullyQualifiedName.toString();
+          Element rootBean = this.createBean(doc, _plus, _string, map, true);
+          LEntity _entity_2 = path.getEntity();
+          String _name_1 = this._modelExtensions.toName(_entity_2);
+          this.createWiring(doc, rootBean, _name_1, null, null);
+          if ((endPoint instanceof DataInterchangeFileCSV)) {
+            autoMapping = (autoMapping + "/csv-record");
+          } else {
+            if ((endPoint instanceof DataInterchangeFileXML)) {
+              LEntity _entity_3 = path.getEntity();
+              String _name_2 = this._modelExtensions.toName(_entity_3);
+              String _plus_1 = ((autoMapping + "/") + _name_2);
+              autoMapping = _plus_1;
+            }
+          }
+          String _elementMap_2 = path.getElementMap();
+          boolean _equals_1 = Objects.equal(_elementMap_2, null);
+          if (_equals_1) {
+            map = autoMapping;
+          } else {
+            String _elementMap_3 = path.getElementMap();
+            map = _elementMap_3;
+          }
+          LEntity _entity_4 = path.getEntity();
+          String _name_3 = this._modelExtensions.toName(_entity_4);
+          LEntity _entity_5 = path.getEntity();
+          QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_5);
+          String _string_1 = _fullyQualifiedName_1.toString();
+          Element _createBean = this.createBean(doc, _name_3, _string_1, map, false);
+          bean = _createBean;
+        } else {
+          if ((endPoint instanceof DataInterchangeFileXML)) {
+            LEntity _entity_6 = path.getEntity();
+            String _name_4 = this._modelExtensions.toName(_entity_6);
+            String _plus_2 = ((autoMapping + "/") + _name_4);
+            autoMapping = _plus_2;
+          }
+          String _elementMap_4 = path.getElementMap();
+          boolean _equals_2 = Objects.equal(_elementMap_4, null);
+          if (_equals_2) {
+            map = autoMapping;
+          } else {
+            String _elementMap_5 = path.getElementMap();
+            map = _elementMap_5;
+          }
+          LEntity _entity_7 = path.getEntity();
+          String _name_5 = this._modelExtensions.toName(_entity_7);
+          LEntity _entity_8 = path.getEntity();
+          QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(_entity_8);
+          String _string_2 = _fullyQualifiedName_2.toString();
+          Element _createBean_1 = this.createBean(doc, _name_5, _string_2, map, false);
+          bean = _createBean_1;
+        }
+        boolean mappingFound = false;
+        LEntity _entity_9 = path.getEntity();
+        EList<LEntityFeature> _features = _entity_9.getFeatures();
+        for (final LEntityFeature f : _features) {
+          boolean _matched = false;
+          if (!_matched) {
+            if (f instanceof LAttribute) {
+              _matched=true;
+              boolean _isToMany = this._modelExtensions.isToMany(f);
+              boolean _not = (!_isToMany);
+              if (_not) {
+                boolean _and = false;
+                String _name_6 = this._modelExtensions.toName(((LEntityFeature) f));
+                boolean _equals_3 = "disposed".equals(_name_6);
+                boolean _not_1 = (!_equals_3);
+                if (!_not_1) {
+                  _and = false;
+                } else {
+                  boolean _and_1 = false;
+                  String _name_7 = this._modelExtensions.toName(((LEntityFeature) f));
+                  boolean _equals_4 = "id".equals(_name_7);
+                  boolean _not_2 = (!_equals_4);
+                  if (!_not_2) {
+                    _and_1 = false;
+                  } else {
+                    boolean _or = false;
+                    boolean _isMarkLatest = path.isMarkLatest();
+                    boolean _not_3 = (!_isMarkLatest);
+                    if (_not_3) {
+                      _or = true;
+                    } else {
+                      LEntityAttribute _latestProperty = path.getLatestProperty();
+                      String _name_8 = this._modelExtensions.toName(_latestProperty);
+                      String _name_9 = this._modelExtensions.toName(((LEntityFeature) f));
+                      boolean _equals_5 = _name_8.equals(_name_9);
+                      boolean _not_4 = (!_equals_5);
+                      _or = _not_4;
+                    }
+                    _and_1 = _or;
+                  }
+                  _and = _and_1;
+                }
+                if (_and) {
+                  boolean _or_1 = false;
+                  boolean _isRecordList_1 = path.isRecordList();
+                  if (_isRecordList_1) {
+                    _or_1 = true;
+                  } else {
+                    boolean _isRecordElement = path.isRecordElement();
+                    _or_1 = _isRecordElement;
+                  }
+                  if (_or_1) {
+                    fieldList.add(((LEntityAttribute) f));
+                  }
+                  boolean expressionFound = false;
+                  EList<DataInterchangeExpression> _expression = path.getExpression();
+                  for (final DataInterchangeExpression expr : _expression) {
+                    boolean _matched_1 = false;
+                    if (!_matched_1) {
+                      if (expr instanceof DataInterchangeEntityExpression) {
+                        _matched_1=true;
+                        String _name_10 = this._modelExtensions.toName(((LEntityFeature) f));
+                        LEntityAttribute _targetProperty = ((DataInterchangeEntityExpression) expr).getTargetProperty();
+                        String _name_11 = this._modelExtensions.toName(_targetProperty);
+                        boolean _equals_6 = _name_10.equals(_name_11);
+                        if (_equals_6) {
+                          String _name_12 = this._modelExtensions.toName(((LEntityFeature) f));
+                          LEntity _entity_10 = ((DataInterchangeEntityExpression) expr).getEntity();
+                          String _name_13 = this._modelExtensions.toName(_entity_10);
+                          String _plus_3 = (_name_13 + ".");
+                          LEntityAttribute _property = ((DataInterchangeEntityExpression) expr).getProperty();
+                          String _name_14 = this._modelExtensions.toName(_property);
+                          String _plus_4 = (_plus_3 + _name_14);
+                          this.createExpression(doc, bean, _name_12, _plus_4);
+                          expressionFound = true;
+                        }
+                      }
+                    }
+                    if (!_matched_1) {
+                      if (expr instanceof DataInterchangePredefinedExpression) {
+                        _matched_1=true;
+                        String _name_10 = this._modelExtensions.toName(((LEntityFeature) f));
+                        LEntityAttribute _targetProperty = ((DataInterchangePredefinedExpression) expr).getTargetProperty();
+                        String _name_11 = this._modelExtensions.toName(_targetProperty);
+                        boolean _equals_6 = _name_10.equals(_name_11);
+                        if (_equals_6) {
+                          PredefinedBeanEnum _bean = ((DataInterchangePredefinedExpression) expr).getBean();
+                          String _literal = _bean.getLiteral();
+                          boolean _equals_7 = "UUID".equals(_literal);
+                          if (_equals_7) {
+                            String _name_12 = this._modelExtensions.toName(((LEntityFeature) f));
+                            PredefinedBeanTypeEnum _beanType = ((DataInterchangePredefinedExpression) expr).getBeanType();
+                            String _name_13 = _beanType.getName();
+                            String _plus_3 = ("PUUID." + _name_13);
+                            this.createExpression(doc, bean, _name_12, _plus_3);
+                          } else {
+                            String _name_14 = this._modelExtensions.toName(((LEntityFeature) f));
+                            PredefinedBeanEnum _bean_1 = ((DataInterchangePredefinedExpression) expr).getBean();
+                            String _name_15 = _bean_1.getName();
+                            String _plus_4 = ("PTIME." + _name_15);
+                            PredefinedBeanTypeEnum _beanType_1 = ((DataInterchangePredefinedExpression) expr).getBeanType();
+                            String _name_16 = _beanType_1.getName();
+                            String _plus_5 = (_plus_4 + _name_16);
+                            this.createExpression(doc, bean, _name_14, _plus_5);
+                          }
+                          expressionFound = true;
+                        }
+                      }
+                    }
+                  }
+                  boolean formatFound = false;
+                  EList<DataInterchangeFormat> _format = path.getFormat();
+                  for (final DataInterchangeFormat format : _format) {
+                    String _name_10 = this._modelExtensions.toName(((LEntityFeature) f));
+                    LEntityAttribute _targetProperty = format.getTargetProperty();
+                    String _name_11 = this._modelExtensions.toName(_targetProperty);
+                    boolean _equals_6 = _name_10.equals(_name_11);
+                    if (_equals_6) {
+                      String _name_12 = this._modelExtensions.toName(((LEntityFeature) f));
+                      String _decoder = this.decoder(((LEntityFeature) f));
+                      IDataMart.EType _basicType = this.dtType.getBasicType(((LEntityAttribute) f));
+                      Element value = this.createProperty(doc, bean, _name_12, _decoder, _basicType);
+                      String _format_1 = format.getFormat();
+                      boolean _notEquals = (!Objects.equal(_format_1, null));
+                      if (_notEquals) {
+                        String _format_2 = format.getFormat();
+                        this.createDecodeParam(doc, value, "format", _format_2);
+                        String _locale = format.getLocale();
+                        boolean _notEquals_1 = (!Objects.equal(_locale, null));
+                        if (_notEquals_1) {
+                          String _locale_1 = format.getLocale();
+                          String[] _split = _locale_1.split("_");
+                          String _get = _split[0];
+                          this.createDecodeParam(doc, value, "locale-language", _get);
+                          String _locale_2 = format.getLocale();
+                          String[] _split_1 = _locale_2.split("_");
+                          int _size = ((List<String>)Conversions.doWrapArray(_split_1)).size();
+                          boolean _greaterThan = (_size > 1);
+                          if (_greaterThan) {
+                            String _locale_3 = format.getLocale();
+                            String[] _split_2 = _locale_3.split("_");
+                            String _get_1 = _split_2[1];
+                            this.createDecodeParam(doc, value, "locale-country", _get_1);
+                          }
+                        }
+                      }
+                      formatFound = true;
+                    }
+                  }
+                  boolean lookupFound = false;
+                  EList<DataInterchangeLookup> _lookup = path.getLookup();
+                  for (final DataInterchangeLookup lookup : _lookup) {
+                    String _name_13 = this._modelExtensions.toName(((LEntityFeature) f));
+                    LEntityReference _targetProperty_1 = lookup.getTargetProperty();
+                    String _name_14 = this._modelExtensions.toName(_targetProperty_1);
+                    boolean _equals_7 = _name_13.equals(_name_14);
+                    if (_equals_7) {
+                      LScalarType _type = ((LAttribute)f).getType();
+                      String _name_15 = this._modelExtensions.toName(((LEntity) _type));
+                      String _name_16 = ((LReference) f).getName();
+                      Element value_1 = this.createWiring(doc, bean, _name_15, _name_16, null);
+                      LScalarType _type_1 = ((LAttribute)f).getType();
+                      String _name_17 = this._modelExtensions.toName(((LEntity) _type_1));
+                      String _elementMap_6 = lookup.getElementMap();
+                      boolean _isAllowNoResult = lookup.isAllowNoResult();
+                      boolean _isAllowNonuniqueResult = lookup.isAllowNonuniqueResult();
+                      Element locator = this.createDaoLocator(doc, value_1, _name_17, _elementMap_6, _isAllowNoResult, _isAllowNonuniqueResult);
+                      LScalarType _type_2 = ((LAttribute)f).getType();
+                      String _query = this.query(((LEntity) _type_2), lookup);
+                      Element daoQuery = this.createDaoQuery(doc, locator, _query);
+                      LType _type_3 = this._modelExtensions.type(((LEntityFeature) f));
+                      String _name_18 = _type_3.getName();
+                      String _firstUpper = StringExtensions.toFirstUpper(_name_18);
+                      String _elementMap_7 = lookup.getElementMap();
+                      String _dataMap = lookup.getDataMap();
+                      this.createDaoParam(doc, daoQuery, "param", _firstUpper, _elementMap_7, _dataMap);
+                    }
+                  }
+                  if ((((!expressionFound) && (!formatFound)) && (!lookupFound))) {
+                    IDataMart.EType etype = this.dtType.getBasicType(((LEntityAttribute) f));
+                    String _name_19 = this._modelExtensions.toName(((LEntityFeature) f));
+                    String _decoder_1 = this.decoder(((LEntityFeature) f));
+                    Element value_2 = this.createProperty(doc, bean, _name_19, _decoder_1, etype);
+                    boolean _equals_8 = Objects.equal(etype, IDataMart.EType.DATE);
+                    if (_equals_8) {
+                      this.createDecodeParam(doc, value_2, "format", "yyyy-MM-dd");
+                    }
+                  }
+                  EList<DataInterchangeMapping> _mappings = path.getMappings();
+                  for (final DataInterchangeMapping mapping : _mappings) {
+                    String _name_20 = ((LFeature)f).getName();
+                    LEntityAttribute _property = mapping.getProperty();
+                    String _name_21 = _property.getName();
+                    boolean _equals_9 = _name_20.equals(_name_21);
+                    if (_equals_9) {
+                      String _name_22 = this._modelExtensions.toName(((LEntityFeature) f));
+                      String _data = mapping.getData();
+                      this.addMapping(doc, bean, _name_22, _data);
+                      mappingFound = true;
+                    }
+                  }
+                  boolean _and_2 = false;
+                  if (!(!mappingFound)) {
+                    _and_2 = false;
+                  } else {
+                    boolean _isEmpty = fieldList.isEmpty();
+                    boolean _not_5 = (!_isEmpty);
+                    _and_2 = _not_5;
+                  }
+                  if (_and_2) {
+                    boolean _or_2 = false;
+                    boolean _isRecordList_2 = path.isRecordList();
+                    if (_isRecordList_2) {
+                      _or_2 = true;
+                    } else {
+                      boolean _isRecordElement_1 = path.isRecordElement();
+                      _or_2 = _isRecordElement_1;
+                    }
+                    if (_or_2) {
+                      for (final LEntityAttribute fld : fieldList) {
+                        String _name_23 = this._modelExtensions.toName(fld);
+                        String _name_24 = this._modelExtensions.toName(fld);
+                        this.addMapping(doc, bean, _name_23, _name_24);
+                      }
+                    }
+                  }
+                  boolean _and_3 = false;
+                  if (!(!mappingFound)) {
+                    _and_3 = false;
+                  } else {
+                    _and_3 = (endPoint instanceof DataInterchangeFileXML);
+                  }
+                  if (_and_3) {
+                    String _name_25 = this._modelExtensions.toName(((LEntityFeature) f));
+                    String _name_26 = this._modelExtensions.toName(((LEntityFeature) f));
+                    this.addMapping(doc, bean, _name_25, _name_26);
+                  }
+                }
+              }
+            }
+          }
+          if (!_matched) {
+            if (f instanceof LReference) {
+              _matched=true;
+              boolean _isToMany = this._modelExtensions.isToMany(f);
+              if (_isToMany) {
+                EList<DataInterchangeBean> _path_1 = dataInterchange.getPath();
+                Iterator<DataInterchangeBean> iter = _path_1.iterator();
+                DataInterchangeBean next = iter.next();
+                while ((iter.hasNext() && (!this._modelExtensions.toName(next.getEntity()).equals(this._modelExtensions.toName(path.getEntity()))))) {
+                  DataInterchangeBean _next = iter.next();
+                  next = _next;
+                }
+                while (iter.hasNext()) {
+                  {
+                    DataInterchangeBean _next = iter.next();
+                    next = _next;
+                    boolean _and = false;
+                    boolean _notEquals = (!Objects.equal(next, null));
+                    if (!_notEquals) {
+                      _and = false;
+                    } else {
+                      LEntity _entity_10 = next.getEntity();
+                      String _name_6 = this._modelExtensions.toName(_entity_10);
+                      LType _type = this._modelExtensions.type(f);
+                      String _name_7 = this._modelExtensions.toName(((LEntity) _type));
+                      boolean _equals_3 = _name_6.equals(_name_7);
+                      _and = _equals_3;
+                    }
+                    if (_and) {
+                      LType _type_1 = this._modelExtensions.type(f);
+                      String _name_8 = this._modelExtensions.toName(((LEntity) _type_1));
+                      String _name_9 = ((LEntityFeature) f).getName();
+                      JvmOperation _adder = this._entityTypesBuilder.toAdder(((LEntityFeature) f), _name_9);
+                      String _simpleName = _adder.getSimpleName();
+                      this.createWiring(doc, bean, _name_8, null, _simpleName);
+                    }
+                  }
+                }
+              } else {
+                EList<DataInterchangeLookup> _lookup = path.getLookup();
+                for (final DataInterchangeLookup lookup : _lookup) {
+                  LEntityReference _targetProperty = lookup.getTargetProperty();
+                  String _name_6 = this._modelExtensions.toName(_targetProperty);
+                  String _name_7 = ((LReference) f).getName();
+                  boolean _equals_3 = _name_6.equals(_name_7);
+                  if (_equals_3) {
+                    LType _type = this._modelExtensions.type(f);
+                    String _name_8 = this._modelExtensions.toName(((LEntity) _type));
+                    String _name_9 = ((LReference) f).getName();
+                    this.createWiring(doc, bean, _name_8, _name_9, null);
+                    LType _type_1 = this._modelExtensions.type(f);
+                    String _name_10 = this._modelExtensions.toName(((LEntity) _type_1));
+                    String _elementMap_6 = lookup.getElementMap();
+                    boolean _isAllowNoResult = lookup.isAllowNoResult();
+                    boolean _isAllowNonuniqueResult = lookup.isAllowNonuniqueResult();
+                    Element locator = this.createDaoLocator(doc, null, _name_10, _elementMap_6, _isAllowNoResult, _isAllowNonuniqueResult);
+                    LType _type_2 = this._modelExtensions.type(f);
+                    String _query = this.query(((LEntity) _type_2), lookup);
+                    this.createDaoQuery(doc, locator, _query);
+                    LEntityAttribute _queryProperty = lookup.getQueryProperty();
+                    LScalarType _type_3 = _queryProperty.getType();
+                    String _name_11 = _type_3.getName();
+                    String _firstUpper = StringExtensions.toFirstUpper(_name_11);
+                    String _elementMap_7 = lookup.getElementMap();
+                    String _dataMap = lookup.getDataMap();
+                    this.createDaoParam(doc, locator, "param", _firstUpper, _elementMap_7, _dataMap);
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  public Element createXmlBean(final Document doc, final Element parent, final LEntity entity, final EList<DataInterchangeFormat> formats, final String currentKey) {
+    String _name = entity.getName();
+    Element bean = doc.createElement(_name);
+    ProcessingInstruction pi = doc.createProcessingInstruction(currentKey, "");
+    boolean _equals = Objects.equal(parent, null);
+    if (_equals) {
+      Element _documentElement = doc.getDocumentElement();
+      _documentElement.appendChild(pi);
+      Element _documentElement_1 = doc.getDocumentElement();
+      _documentElement_1.appendChild(bean);
+    } else {
+      String _name_1 = entity.getName();
+      Element _createElement = doc.createElement(_name_1);
+      bean = _createElement;
+      parent.appendChild(pi);
+      parent.appendChild(bean);
+    }
+    List<LEntityAttribute> _allAttributes = entity.getAllAttributes();
+    for (final LEntityAttribute p : _allAttributes) {
+      boolean _and = false;
+      String _name_2 = this._modelExtensions.toName(p);
+      boolean _equals_1 = "disposed".equals(_name_2);
+      boolean _not = (!_equals_1);
+      if (!_not) {
+        _and = false;
+      } else {
+        String _name_3 = this._modelExtensions.toName(p);
+        boolean _equals_2 = "id".equals(_name_3);
+        boolean _not_1 = (!_equals_2);
+        _and = _not_1;
+      }
+      if (_and) {
+        DataInterchangeFormat format = ((DataInterchangeFormat) null);
+        for (final DataInterchangeFormat step : formats) {
+          String _name_4 = this._modelExtensions.toName(((LEntityFeature) p));
+          LEntityAttribute _targetProperty = step.getTargetProperty();
+          String _name_5 = this._modelExtensions.toName(_targetProperty);
+          boolean _equals_3 = _name_4.equals(_name_5);
+          if (_equals_3) {
+            String _format = step.getFormat();
+            boolean _notEquals = (!Objects.equal(_format, null));
+            if (_notEquals) {
+              format = step;
+            }
+          }
+        }
+        String _name_6 = this._modelExtensions.toName(p);
+        Element property = doc.createElement(_name_6);
+        String _name_7 = entity.getName();
+        String _encodeFreemarker = this.encodeFreemarker(_name_7, p, format, "");
+        property.setTextContent(_encodeFreemarker);
+        bean.appendChild(property);
+      }
+    }
+    ProcessingInstruction pa = doc.createProcessingInstruction(currentKey, "");
+    boolean _equals_4 = Objects.equal(parent, null);
+    if (_equals_4) {
+      Element _documentElement_2 = doc.getDocumentElement();
+      _documentElement_2.appendChild(pa);
+    } else {
+      parent.appendChild(pa);
+    }
+    return bean;
+  }
+  
+  public String decoder(final LEntityFeature f) {
+    return this.getPrimitiveDataTypeName(((LEntityAttribute) f));
+  }
+  
+  public String getPrimitiveDataTypeName(final LEntityAttribute attribute) {
+    IDataMart.EType eType = this.dtType.getBasicType(attribute);
+    String typeName = null;
+    boolean _equals = Objects.equal(eType, IDataMart.EType.DATE);
+    if (_equals) {
+      typeName = "Date";
+    } else {
+      boolean _and = false;
+      boolean _and_1 = false;
+      LScalarType _type = attribute.getType();
+      boolean _notEquals = (!Objects.equal(_type, null));
+      if (!_notEquals) {
+        _and_1 = false;
+      } else {
+        LScalarType _type_1 = attribute.getType();
+        _and_1 = (_type_1 instanceof LDataType);
+      }
+      if (!_and_1) {
+        _and = false;
+      } else {
+        LScalarType _type_2 = attribute.getType();
+        JvmTypeReference _jvmTypeReference = ((LDataType) _type_2).getJvmTypeReference();
+        boolean _notEquals_1 = (!Objects.equal(_jvmTypeReference, null));
+        _and = _notEquals_1;
+      }
+      if (_and) {
+        LScalarType _type_3 = attribute.getType();
+        JvmTypeReference _jvmTypeReference_1 = ((LDataType) _type_3).getJvmTypeReference();
+        String _simpleName = _jvmTypeReference_1.getSimpleName();
+        typeName = _simpleName;
+      } else {
+        LScalarType _type_4 = attribute.getType();
+        String _name = _type_4.getName();
+        typeName = _name;
+      }
+    }
+    boolean _equals_1 = "int".equals(typeName);
+    if (_equals_1) {
+      typeName = "Integer";
+    }
+    return StringExtensions.toFirstUpper(typeName);
+  }
+  
+  public String createXmlTemplate(final Document doc, final HashMap<String, String> substitutionMap) {
+    try {
+      DOMSource source = new DOMSource(doc);
+      StringResult res = new StringResult();
+      this.transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+      this.transformer.transform(source, res);
+      String output = res.getResult();
+      Set<String> _keySet = substitutionMap.keySet();
+      for (final String l : _keySet) {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("#list ");
+        String _get = substitutionMap.get(l);
+        _builder.append(_get, "");
+        String _replaceFirst = output.replaceFirst(l, _builder.toString());
+        output = _replaceFirst;
+      }
+      Set<String> _keySet_1 = substitutionMap.keySet();
+      for (final String l_1 : _keySet_1) {
+        StringConcatenation _builder_1 = new StringConcatenation();
+        _builder_1.append("/#list");
+        String _replaceFirst_1 = output.replaceFirst(l_1, _builder_1.toString());
+        output = _replaceFirst_1;
+      }
+      String _replace = output.replace("&lt;", "<");
+      String _replace_1 = _replace.replace("&gt;", ">");
+      String _replace_2 = _replace_1.replace("<?", "<");
+      return _replace_2.replace("?>", ">");
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  public String createCsvTemplate(final String rootEntityName, final List<LEntityAttribute> fieldList, final String delimiter, final String quote, final EList<DataInterchangeBean> paths) {
+    ArrayList<String> tmpList = CollectionLiterals.<String>newArrayList();
+    ArrayList<String> fldList = CollectionLiterals.<String>newArrayList();
+    for (final LEntityAttribute field : fieldList) {
+      {
+        String _encodeFreemarker = this.encodeFreemarker(rootEntityName, field, paths, quote);
+        tmpList.add(_encodeFreemarker);
+        String _name = this._modelExtensions.toName(field);
+        fldList.add(_name);
+      }
+    }
+    StringConcatenation _builder = new StringConcatenation();
+    String _join = IterableExtensions.join(fldList, delimiter);
+    _builder.append(_join, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("<#list vector as ");
+    _builder.append(rootEntityName, "");
+    _builder.append(">");
+    _builder.newLineIfNotEmpty();
+    String _join_1 = IterableExtensions.join(tmpList, delimiter);
+    _builder.append(_join_1, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("</#list>");
+    String body = _builder.toString();
+    return body;
+  }
+  
+  public String encodeFreemarker(final String entityName, final LEntityAttribute field, final EList<DataInterchangeBean> paths, final String quote) {
+    DataInterchangeFormat format = ((DataInterchangeFormat) null);
+    EObject _eContainer = field.eContainer();
+    final LEntity entity = ((LEntity) _eContainer);
+    for (final DataInterchangeBean path : paths) {
+      LEntity _entity = path.getEntity();
+      boolean _equals = _entity.equals(entity);
+      if (_equals) {
+        EList<DataInterchangeFormat> _format = path.getFormat();
+        for (final DataInterchangeFormat step : _format) {
+          String _name = this._modelExtensions.toName(field);
+          LEntityAttribute _targetProperty = step.getTargetProperty();
+          String _name_1 = this._modelExtensions.toName(_targetProperty);
+          boolean _equals_1 = _name.equals(_name_1);
+          if (_equals_1) {
+            String _format_1 = step.getFormat();
+            boolean _notEquals = (!Objects.equal(_format_1, null));
+            if (_notEquals) {
+              format = step;
+            }
+          }
+        }
+      }
+    }
+    return this.encodeFreemarker(entityName, field, format, quote);
+  }
+  
+  public String encodeFreemarker(final String entityName, final LEntityAttribute field, final DataInterchangeFormat format, final String quote) {
+    IDataMart.EType etype = this.dtType.getBasicType(field);
+    boolean _equals = Objects.equal(etype, IDataMart.EType.BOOLEAN);
+    if (_equals) {
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append("${(");
+      _builder.append(entityName, "");
+      _builder.append(".");
+      String _name = this._modelExtensions.toName(field);
+      _builder.append(_name, "");
+      _builder.append("?c)!}");
+      return _builder.toString();
+    } else {
+      boolean _notEquals = (!Objects.equal(format, null));
+      if (_notEquals) {
+        StringConcatenation _builder_1 = new StringConcatenation();
+        _builder_1.append("${(");
+        _builder_1.append(entityName, "");
+        _builder_1.append(".");
+        String _name_1 = this._modelExtensions.toName(field);
+        _builder_1.append(_name_1, "");
+        _builder_1.append("?string[\"");
+        String _format = format.getFormat();
+        _builder_1.append(_format, "");
+        _builder_1.append("\"])!}");
+        return _builder_1.toString();
+      } else {
+        boolean _equals_1 = Objects.equal(etype, IDataMart.EType.DATE);
+        if (_equals_1) {
+          StringConcatenation _builder_2 = new StringConcatenation();
+          _builder_2.append("${(");
+          _builder_2.append(entityName, "");
+          _builder_2.append(".");
+          String _name_2 = this._modelExtensions.toName(field);
+          _builder_2.append(_name_2, "");
+          _builder_2.append("?date)!}");
+          return _builder_2.toString();
+        } else {
+          boolean _equals_2 = Objects.equal(etype, IDataMart.EType.STRING);
+          if (_equals_2) {
+            StringConcatenation _builder_3 = new StringConcatenation();
+            _builder_3.append(quote, "");
+            _builder_3.append("${(");
+            _builder_3.append(entityName, "");
+            _builder_3.append(".");
+            String _name_3 = this._modelExtensions.toName(field);
+            _builder_3.append(_name_3, "");
+            _builder_3.append(")!}");
+            _builder_3.append(quote, "");
+            return _builder_3.toString();
+          } else {
+            StringConcatenation _builder_4 = new StringConcatenation();
+            _builder_4.append("${(");
+            _builder_4.append(entityName, "");
+            _builder_4.append(".");
+            String _name_4 = this._modelExtensions.toName(field);
+            _builder_4.append(_name_4, "");
+            _builder_4.append(")!}");
+            return _builder_4.toString();
+          }
+        }
+      }
+    }
+  }
+  
+  /**
+   * create a multistage left joined query to climb up along the one to many relations until import marker
+   */
+  public String query(final LEntity entity, final DataInterchangeLookup lookup) {
+    int aliasCnt = 0;
+    StringConcatenation _builder = new StringConcatenation();
+    String _name = this._modelExtensions.toName(entity);
+    _builder.append(_name, "");
+    _builder.append(" x");
+    _builder.append(aliasCnt, "");
+    String select = _builder.toString();
+    ArrayList<String> joinList = CollectionLiterals.<String>newArrayList();
+    ArrayList<String> whereList = CollectionLiterals.<String>newArrayList();
+    StringConcatenation _builder_1 = new StringConcatenation();
+    _builder_1.append("x");
+    _builder_1.append(aliasCnt, "");
+    _builder_1.append(".");
+    LEntityAttribute _queryProperty = lookup.getQueryProperty();
+    String _name_1 = this._modelExtensions.toName(_queryProperty);
+    _builder_1.append(_name_1, "");
+    _builder_1.append(" = :param");
+    String qstr = _builder_1.toString();
+    whereList.add(qstr);
+    DataInterchangeMarkerPath _markerPath = lookup.getMarkerPath();
+    boolean _notEquals = (!Objects.equal(_markerPath, null));
+    if (_notEquals) {
+      DataInterchangeMarkerPath _markerPath_1 = lookup.getMarkerPath();
+      EList<DataInterchangeMarkerEntity> _path = _markerPath_1.getPath();
+      for (final DataInterchangeMarkerEntity markerEntity : _path) {
+        {
+          aliasCnt = (aliasCnt + 1);
+          boolean _isMarkLatest = markerEntity.isMarkLatest();
+          if (_isMarkLatest) {
+            StringConcatenation _builder_2 = new StringConcatenation();
+            _builder_2.append("x");
+            _builder_2.append(aliasCnt, "");
+            _builder_2.append(".");
+            LEntityAttribute _markerProperty = markerEntity.getMarkerProperty();
+            String _name_2 = this._modelExtensions.toName(_markerProperty);
+            _builder_2.append(_name_2, "");
+            _builder_2.append(" = 1");
+            qstr = _builder_2.toString();
+            whereList.add(qstr);
+          }
+          EList<LEntityFeature> _features = entity.getFeatures();
+          for (final LEntityFeature ff : _features) {
+            boolean _and = false;
+            if (!(ff instanceof LReference)) {
+              _and = false;
+            } else {
+              boolean _isToMany = this._modelExtensions.isToMany(ff);
+              boolean _not = (!_isToMany);
+              _and = _not;
+            }
+            if (_and) {
+              LEntity _markerEntity = markerEntity.getMarkerEntity();
+              String _name_3 = this._modelExtensions.toName(_markerEntity);
+              LType _type = this._modelExtensions.type(ff);
+              String _name_4 = this._modelExtensions.toName(((LEntity) _type));
+              boolean _equals = _name_3.equals(_name_4);
+              if (_equals) {
+                StringConcatenation _builder_3 = new StringConcatenation();
+                _builder_3.append("x");
+                _builder_3.append((aliasCnt - 1), "");
+                _builder_3.append(".");
+                String _name_5 = this._modelExtensions.toName(ff);
+                _builder_3.append(_name_5, "");
+                _builder_3.append(" x");
+                _builder_3.append(aliasCnt, "");
+                qstr = _builder_3.toString();
+                joinList.add(qstr);
+              }
+            }
+          }
+        }
+      }
+    }
+    StringConcatenation _builder_2 = new StringConcatenation();
+    _builder_2.append("from ");
+    _builder_2.append(select, "");
+    {
+      int _size = joinList.size();
+      boolean _greaterThan = (_size > 0);
+      if (_greaterThan) {
+        _builder_2.append(" left join ");
+      }
+    }
+    String _join = IterableExtensions.join(joinList, " left join ");
+    _builder_2.append(_join, "");
+    _builder_2.append(" where ");
+    String _join_1 = IterableExtensions.join(whereList, " and ");
+    _builder_2.append(_join_1, "");
+    return _builder_2.toString();
+  }
+  
+  public TreeAppendable createAppendable(final EObject context, final ImportManager importManager, final GeneratorConfig config) {
+    TreeAppendable _xblockexpression = null;
+    {
+      Resource _eResource = context.eResource();
+      this.setBuilder(_eResource);
+      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, FrameworkUtil.class, SmooksOSGIFactory.class, SmooksFactory.class, Smooks.class, HtmlReportGenerator.class, ExecutionContext.class, JavaResult.class, XMLBinding.class, StreamSource.class, ByteArrayInputStream.class, URL.class, URI.class, InputStream.class, StreamUtils.class, MalformedURLException.class, IOException.class, FileAlreadyExistsException.class, URISyntaxException.class, EntityManager.class, PersistenceUtil.class, EntityManagerRegister.class, EntityTransaction.class, Logger.class, LoggerFactory.class, Label.class, Button.class, NativeButton.class, Button.ClickListener.class, Button.ClickEvent.class, ContentMode.class, PersistenceUnitProperties.class, HorizontalLayout.class, ProgressBar.class, IEventBroker.class, WorkerThreadRunnable.class, HashMap.class, Executors.class, TimeUnit.class, QueryHints.class, PessimisticLock.class, MissingResourceException.class, MessageFormat.class, EventHandler.class, Event.class, EventUtils.class, EventBrokerMsg.class, Bundle.class, BundleContext.class, List.class, Arrays.class, StringWriter.class, StringReader.class, OutputKeys.class, StreamResult.class, JavaSource.class, CriteriaBuilder.class, CriteriaQuery.class, Root.class, TypedQuery.class, JoinType.class, Paths.class, Path.class, Files.class, StandardOpenOption.class, BufferedOutputStream.class, FilterLifecycleEvent.class, ElementPresentEvent.class, FilterLifecycleEvent.EventType.class, UI.class, Pair.class, IEntityImportInitializationListener.class, ConstraintViolationException.class, ConstraintViolation.class);
+      _xblockexpression = super.createAppendable(context, importManager, config);
+    }
+    return _xblockexpression;
+  }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/jvmmodel/ParameterValue.java b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/jvmmodel/ParameterValue.java
new file mode 100644
index 0000000..3233b90
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/jvmmodel/ParameterValue.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ * 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:
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.jvmmodel;
+
+import java.util.HashMap;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+
+@SuppressWarnings("all")
+public class ParameterValue {
+  public HashMap<String, String> modifiers = CollectionLiterals.<String, String>newHashMap();
+  
+  public String value;
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.java b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.java
new file mode 100644
index 0000000..71d0cf6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.java
@@ -0,0 +1,470 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.scoping;
+
+import com.google.common.base.Objects;
+import java.util.ArrayList;
+import java.util.List;
+import javax.inject.Inject;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.osbp.dsl.entity.xtext.extensions.EntityTypesBuilder;
+import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions;
+import org.eclipse.osbp.dsl.semantic.common.types.LAttribute;
+import org.eclipse.osbp.dsl.semantic.common.types.LReference;
+import org.eclipse.osbp.dsl.semantic.common.types.LScalarType;
+import org.eclipse.osbp.dsl.semantic.common.types.LType;
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityFeature;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityReference;
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeEntityExpression;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeLookup;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchangeMarkerEntity;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.resource.EObjectDescription;
+import org.eclipse.xtext.resource.IEObjectDescription;
+import org.eclipse.xtext.scoping.IScope;
+import org.eclipse.xtext.scoping.impl.MapBasedScope;
+import org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Extension;
+
+@SuppressWarnings("all")
+public class DataDSLScopeProvider extends XbaseWithAnnotationsBatchScopeProvider {
+  @Inject
+  @Extension
+  private ModelExtensions _modelExtensions;
+  
+  @Inject
+  @Extension
+  private EntityTypesBuilder _entityTypesBuilder;
+  
+  public IScope getScope(final EObject context, final EReference reference) {
+    IScope _xifexpression = null;
+    boolean _equals = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_BEAN__LATEST_PROPERTY);
+    if (_equals) {
+      return this.getScope_Data_Entity_latest(context, reference);
+    } else {
+      IScope _xifexpression_1 = null;
+      boolean _equals_1 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_EXPRESSION__TARGET_PROPERTY);
+      if (_equals_1) {
+        return this.getScope_Data_Target_property(context, reference, true);
+      } else {
+        IScope _xifexpression_2 = null;
+        boolean _equals_2 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_FORMAT__TARGET_PROPERTY);
+        if (_equals_2) {
+          return this.getScope_Data_Target_property(context, reference, true);
+        } else {
+          IScope _xifexpression_3 = null;
+          boolean _equals_3 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_ENTITY_EXPRESSION__ENTITY);
+          if (_equals_3) {
+            return this.getScope_Data_Expression_entity(context, reference, true);
+          } else {
+            IScope _xifexpression_4 = null;
+            boolean _equals_4 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_ENTITY_EXPRESSION__PROPERTY);
+            if (_equals_4) {
+              return this.getScope_Data_Expression_entity(context, reference, false);
+            } else {
+              IScope _xifexpression_5 = null;
+              boolean _equals_5 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_LOOKUP__TARGET_PROPERTY);
+              if (_equals_5) {
+                return this.getScope_Data_Target_property(context, reference, false);
+              } else {
+                IScope _xifexpression_6 = null;
+                boolean _equals_6 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_LOOKUP__QUERY_PROPERTY);
+                if (_equals_6) {
+                  return this.getScope_Data_Lookup_queryProperty(context, reference);
+                } else {
+                  IScope _xifexpression_7 = null;
+                  boolean _equals_7 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_LOOKUP__ENTITY);
+                  if (_equals_7) {
+                    return this.getScope_Data_Lookup_lookupEntity(context, reference);
+                  } else {
+                    IScope _xifexpression_8 = null;
+                    boolean _equals_8 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_BEAN__ENTITY);
+                    if (_equals_8) {
+                      return this.getScope_Data_Bean_Entity(context, reference);
+                    } else {
+                      IScope _xifexpression_9 = null;
+                      boolean _equals_9 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_MAPPING__PROPERTY);
+                      if (_equals_9) {
+                        return this.getScope_Data_Target_property(context, reference, true);
+                      } else {
+                        IScope _xifexpression_10 = null;
+                        boolean _equals_10 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY);
+                        if (_equals_10) {
+                          return this.getScope_Data_Markerpath_entity(context, reference);
+                        } else {
+                          IScope _xifexpression_11 = null;
+                          boolean _equals_11 = Objects.equal(reference, DataDSLPackage.Literals.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY);
+                          if (_equals_11) {
+                            return this.getScope_Data_Entity_latest(context, reference);
+                          } else {
+                            _xifexpression_11 = super.getScope(context, reference);
+                          }
+                          _xifexpression_10 = _xifexpression_11;
+                        }
+                        _xifexpression_9 = _xifexpression_10;
+                      }
+                      _xifexpression_8 = _xifexpression_9;
+                    }
+                    _xifexpression_7 = _xifexpression_8;
+                  }
+                  _xifexpression_6 = _xifexpression_7;
+                }
+                _xifexpression_5 = _xifexpression_6;
+              }
+              _xifexpression_4 = _xifexpression_5;
+            }
+            _xifexpression_3 = _xifexpression_4;
+          }
+          _xifexpression_2 = _xifexpression_3;
+        }
+        _xifexpression_1 = _xifexpression_2;
+      }
+      _xifexpression = _xifexpression_1;
+    }
+    return _xifexpression;
+  }
+  
+  public IScope getScope_Data_Bean_Entity(final EObject context, final EReference reference) {
+    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
+    EObject eObj = context.eContainer();
+    while ((!(eObj instanceof DataInterchange))) {
+      EObject _eContainer = eObj.eContainer();
+      eObj = _eContainer;
+    }
+    boolean _notEquals = (!Objects.equal(eObj, null));
+    if (_notEquals) {
+      DataInterchangeBean previousEntity = null;
+      EList<DataInterchangeBean> _path = ((DataInterchange) eObj).getPath();
+      for (final DataInterchangeBean diEntity : _path) {
+        {
+          boolean _notEquals_1 = (!Objects.equal(previousEntity, null));
+          if (_notEquals_1) {
+            IEObjectDescription delObj = null;
+            for (final IEObjectDescription r : result) {
+              QualifiedName _name = r.getName();
+              String _string = _name.toString();
+              LEntity _entity = previousEntity.getEntity();
+              String _name_1 = _entity.getName();
+              boolean _equals = _string.equals(_name_1);
+              if (_equals) {
+                delObj = r;
+              }
+            }
+            boolean _notEquals_2 = (!Objects.equal(delObj, null));
+            if (_notEquals_2) {
+              result.remove(delObj);
+            }
+            LEntity _entity_1 = previousEntity.getEntity();
+            EList<LEntityFeature> _features = _entity_1.getFeatures();
+            for (final LEntityFeature f : _features) {
+              if ((f instanceof LReference)) {
+                boolean _and = false;
+                boolean _isCascading = ((LReference)f).isCascading();
+                if (!_isCascading) {
+                  _and = false;
+                } else {
+                  boolean _isToMany = this._modelExtensions.isToMany(f);
+                  _and = _isToMany;
+                }
+                if (_and) {
+                  LEntityReference ref = ((LEntityReference) f);
+                  LEntity _type = ref.getType();
+                  String _name_2 = this._modelExtensions.toName(_type);
+                  LEntity _type_1 = ref.getType();
+                  IEObjectDescription _create = EObjectDescription.create(_name_2, _type_1);
+                  result.add(_create);
+                }
+              }
+            }
+          }
+          boolean _equals_1 = diEntity.equals(context);
+          boolean _not = (!_equals_1);
+          if (_not) {
+            previousEntity = diEntity;
+          } else {
+            boolean _equals_2 = Objects.equal(previousEntity, null);
+            if (_equals_2) {
+              return super.getScope(context, reference);
+            }
+          }
+        }
+      }
+    }
+    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
+  }
+  
+  public IScope getScope_Data_Lookup_queryProperty(final EObject context, final EReference reference) {
+    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
+    boolean _and = false;
+    boolean _notEquals = (!Objects.equal(context, null));
+    if (!_notEquals) {
+      _and = false;
+    } else {
+      _and = (context instanceof DataInterchangeLookup);
+    }
+    if (_and) {
+      LEntity entity = ((DataInterchangeLookup) context).getEntity();
+      EList<LEntityFeature> _features = entity.getFeatures();
+      for (final LEntityFeature prop : _features) {
+        boolean _and_1 = false;
+        if (!(prop instanceof LAttribute)) {
+          _and_1 = false;
+        } else {
+          boolean _isToMany = this._modelExtensions.isToMany(prop);
+          boolean _not = (!_isToMany);
+          _and_1 = _not;
+        }
+        if (_and_1) {
+          String _name = ((LAttribute) prop).getName();
+          IEObjectDescription _create = EObjectDescription.create(_name, ((LAttribute) prop));
+          result.add(_create);
+        }
+      }
+    }
+    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
+  }
+  
+  public IScope getScope_Data_Lookup_lookupEntity(final EObject context, final EReference reference) {
+    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
+    LEntityReference targetProperty = ((DataInterchangeLookup) context).getTargetProperty();
+    EObject eObj = context.eContainer();
+    while ((!(eObj instanceof DataInterchangeBean))) {
+      EObject _eContainer = eObj.eContainer();
+      eObj = _eContainer;
+    }
+    boolean _notEquals = (!Objects.equal(eObj, null));
+    if (_notEquals) {
+      LEntity entity = ((DataInterchangeBean) eObj).getEntity();
+      EList<LEntityFeature> _features = entity.getFeatures();
+      for (final LEntityFeature prop : _features) {
+        boolean _and = false;
+        boolean _and_1 = false;
+        if (!(prop instanceof LReference)) {
+          _and_1 = false;
+        } else {
+          boolean _isToMany = this._modelExtensions.isToMany(prop);
+          boolean _not = (!_isToMany);
+          _and_1 = _not;
+        }
+        if (!_and_1) {
+          _and = false;
+        } else {
+          String _name = ((LReference) prop).getName();
+          String _name_1 = this._modelExtensions.toName(targetProperty);
+          boolean _equals = _name.equals(_name_1);
+          _and = _equals;
+        }
+        if (_and) {
+          LType _type = this._modelExtensions.type(((LReference) prop));
+          String _name_2 = _type.getName();
+          LType _type_1 = this._modelExtensions.type(((LReference) prop));
+          IEObjectDescription _create = EObjectDescription.create(_name_2, _type_1);
+          result.add(_create);
+        }
+      }
+    }
+    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
+  }
+  
+  public IScope getScope_Data_Expression_entity(final EObject context, final EReference reference, final boolean filterEntity) {
+    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
+    LEntityAttribute targetProperty = ((DataInterchangeEntityExpression) context).getTargetProperty();
+    LEntity fromEntity = ((DataInterchangeEntityExpression) context).getEntity();
+    EObject eObj = context.eContainer();
+    while ((!(eObj instanceof DataInterchange))) {
+      EObject _eContainer = eObj.eContainer();
+      eObj = _eContainer;
+    }
+    boolean _notEquals = (!Objects.equal(eObj, null));
+    if (_notEquals) {
+      EList<DataInterchangeBean> _path = ((DataInterchange) eObj).getPath();
+      for (final DataInterchangeBean path : _path) {
+        LEntity _entity = path.getEntity();
+        EList<LEntityFeature> _features = _entity.getFeatures();
+        for (final LEntityFeature f : _features) {
+          boolean _and = false;
+          if (!(f instanceof LAttribute)) {
+            _and = false;
+          } else {
+            LScalarType _type = ((LAttribute) f).getType();
+            String _name = _type.getName();
+            LScalarType _type_1 = targetProperty.getType();
+            String _name_1 = _type_1.getName();
+            boolean _equals = _name.equals(_name_1);
+            _and = _equals;
+          }
+          if (_and) {
+            if (filterEntity) {
+              LEntity _entity_1 = path.getEntity();
+              String _name_2 = this._modelExtensions.toName(_entity_1);
+              LEntity _entity_2 = path.getEntity();
+              IEObjectDescription _create = EObjectDescription.create(_name_2, _entity_2);
+              result.add(_create);
+            } else {
+              boolean _or = false;
+              boolean _equals_1 = Objects.equal(fromEntity, null);
+              if (_equals_1) {
+                _or = true;
+              } else {
+                LEntity _entity_3 = path.getEntity();
+                String _name_3 = this._modelExtensions.toName(_entity_3);
+                String _name_4 = this._modelExtensions.toName(fromEntity);
+                boolean _equals_2 = _name_3.equals(_name_4);
+                _or = _equals_2;
+              }
+              if (_or) {
+                String _name_5 = this._modelExtensions.toName(((LAttribute) f));
+                IEObjectDescription _create_1 = EObjectDescription.create(_name_5, ((LAttribute) f));
+                result.add(_create_1);
+              }
+            }
+          }
+        }
+      }
+    }
+    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
+  }
+  
+  public IScope getScope_Data_Target_property(final EObject context, final EReference reference, final boolean filterAttributes) {
+    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
+    EObject eObj = context.eContainer();
+    while ((!(eObj instanceof DataInterchangeBean))) {
+      EObject _eContainer = eObj.eContainer();
+      eObj = _eContainer;
+    }
+    boolean _notEquals = (!Objects.equal(eObj, null));
+    if (_notEquals) {
+      LEntity entity = ((DataInterchangeBean) eObj).getEntity();
+      LEntityAttribute marker = ((DataInterchangeBean) eObj).getLatestProperty();
+      EList<LEntityFeature> _features = entity.getFeatures();
+      for (final LEntityFeature prop : _features) {
+        if (filterAttributes) {
+          boolean _and = false;
+          if (!(prop instanceof LAttribute)) {
+            _and = false;
+          } else {
+            boolean _or = false;
+            boolean _equals = Objects.equal(marker, null);
+            if (_equals) {
+              _or = true;
+            } else {
+              String _name = this._modelExtensions.toName(prop);
+              String _name_1 = this._modelExtensions.toName(marker);
+              boolean _equals_1 = _name.equals(_name_1);
+              boolean _not = (!_equals_1);
+              _or = _not;
+            }
+            _and = _or;
+          }
+          if (_and) {
+            String _name_2 = ((LAttribute) prop).getName();
+            IEObjectDescription _create = EObjectDescription.create(_name_2, ((LAttribute) prop));
+            result.add(_create);
+          }
+        } else {
+          boolean _and_1 = false;
+          if (!(prop instanceof LReference)) {
+            _and_1 = false;
+          } else {
+            boolean _isToMany = this._modelExtensions.isToMany(prop);
+            boolean _not_1 = (!_isToMany);
+            _and_1 = _not_1;
+          }
+          if (_and_1) {
+            String _name_3 = ((LReference) prop).getName();
+            IEObjectDescription _create_1 = EObjectDescription.create(_name_3, ((LReference) prop));
+            result.add(_create_1);
+          }
+        }
+      }
+    }
+    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
+  }
+  
+  public IScope getScope_Data_Entity_latest(final EObject context, final EReference reference) {
+    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
+    LEntity rootEntity = null;
+    boolean _notEquals = (!Objects.equal(context, null));
+    if (_notEquals) {
+      boolean _matched = false;
+      if (!_matched) {
+        if (context instanceof DataInterchangeBean) {
+          _matched=true;
+          LEntity _entity = ((DataInterchangeBean) context).getEntity();
+          rootEntity = _entity;
+        }
+      }
+      if (!_matched) {
+        if (context instanceof DataInterchangeMarkerEntity) {
+          _matched=true;
+          LEntity _markerEntity = ((DataInterchangeMarkerEntity) context).getMarkerEntity();
+          rootEntity = _markerEntity;
+        }
+      }
+      EList<LEntityFeature> _features = rootEntity.getFeatures();
+      for (final LEntityFeature prop : _features) {
+        boolean _and = false;
+        if (!(prop instanceof LAttribute)) {
+          _and = false;
+        } else {
+          LScalarType _type = ((LAttribute) prop).getType();
+          String _name = _type.getName();
+          boolean _equals = "boolean".equals(_name);
+          _and = _equals;
+        }
+        if (_and) {
+          String _name_1 = ((LAttribute) prop).getName();
+          IEObjectDescription _create = EObjectDescription.create(_name_1, ((LAttribute) prop));
+          result.add(_create);
+        }
+      }
+    }
+    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
+  }
+  
+  public IScope getScope_Data_Markerpath_entity(final EObject context, final EReference reference) {
+    ArrayList<IEObjectDescription> result = CollectionLiterals.<IEObjectDescription>newArrayList();
+    EObject eObj = context.eContainer();
+    while ((!(eObj instanceof DataInterchangeLookup))) {
+      EObject _eContainer = eObj.eContainer();
+      eObj = _eContainer;
+    }
+    boolean _notEquals = (!Objects.equal(eObj, null));
+    if (_notEquals) {
+      LEntity entity = ((DataInterchangeLookup) eObj).getEntity();
+      List<LEntityReference> _references = entity.getReferences();
+      for (final LEntityReference f : _references) {
+        boolean _isToMany = this._modelExtensions.isToMany(f);
+        boolean _not = (!_isToMany);
+        if (_not) {
+          LEntity _type = f.getType();
+          String _name = this._modelExtensions.toName(_type);
+          LEntity _type_1 = f.getType();
+          IEObjectDescription _create = EObjectDescription.create(_name, _type_1);
+          result.add(_create);
+        }
+      }
+    }
+    return MapBasedScope.createScope(IScope.NULLSCOPE, result);
+  }
+}
diff --git a/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/validation/DataDSLValidator.java b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/validation/DataDSLValidator.java
new file mode 100644
index 0000000..d78cf5d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.datainterchange/xtend-gen/org/eclipse/osbp/xtext/datainterchange/validation/DataDSLValidator.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  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:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.datainterchange.validation;
+
+import org.eclipse.osbp.xtext.datainterchange.validation.AbstractDataDSLValidator;
+
+/**
+ * Custom validation rules.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#validation
+ */
+@SuppressWarnings("all")
+public class DataDSLValidator extends AbstractDataDSLValidator {
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..db0ed1a
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany). -->
+<!--# 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: -->
+<!--# Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.eclipse.osbp.releng.maven</groupId>
+		<artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath/>
+	</parent>
+
+	<groupId>org.eclipse.osbp.xtext.datainterchange</groupId>
+	<artifactId>org.eclipse.osbp.xtext.datainterchange.aggregator</artifactId>
+	<version>0.9.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+	<url>${osbp.site.repository.url}</url>
+	<scm>
+		<url>${osbp.scm.url}</url>
+		<connection>${osbp.scm.connection}</connection>
+		<developerConnection>${osbp.scm.connection.dev}</developerConnection>
+		<tag>HEAD</tag>
+	</scm>
+	<distributionManagement>
+		<site>
+			<id>gh-pages</id>
+			<name>OSBP GitHub Pages</name>
+			<url>${distribution.site.url}</url>
+		</site>
+	</distributionManagement>
+
+	<properties>
+		<osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
+	</properties>
+
+	<modules>
+		<module>org.eclipse.osbp.xtext.datainterchange</module>
+		<module>org.eclipse.osbp.xtext.datainterchange.common</module>
+		<module>org.eclipse.osbp.xtext.datainterchange.tests</module>
+		<module>org.eclipse.osbp.xtext.datainterchange.ui</module>
+		<module>org.eclipse.osbp.xtext.datainterchange.feature</module>
+	</modules>
+
+	<build>
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-javadoc-plugin</artifactId>
+					<configuration>
+						<skip>true</skip>
+					</configuration>
+				</plugin>
+				<plugin>
+					<groupId>org.eclipse.tycho</groupId>
+					<artifactId>target-platform-configuration</artifactId>
+					<version>${tycho-version}</version>
+					<configuration>
+						<resolver>p2</resolver>
+						<pomDependencies>consider</pomDependencies>
+						<environments>
+							<environment>
+								<os>win32</os>
+								<ws>win32</ws>
+								<arch>x86_64</arch>
+							</environment>
+							<environment>
+								<os>linux</os>
+								<ws>gtk</ws>
+								<arch>x86</arch>
+							</environment>
+							<environment>
+								<os>linux</os>
+								<ws>gtk</ws>
+								<arch>x86_64</arch>
+							</environment>
+							<environment>
+								<os>macosx</os>
+								<ws>cocoa</ws>
+								<arch>x86_64</arch>
+							</environment>
+						</environments>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+
+</project>