catch up with development

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9e77d8a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,39 @@
+**/bin/
+**/target/
+***._trace
+**.log
+**git.properties
+
+**/target/
+**/.metadata/
+
+**/emf-gen/**/.gitignore
+**/src-gen/**/.gitignore
+**/git.properties
+**/*.java._trace
+**/*.log
+**/*.log.properties
+
+**/bin/
+**/build/
+*.class
+*.ctrl
+**/Debug/
+.DS_Store
+*.ear
+*.war
+
+**/*.actionbin
+**/*.blipbin
+**/*.chartbin
+**/*.cubebin
+**/*.datatypebin
+**/*.dtobin
+**/*.entitybin
+**/*.servicebin
+**/*.tablebin
+**/*.uibin
+**/*.uisemanticbin
+**/*.xtendbin
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index 01054e0..b5f0162 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -19,5 +19,6 @@
                 <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.xtext.addons</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.oxtype</jenkins.build.dependency>
         </jenkins.build.dependencies>
 </jenkins>
diff --git a/org.eclipse.osbp.xtext.i18n.feature/.gitignore b/org.eclipse.osbp.xtext.i18n.feature/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n.feature/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/org.eclipse.osbp.xtext.i18n.feature/.project b/org.eclipse.osbp.xtext.i18n.feature/.project
index e4d94fb..7c866e2 100644
--- a/org.eclipse.osbp.xtext.i18n.feature/.project
+++ b/org.eclipse.osbp.xtext.i18n.feature/.project
@@ -16,12 +16,12 @@
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
diff --git a/org.eclipse.osbp.xtext.i18n.feature/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.xtext.i18n.feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n.feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.xtext.i18n.feature/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.xtext.i18n.feature/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n.feature/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.xtext.i18n.feature/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.xtext.i18n.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..19e3115
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,11 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.emf-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.xtext.i18n.feature/feature.xml b/org.eclipse.osbp.xtext.i18n.feature/feature.xml
index bb8f2ee..2a44a1d 100644
--- a/org.eclipse.osbp.xtext.i18n.feature/feature.xml
+++ b/org.eclipse.osbp.xtext.i18n.feature/feature.xml
@@ -14,7 +14,8 @@
         id="org.eclipse.osbp.xtext.i18n.feature"
         label="%featureName"
         version="0.9.0.qualifier"
-        provider-name="%providerName">
+        provider-name="%providerName"
+		plugin="org.eclipse.osbp.xtext.i18n">
         
     <description>
         %description
diff --git a/org.eclipse.osbp.xtext.i18n/.classpath b/org.eclipse.osbp.xtext.i18n/.classpath
new file mode 100644
index 0000000..8b37caa
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/"/>
+	<classpathentry kind="src" path="xtend-gen/"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.xtext.i18n/.project b/org.eclipse.osbp.xtext.i18n/.project
index f75ae8a..d47f448 100644
--- a/org.eclipse.osbp.xtext.i18n/.project
+++ b/org.eclipse.osbp.xtext.i18n/.project
@@ -36,12 +36,12 @@
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
diff --git a/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..19e3115
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,11 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.emf-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.xtext.i18n/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.i18n/META-INF/MANIFEST.MF
index 384525e..d560222 100644
--- a/org.eclipse.osbp.xtext.i18n/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.i18n/META-INF/MANIFEST.MF
@@ -9,22 +9,22 @@
  org.slf4j.api;bundle-version="1.7.2",
  org.apache.log4j;bundle-version="1.2.15",
  org.eclipse.core.runtime,
+ org.eclipse.core.databinding;bundle-version="1.6.0",
  org.eclipse.emf.codegen.ecore;resolution:=optional,
  org.eclipse.emf.common,
  org.eclipse.emf.ecore,
  org.eclipse.emf.ecore.xcore;bundle-version="1.1.2",
  org.eclipse.emf.ecore.xcore.lib,
  org.eclipse.emf.mwe.utils;resolution:=optional,
- org.eclipse.emf.mwe2.launch;resolution:=optional,
+ org.eclipse.emf.mwe2.launch;bundle-version="[2.9.0,2.10.0)";resolution:=optional,
  org.eclipse.osgi.services;bundle-version="3.4.0",
- org.eclipse.xtext;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.common.types;bundle-version="[2.7.3,2.8.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,
- org.eclipse.xtext.util;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.osbp.dsl.xtext.lazyresolver.api;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.dsl.xtext.lazyresolver;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.xtext;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.common.types;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.generator;bundle-version="[2.11.0,2.12.0)";resolution:=optional,
+ org.eclipse.xtext.xbase;bundle-version="[2.11.0,2.12.0)";resolution:=optional,
+ org.eclipse.xtext.util;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.gitinfo;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.addons;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.dsl.common.xtext;bundle-version="[0.9.0,0.10.0)",
@@ -34,7 +34,6 @@
 Import-Package: javax.validation,
  javax.validation.constraints,
  org.apache.commons.lang3;version="3.1.0",
- org.eclipse.core.databinding,
  org.eclipse.e4.core.services.translation,
  org.eclipse.osbp.preferences;version="0.9.0",
  org.eclipse.osbp.runtime.common.i18n;version="0.9.0",
diff --git a/org.eclipse.osbp.xtext.i18n/plugin.xml b/org.eclipse.osbp.xtext.i18n/plugin.xml
index 7da8f46..6ea6ede 100644
--- a/org.eclipse.osbp.xtext.i18n/plugin.xml
+++ b/org.eclipse.osbp.xtext.i18n/plugin.xml
@@ -2,28 +2,28 @@
 <?eclipse version="3.4"?>
 <plugin>
    <extension
-         point="org.eclipse.osbp.dsl.xtext.lazyresolver.api.inferrerDelegate">
+         point="org.eclipse.osbp.xtext.oxtype.inferrerDelegate">
       <inferrerDelegate
             grammarName="org.eclipse.osbp.dsl.entity.xtext.EntityGrammar"
             inferrerDelegateClass="org.eclipse.osbp.xtext.i18n.JvmInferrerDelegate">
       </inferrerDelegate>
    </extension>
    <extension
-         point="org.eclipse.osbp.dsl.xtext.lazyresolver.api.generatorDelegate">
+         point="org.eclipse.osbp.xtext.oxtype.generatorDelegate">
       <generatorDelegate
             generatorDelegateClass="org.eclipse.osbp.xtext.i18n.GeneratorDelegate"
             grammarName="org.eclipse.osbp.dsl.entity.xtext.EntityGrammar">
       </generatorDelegate>
    </extension>
    <extension
-         point="org.eclipse.osbp.dsl.xtext.lazyresolver.api.inferrerDelegate">
+         point="org.eclipse.osbp.xtext.oxtype.inferrerDelegate">
       <inferrerDelegate
             grammarName="org.eclipse.osbp.dsl.dto.xtext.DtoGrammar"
             inferrerDelegateClass="org.eclipse.osbp.xtext.i18n.JvmInferrerDelegate">
       </inferrerDelegate>
    </extension>
    <extension
-         point="org.eclipse.osbp.dsl.xtext.lazyresolver.api.generatorDelegate">
+         point="org.eclipse.osbp.xtext.oxtype.generatorDelegate">
       <generatorDelegate
             generatorDelegateClass="org.eclipse.osbp.xtext.i18n.GeneratorDelegate"
             grammarName="org.eclipse.osbp.dsl.dto.xtext.DtoGrammar">
diff --git a/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/DSLOutputConfigurationProvider.java b/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/DSLOutputConfigurationProvider.java
index 7550a52..1baabc3 100644
--- a/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/DSLOutputConfigurationProvider.java
+++ b/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/DSLOutputConfigurationProvider.java
@@ -21,13 +21,14 @@
 import static com.google.common.collect.Sets.*;
 
 public class DSLOutputConfigurationProvider implements IOutputConfigurationProvider {
-	public final static String SMOOKS_OUTPUT_ONCE = "DEFAULT_OUTPUT_ONCE";
-	public final static String SMOOKS_OUTPUT_DIRECTORY = "smooks";
-	public final static String DEFAULT_OUTPUT_I18N = "DEFAULT_OUTPUT_I18N";
-	public final static String I18N_OUTPUT_DIRECTORY = "i18n";
-	public final static String DEFAULT_REPORT_OUTPUT = "DEFAULT_REPORT_OUTPUT";
-	public final static String CUBE_CATALOG_OUTPUT = "CUBE_CATALOG_OUTPUT";
-	public final static String CUBE_CATALOG_DIRECTORY = "catalog";
+	public static final String SMOOKS_OUTPUT_ONCE = "DEFAULT_OUTPUT_ONCE";
+	public static final String SMOOKS_OUTPUT_DIRECTORY = "smooks";
+	public static final String DEFAULT_OUTPUT_I18N = "DEFAULT_OUTPUT_I18N";
+	public static final String I18N_OUTPUT_DIRECTORY = "i18n";
+	public static final String DEFAULT_REPORT_OUTPUT = "DEFAULT_REPORT_OUTPUT";
+	public static final String CUBE_CATALOG_OUTPUT = "CUBE_CATALOG_OUTPUT";
+	public static final String CUBE_CATALOG_DIRECTORY = "catalog";
+	public static final String CONFIGURATION_DIRECTORY = "config";
 	
 	@Override
 	public Set<OutputConfiguration> getOutputConfigurations() {
@@ -133,6 +134,15 @@
 		binOutput.setKeepLocalHistory(true);
 		configs.add(binOutput);
 
+		OutputConfiguration configOutput = new OutputConfiguration(CONFIGURATION_DIRECTORY);
+	    configOutput.setDescription("Configuration Folder (once)");
+	    configOutput.setOutputDirectory("./"+CONFIGURATION_DIRECTORY);
+	    configOutput.setOverrideExistingResources(false);
+	    configOutput.setCreateOutputDirectory(true);
+	    configOutput.setCleanUpDerivedResources(false);
+	    configOutput.setSetDerivedProperty(false);
+		configs.add(configOutput);
+	    
 		return configs;
 	}
 
diff --git a/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/GeneratorDelegate.xtend b/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/GeneratorDelegate.xtend
index a3762cc..5b304ac 100644
--- a/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/GeneratorDelegate.xtend
+++ b/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/GeneratorDelegate.xtend
@@ -19,7 +19,7 @@
 
 import org.eclipse.emf.ecore.resource.Resource
 import org.eclipse.xtext.generator.IFileSystemAccess
-import org.eclipse.osbp.dsl.xtext.lazyresolver.api.hook.IGeneratorDelegate
+import org.eclipse.osbp.xtext.oxtype.hooks.IGeneratorDelegate
 
 class GeneratorDelegate extends I18NModelGenerator implements IGeneratorDelegate {
 	
diff --git a/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/JvmInferrerDelegate.xtend b/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/JvmInferrerDelegate.xtend
index b42481c..ba05ada 100644
--- a/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/JvmInferrerDelegate.xtend
+++ b/org.eclipse.osbp.xtext.i18n/src/org/eclipse/osbp/xtext/i18n/JvmInferrerDelegate.xtend
@@ -25,7 +25,7 @@
 import org.eclipse.xtext.xbase.jvmmodel.JvmAnnotationReferenceBuilder
 import org.eclipse.xtext.xbase.jvmmodel.JvmTypeReferenceBuilder
 import org.eclipse.osbp.dsl.semantic.common.types.LTypedPackage
-import org.eclipse.osbp.dsl.xtext.lazyresolver.api.hook.IInferrerDelegate
+import org.eclipse.osbp.xtext.oxtype.hooks.IInferrerDelegate
 
 @SuppressWarnings("restriction")
 class JvmInferrerDelegate implements IInferrerDelegate {
diff --git a/org.eclipse.osbp.xtext.i18n/xtend-gen/.gitignore b/org.eclipse.osbp.xtext.i18n/xtend-gen/.gitignore
new file mode 100644
index 0000000..ab45321
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n/xtend-gen/.gitignore
@@ -0,0 +1,3 @@
+/.GeneratorDelegate.xtendbin
+/.I18NModelGenerator.xtendbin
+/.JvmInferrerDelegate.xtendbin
diff --git a/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/.gitignore b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/.gitignore
new file mode 100644
index 0000000..db42a5a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/.gitignore
@@ -0,0 +1,4 @@
+/GeneratorDelegate.java
+/I18NModelGenerator.java
+/JvmInferrerDelegate.java
+/StringComparator.java
diff --git a/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/GeneratorDelegate.java b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/GeneratorDelegate.java
index 34a1312..ac5723a 100644
--- a/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/GeneratorDelegate.java
+++ b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/GeneratorDelegate.java
@@ -16,9 +16,9 @@
 
 import java.util.Set;
 import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.osbp.dsl.xtext.lazyresolver.api.hook.IGeneratorDelegate;
 import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider;
 import org.eclipse.osbp.xtext.i18n.I18NModelGenerator;
+import org.eclipse.osbp.xtext.oxtype.hooks.IGeneratorDelegate;
 import org.eclipse.xtext.generator.IFileSystemAccess;
 import org.eclipse.xtext.generator.OutputConfiguration;
 
@@ -26,11 +26,13 @@
 public class GeneratorDelegate extends I18NModelGenerator implements IGeneratorDelegate {
   private DSLOutputConfigurationProvider configProvider = new DSLOutputConfigurationProvider();
   
+  @Override
   public void generate(final Resource input, final IFileSystemAccess fsa) {
     super.addTranslatables("Name,Priority,Status,Subject,Description,ExpirationTime,CreatedOn,CreatedBy,ActivationTime,ActualOwner,TaskId,ProcessId,ProcessInstanceId,ProcessSessionId");
     this.generateI18n(fsa, input);
   }
   
+  @Override
   public Set<OutputConfiguration> getOutputConfigurations() {
     return this.configProvider.getOutputConfigurations();
   }
diff --git a/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/I18NModelGenerator.java b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/I18NModelGenerator.java
index 91e7cc4..eb4709b 100644
--- a/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/I18NModelGenerator.java
+++ b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/I18NModelGenerator.java
@@ -15,7 +15,6 @@
 package org.eclipse.osbp.xtext.i18n;
 
 import com.google.common.base.Objects;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -35,11 +34,9 @@
 import org.eclipse.osbp.xtext.i18n.I18NKeyGenerator;
 import org.eclipse.osbp.xtext.i18n.I18nUtil;
 import org.eclipse.osbp.xtext.i18n.StringComparator;
-import org.eclipse.xtext.AbstractRule;
 import org.eclipse.xtext.RuleCall;
 import org.eclipse.xtext.generator.AbstractFileSystemAccess2;
 import org.eclipse.xtext.generator.IFileSystemAccess;
-import org.eclipse.xtext.nodemodel.BidiTreeIterable;
 import org.eclipse.xtext.nodemodel.BidiTreeIterator;
 import org.eclipse.xtext.nodemodel.ICompositeNode;
 import org.eclipse.xtext.nodemodel.ILeafNode;
@@ -66,9 +63,7 @@
         String[] parts = pair.split("->");
         final String[] _converted_parts = (String[])parts;
         Iterator<String> iter = ((List<String>)Conversions.doWrapArray(_converted_parts)).iterator();
-        String _next = iter.next();
-        String _next_1 = iter.next();
-        this.addedTranslatables.put(_next, _next_1);
+        this.addedTranslatables.put(iter.next(), iter.next());
       } else {
         this.addedTranslatables.put(pair, null);
       }
@@ -82,21 +77,14 @@
       boolean _contains = additional.contains(":");
       if (_contains) {
         String[] complex = additional.split(":");
-        String _get = complex[1];
-        String _key = I18NKeyGenerator.key(_get);
-        String _get_1 = complex[1];
-        String _value = I18NKeyGenerator.value(_get_1);
-        translatables.put(_key, _value);
+        translatables.put(I18NKeyGenerator.key(complex[1]), I18NKeyGenerator.value(complex[1]));
       } else {
-        String _key_1 = I18NKeyGenerator.key(additional);
-        String _value_1 = I18NKeyGenerator.value(additional);
-        translatables.put(_key_1, _value_1);
+        translatables.put(I18NKeyGenerator.key(additional), I18NKeyGenerator.value(additional));
       }
     }
     EObject eobject = EObjectHelper.getSemanticElement(resource);
     ICompositeNode node = NodeModelUtils.getNode(eobject);
-    BidiTreeIterable<INode> _asTreeIterable = node.getAsTreeIterable();
-    BidiTreeIterator<INode> contentsIterator = _asTreeIterable.iterator();
+    BidiTreeIterator<INode> contentsIterator = node.getAsTreeIterable().iterator();
     while (contentsIterator.hasNext()) {
       {
         INode abstractNode = contentsIterator.next();
@@ -104,55 +92,25 @@
         if ((_grammarElement instanceof RuleCall)) {
           EObject _grammarElement_1 = abstractNode.getGrammarElement();
           RuleCall rule = ((RuleCall) _grammarElement_1);
-          AbstractRule _rule = rule.getRule();
-          String _name = _rule.getName();
-          boolean _startsWith = _name.startsWith(I18nUtil.TRANSLATABLE);
+          boolean _startsWith = rule.getRule().getName().startsWith(I18nUtil.TRANSLATABLE);
           if (_startsWith) {
             boolean found = false;
             while ((contentsIterator.hasNext() && (!found))) {
               {
-                INode _next = contentsIterator.next();
-                abstractNode = _next;
+                abstractNode = contentsIterator.next();
                 EObject _grammarElement_2 = abstractNode.getGrammarElement();
                 if ((_grammarElement_2 instanceof RuleCall)) {
                   StringBuffer text = new StringBuffer();
                   Iterable<ILeafNode> _leafNodes = abstractNode.getLeafNodes();
                   for (final ILeafNode leaf : _leafNodes) {
-                    String _text = leaf.getText();
-                    String _trim = _text.trim();
-                    text.append(_trim);
+                    text.append(leaf.getText().trim());
                   }
-                  boolean _or = false;
-                  String _string = text.toString();
-                  boolean _contains_1 = _string.contains("extends");
-                  if (_contains_1) {
-                    _or = true;
-                  } else {
-                    String _string_1 = text.toString();
-                    boolean _contains_2 = _string_1.contains("mapped superclass");
-                    _or = _contains_2;
-                  }
-                  if (_or) {
+                  if ((text.toString().contains("extends") || text.toString().contains("mapped superclass"))) {
                     found = true;
                   } else {
-                    boolean _and = false;
-                    String _string_2 = text.toString();
-                    int _length = _string_2.length();
-                    boolean _greaterThan = (_length > 0);
-                    if (!_greaterThan) {
-                      _and = false;
-                    } else {
-                      String _string_3 = text.toString();
-                      boolean _equals = _string_3.equals("\"\"");
-                      boolean _not = (!_equals);
-                      _and = _not;
-                    }
-                    if (_and) {
-                      String _string_4 = text.toString();
-                      String _key_2 = I18NKeyGenerator.key(_string_4);
-                      String _string_5 = text.toString();
-                      String _value_2 = I18NKeyGenerator.value(_string_5);
-                      translatables.put(_key_2, _value_2);
+                    if (((text.toString().length() > 0) && (!text.toString().equals("\"\"")))) {
+                      translatables.put(I18NKeyGenerator.key(text.toString()), 
+                        I18NKeyGenerator.value(text.toString()));
                     }
                   }
                   found = true;
@@ -181,13 +139,13 @@
             try {
               boolean _equals = localeId.equals("default");
               if (_equals) {
-                InputStream _readBinaryFile = erfsa.readBinaryFile("I18N.properties", 
-                  DSLOutputConfigurationProvider.DEFAULT_OUTPUT_I18N);
-                prop.load(_readBinaryFile);
+                prop.load(
+                  erfsa.readBinaryFile("I18N.properties", 
+                    DSLOutputConfigurationProvider.DEFAULT_OUTPUT_I18N));
               } else {
-                InputStream _readBinaryFile_1 = erfsa.readBinaryFile((("I18N_" + localeId) + ".properties"), 
-                  DSLOutputConfigurationProvider.DEFAULT_OUTPUT_I18N);
-                prop.load(_readBinaryFile_1);
+                prop.load(
+                  erfsa.readBinaryFile((("I18N_" + localeId) + ".properties"), 
+                    DSLOutputConfigurationProvider.DEFAULT_OUTPUT_I18N));
               }
             } catch (final Throwable _t) {
               if (_t instanceof Exception) {
@@ -202,21 +160,17 @@
             translations.put(localeId, p);
             Set<String> _stringPropertyNames = prop.stringPropertyNames();
             for (final String props : _stringPropertyNames) {
-              String _property = prop.getProperty(props);
-              int _length = _property.length();
+              int _length = prop.getProperty(props).length();
               boolean _greaterThan = (_length > 0);
               if (_greaterThan) {
-                String _property_1 = prop.getProperty(props);
-                p.put(props, _property_1);
+                p.put(props, prop.getProperty(props));
               }
             }
             boolean _equals_1 = localeId.equals("default");
             if (_equals_1) {
               Set<String> _keySet_1 = this.properties.keySet();
               for (final String props_1 : _keySet_1) {
-                TreeMap<String, String> _get = translations.get("default");
-                String _get_1 = this.properties.get(props_1);
-                _get.put(props_1, _get_1);
+                translations.get("default").put(props_1, this.properties.get(props_1));
               }
             }
           }
@@ -226,27 +180,22 @@
           boolean _equals = localeId_1.equals("default");
           boolean _not = (!_equals);
           if (_not) {
-            TreeMap<String, String> _get = translations.get("default");
-            Set<String> _keySet_2 = _get.keySet();
+            Set<String> _keySet_2 = translations.get("default").keySet();
             for (final String key : _keySet_2) {
               boolean _findTranslation = this.findTranslation(localeId_1, key, translations);
               boolean _not_1 = (!_findTranslation);
               if (_not_1) {
-                TreeMap<String, String> _get_1 = translations.get("default");
-                String value = _get_1.get(key);
+                String value = translations.get("default").get(key);
                 ArrayList<String> payLoads = this.improveForTranslation(value);
                 boolean _equals_1 = localeId_1.equals("en");
                 if (_equals_1) {
-                  TreeMap<String, String> _get_2 = translations.get(localeId_1);
-                  String _join = IterableExtensions.join(payLoads);
-                  _get_2.put(key, _join);
+                  translations.get(localeId_1).put(key, IterableExtensions.join(payLoads));
                 } else {
                   boolean _isLanguagesAutotranslate = ProductConfiguration.isLanguagesAutotranslate();
                   if (_isLanguagesAutotranslate) {
                     String property = "";
                     for (final String payLoad : payLoads) {
-                      char _charAt = payLoad.charAt(0);
-                      boolean _isLetter = Character.isLetter(_charAt);
+                      boolean _isLetter = Character.isLetter(payLoad.charAt(0));
                       if (_isLetter) {
                         String _escapeJava = StringEscapeUtils.escapeJava(payLoad);
                         String _plus = (property + _escapeJava);
@@ -255,17 +204,14 @@
                         property = (property + payLoad);
                       }
                     }
-                    TreeMap<String, String> _get_3 = translations.get(localeId_1);
-                    _get_3.put(key, property);
+                    translations.get(localeId_1).put(key, property);
                   } else {
                     boolean _isLanguagesAutotranslate_1 = ProductConfiguration.isLanguagesAutotranslate();
                     boolean _not_2 = (!_isLanguagesAutotranslate_1);
                     if (_not_2) {
                       boolean _equals_2 = localeId_1.equals("de");
                       if (_equals_2) {
-                        TreeMap<String, String> _get_4 = translations.get(localeId_1);
-                        String _join_1 = IterableExtensions.join(payLoads);
-                        _get_4.put(key, _join_1);
+                        translations.get(localeId_1).put(key, IterableExtensions.join(payLoads));
                       }
                     }
                   }
@@ -279,16 +225,12 @@
           {
             StringBuilder output = new StringBuilder();
             output.append((("#" + localeId_2) + "\n"));
-            TreeMap<String, String> _get_5 = translations.get(localeId_2);
-            Set<String> _keySet_4 = _get_5.keySet();
+            Set<String> _keySet_4 = translations.get(localeId_2).keySet();
             for (final String key_1 : _keySet_4) {
               {
-                TreeMap<String, String> _get_6 = translations.get(localeId_2);
-                String value_1 = _get_6.get(key_1);
-                String _escapeJava_1 = StringEscapeUtils.escapeJava(value_1);
-                value_1 = _escapeJava_1;
-                StringBuilder _append = output.append(((key_1 + "=") + value_1));
-                _append.append("\n");
+                String value_1 = translations.get(localeId_2).get(key_1);
+                value_1 = StringEscapeUtils.escapeJava(value_1);
+                output.append(((key_1 + "=") + value_1)).append("\n");
               }
             }
             boolean _equals_3 = localeId_2.equals("default");
@@ -313,22 +255,12 @@
       int _size = part.size();
       int _minus = (_size - 1);
       part.remove(_minus);
-      String _join = IterableExtensions.join(part, "_");
-      boolean _findTranslation = this.findTranslation(_join, key, translations);
+      boolean _findTranslation = this.findTranslation(IterableExtensions.join(part, "_"), key, translations);
       if (_findTranslation) {
         return true;
       }
     }
-    boolean _and = false;
-    boolean _containsKey = translations.containsKey(localeId);
-    if (!_containsKey) {
-      _and = false;
-    } else {
-      TreeMap<String, String> _get = translations.get(localeId);
-      boolean _containsKey_1 = _get.containsKey(key);
-      _and = _containsKey_1;
-    }
-    if (_and) {
+    if ((translations.containsKey(localeId) && translations.get(localeId).containsKey(key))) {
       return true;
     }
     return false;
@@ -336,16 +268,7 @@
   
   public ArrayList<String> splitTextAndNumbers(final String text) {
     ArrayList<String> array = CollectionLiterals.<String>newArrayList();
-    boolean _or = false;
-    boolean _equals = Objects.equal(text, null);
-    if (_equals) {
-      _or = true;
-    } else {
-      int _length = text.length();
-      boolean _equals_1 = (_length == 0);
-      _or = _equals_1;
-    }
-    if (_or) {
+    if ((Objects.equal(text, null) || (text.length() == 0))) {
       return array;
     }
     String current = "";
@@ -355,42 +278,18 @@
     current = (current + Character.valueOf(lastChar));
     while ((i < len)) {
       {
-        boolean _or_1 = false;
-        boolean _and = false;
-        char _charAt = text.charAt(i);
-        boolean _isLetter = Character.isLetter(_charAt);
-        if (!_isLetter) {
-          _and = false;
-        } else {
-          boolean _isDigit = Character.isDigit(lastChar);
-          _and = _isDigit;
-        }
-        if (_and) {
-          _or_1 = true;
-        } else {
-          boolean _and_1 = false;
-          char _charAt_1 = text.charAt(i);
-          boolean _isDigit_1 = Character.isDigit(_charAt_1);
-          if (!_isDigit_1) {
-            _and_1 = false;
-          } else {
-            boolean _isLetter_1 = Character.isLetter(lastChar);
-            _and_1 = _isLetter_1;
-          }
-          _or_1 = _and_1;
-        }
-        if (_or_1) {
+        if (((Character.isLetter(text.charAt(i)) && Character.isDigit(lastChar)) || 
+          (Character.isDigit(text.charAt(i)) && Character.isLetter(lastChar)))) {
           array.add(current);
           current = "";
         }
-        char _charAt_2 = text.charAt(i);
-        lastChar = _charAt_2;
+        lastChar = text.charAt(i);
         current = (current + Character.valueOf(lastChar));
         i = (i + 1);
       }
     }
-    int _length_1 = current.length();
-    boolean _greaterThan = (_length_1 > 0);
+    int _length = current.length();
+    boolean _greaterThan = (_length > 0);
     if (_greaterThan) {
       array.add(current);
     }
@@ -402,11 +301,9 @@
     ArrayList<String> newArray = CollectionLiterals.<String>newArrayList();
     ArrayList<String> array = this.splitTextAndNumbers(payLoad);
     for (final String element : array) {
-      char _charAt = element.charAt(0);
-      boolean _isLetter = Character.isLetter(_charAt);
+      boolean _isLetter = Character.isLetter(element.charAt(0));
       if (_isLetter) {
-        String _deAbbreviateTranslation = this.deAbbreviateTranslation(element);
-        newArray.add(_deAbbreviateTranslation);
+        newArray.add(this.deAbbreviateTranslation(element));
       } else {
         newArray.add(element);
       }
@@ -414,82 +311,49 @@
     int _size = newArray.size();
     boolean _greaterThan = (_size > 0);
     if (_greaterThan) {
-      String _get = newArray.get(0);
-      String _firstUpper = StringExtensions.toFirstUpper(_get);
-      newArray.set(0, _firstUpper);
+      newArray.set(0, StringExtensions.toFirstUpper(newArray.get(0)));
     }
     return newArray;
   }
   
   public String deAbbreviateTranslation(final String text) {
     String payLoad = text;
-    String _replaceAll = payLoad.replaceAll("(^|\\s)abv(\\s|$)", " alcohol by volume ");
-    payLoad = _replaceAll;
-    String _replaceAll_1 = payLoad.replaceAll("(^|\\s)abw(\\s|$)", " alcohol by weight ");
-    payLoad = _replaceAll_1;
-    String _replaceAll_2 = payLoad.replaceAll("(^|\\s)accnt(\\s|$)", " account ");
-    payLoad = _replaceAll_2;
-    String _replaceAll_3 = payLoad.replaceAll("(^|\\s)addr(\\s|$)", " address ");
-    payLoad = _replaceAll_3;
-    String _replaceAll_4 = payLoad.replaceAll("(^|\\s)base id(\\s|$)", " identifier ");
-    payLoad = _replaceAll_4;
-    String _replaceAll_5 = payLoad.replaceAll("(^|\\s)base uuid(\\s|$)", " identifier ");
-    payLoad = _replaceAll_5;
-    String _replaceAll_6 = payLoad.replaceAll("(^|\\s)bsin(\\s|$)", " brand single identification number ");
-    payLoad = _replaceAll_6;
-    String _replaceAll_7 = payLoad.replaceAll("(^|\\s)cal(\\s|$)", " calories ");
-    payLoad = _replaceAll_7;
-    String _replaceAll_8 = payLoad.replaceAll("(^|\\s)carb(\\s|$)", " carbohydrate ");
-    payLoad = _replaceAll_8;
-    String _replaceAll_9 = payLoad.replaceAll("(^|\\s)chol(\\s|$)", " cholesterol ");
-    payLoad = _replaceAll_9;
-    String _replaceAll_10 = payLoad.replaceAll("(^|\\s)cd(\\s|$)", " code ");
-    payLoad = _replaceAll_10;
-    String _replaceAll_11 = payLoad.replaceAll("(^|\\s)desc(\\s|$)", " description ");
-    payLoad = _replaceAll_11;
-    String _replaceAll_12 = payLoad.replaceAll("(^|\\s)diet(\\s|$)", " dietary ");
-    payLoad = _replaceAll_12;
-    String _replaceAll_13 = payLoad.replaceAll("(^|\\s)dv(\\s|$)", " daily volume ");
-    payLoad = _replaceAll_13;
-    String _replaceAll_14 = payLoad.replaceAll("(^|\\s)exp(\\s|$)", " expiring ");
-    payLoad = _replaceAll_14;
-    String _replaceAll_15 = payLoad.replaceAll("(^|\\s)hdr(\\s|$)", " header ");
-    payLoad = _replaceAll_15;
-    String _replaceAll_16 = payLoad.replaceAll("(^|\\s)hier(\\s|$)", " hierarchy ");
-    payLoad = _replaceAll_16;
-    String _replaceAll_17 = payLoad.replaceAll("(^|\\s)id(\\s|$)", " identifier ");
-    payLoad = _replaceAll_17;
-    String _replaceAll_18 = payLoad.replaceAll("(^|\\s)img(\\s|$)", " image ");
-    payLoad = _replaceAll_18;
-    String _replaceAll_19 = payLoad.replaceAll("(^|\\s)lang(\\s|$)", " language ");
-    payLoad = _replaceAll_19;
-    String _replaceAll_20 = payLoad.replaceAll("(^|\\s)nm(\\s|$)", " name ");
-    payLoad = _replaceAll_20;
-    String _replaceAll_21 = payLoad.replaceAll("(^|\\s)num(\\s|$)", " number ");
-    payLoad = _replaceAll_21;
-    String _replaceAll_22 = payLoad.replaceAll("(^|\\s)pkg(\\s|$)", " package ");
-    payLoad = _replaceAll_22;
-    String _replaceAll_23 = payLoad.replaceAll("(^|\\s)ref(\\s|$)", " reference ");
-    payLoad = _replaceAll_23;
-    String _replaceAll_24 = payLoad.replaceAll("(^|\\s)sat(\\s|$)", " saturated ");
-    payLoad = _replaceAll_24;
-    String _replaceAll_25 = payLoad.replaceAll("(^|\\s)serv(\\s|$)", " serving ");
-    payLoad = _replaceAll_25;
-    String _replaceAll_26 = payLoad.replaceAll("(^|\\s)sod(\\s|$)", " sodium ");
-    payLoad = _replaceAll_26;
-    String _replaceAll_27 = payLoad.replaceAll("(^|\\s)sku(\\s|$)", " stock-keeping unit ");
-    payLoad = _replaceAll_27;
-    String _replaceAll_28 = payLoad.replaceAll("(^|\\s)srp(\\s|$)", " suggested retail price ");
-    payLoad = _replaceAll_28;
-    String _replaceAll_29 = payLoad.replaceAll("(^|\\s)tel(\\s|$)", " telephone ");
-    payLoad = _replaceAll_29;
-    String _replaceAll_30 = payLoad.replaceAll("(^|\\s)tot(\\s|$)", " total ");
-    payLoad = _replaceAll_30;
-    String _trim = payLoad.trim();
-    payLoad = _trim;
+    payLoad = payLoad.replaceAll("(^|\\s)abv(\\s|$)", " alcohol by volume ");
+    payLoad = payLoad.replaceAll("(^|\\s)abw(\\s|$)", " alcohol by weight ");
+    payLoad = payLoad.replaceAll("(^|\\s)accnt(\\s|$)", " account ");
+    payLoad = payLoad.replaceAll("(^|\\s)addr(\\s|$)", " address ");
+    payLoad = payLoad.replaceAll("(^|\\s)base id(\\s|$)", " identifier ");
+    payLoad = payLoad.replaceAll("(^|\\s)base uuid(\\s|$)", " identifier ");
+    payLoad = payLoad.replaceAll("(^|\\s)bsin(\\s|$)", " brand single identification number ");
+    payLoad = payLoad.replaceAll("(^|\\s)cal(\\s|$)", " calories ");
+    payLoad = payLoad.replaceAll("(^|\\s)carb(\\s|$)", " carbohydrate ");
+    payLoad = payLoad.replaceAll("(^|\\s)chol(\\s|$)", " cholesterol ");
+    payLoad = payLoad.replaceAll("(^|\\s)cd(\\s|$)", " code ");
+    payLoad = payLoad.replaceAll("(^|\\s)desc(\\s|$)", " description ");
+    payLoad = payLoad.replaceAll("(^|\\s)diet(\\s|$)", " dietary ");
+    payLoad = payLoad.replaceAll("(^|\\s)dv(\\s|$)", " daily volume ");
+    payLoad = payLoad.replaceAll("(^|\\s)exp(\\s|$)", " expiring ");
+    payLoad = payLoad.replaceAll("(^|\\s)hdr(\\s|$)", " header ");
+    payLoad = payLoad.replaceAll("(^|\\s)hier(\\s|$)", " hierarchy ");
+    payLoad = payLoad.replaceAll("(^|\\s)id(\\s|$)", " identifier ");
+    payLoad = payLoad.replaceAll("(^|\\s)img(\\s|$)", " image ");
+    payLoad = payLoad.replaceAll("(^|\\s)lang(\\s|$)", " language ");
+    payLoad = payLoad.replaceAll("(^|\\s)nm(\\s|$)", " name ");
+    payLoad = payLoad.replaceAll("(^|\\s)num(\\s|$)", " number ");
+    payLoad = payLoad.replaceAll("(^|\\s)pkg(\\s|$)", " package ");
+    payLoad = payLoad.replaceAll("(^|\\s)ref(\\s|$)", " reference ");
+    payLoad = payLoad.replaceAll("(^|\\s)sat(\\s|$)", " saturated ");
+    payLoad = payLoad.replaceAll("(^|\\s)serv(\\s|$)", " serving ");
+    payLoad = payLoad.replaceAll("(^|\\s)sod(\\s|$)", " sodium ");
+    payLoad = payLoad.replaceAll("(^|\\s)sku(\\s|$)", " stock-keeping unit ");
+    payLoad = payLoad.replaceAll("(^|\\s)srp(\\s|$)", " suggested retail price ");
+    payLoad = payLoad.replaceAll("(^|\\s)tel(\\s|$)", " telephone ");
+    payLoad = payLoad.replaceAll("(^|\\s)tot(\\s|$)", " total ");
+    payLoad = payLoad.trim();
     return payLoad;
   }
   
+  @Override
   public void doGenerate(final Resource input, final IFileSystemAccess fsa) {
     this.generateI18n(fsa, input);
     super.doGenerate(input, fsa);
diff --git a/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/JvmInferrerDelegate.java b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/JvmInferrerDelegate.java
index 500d3d8..d7847a3 100644
--- a/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/JvmInferrerDelegate.java
+++ b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/JvmInferrerDelegate.java
@@ -17,10 +17,8 @@
 import com.google.common.base.Objects;
 import com.google.inject.Inject;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.osbp.dsl.semantic.common.types.LTypedPackage;
-import org.eclipse.osbp.dsl.xtext.lazyresolver.api.hook.IInferrerDelegate;
+import org.eclipse.osbp.xtext.oxtype.hooks.IInferrerDelegate;
 import org.eclipse.xtext.common.types.JvmDeclaredType;
 import org.eclipse.xtext.naming.IQualifiedNameProvider;
 import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor;
@@ -28,7 +26,7 @@
 import org.eclipse.xtext.xbase.jvmmodel.JvmTypeReferenceBuilder;
 import org.eclipse.xtext.xbase.lib.Extension;
 
-@SuppressWarnings("all")
+@SuppressWarnings("restriction")
 public class JvmInferrerDelegate implements IInferrerDelegate {
   @Inject
   @Extension
@@ -46,36 +44,24 @@
   @Extension
   protected JvmTypeReferenceBuilder _typeReferenceBuilder;
   
+  @Override
   public void inferTypesOnly(final EObject semanticElement, final IJvmDeclaredTypeAcceptor acceptor, final boolean preIndexingPhase) {
     if ((semanticElement instanceof LTypedPackage)) {
       final LTypedPackage lPkg = ((LTypedPackage) semanticElement);
     }
   }
   
+  @Override
   public void inferFullState(final JvmDeclaredType jvmType, final EObject semanticElement, final IJvmDeclaredTypeAcceptor acceptor, final boolean preIndexingPhase, final String selector) {
     boolean _equals = Objects.equal(this._annotationTypesBuilder, null);
     if (_equals) {
-      Resource _eResource = semanticElement.eResource();
-      ResourceSet _resourceSet = _eResource.getResourceSet();
-      JvmAnnotationReferenceBuilder _create = this.annotationRefBuilderFactory.create(_resourceSet);
-      this._annotationTypesBuilder = _create;
+      this._annotationTypesBuilder = this.annotationRefBuilderFactory.create(semanticElement.eResource().getResourceSet());
     }
     boolean _equals_1 = Objects.equal(this._typeReferenceBuilder, null);
     if (_equals_1) {
-      Resource _eResource_1 = semanticElement.eResource();
-      ResourceSet _resourceSet_1 = _eResource_1.getResourceSet();
-      JvmTypeReferenceBuilder _create_1 = this.typeRefBuilderFactory.create(_resourceSet_1);
-      this._typeReferenceBuilder = _create_1;
+      this._typeReferenceBuilder = this.typeRefBuilderFactory.create(semanticElement.eResource().getResourceSet());
     }
-    boolean _and = false;
-    boolean _notEquals = (!Objects.equal(selector, null));
-    if (!_notEquals) {
-      _and = false;
-    } else {
-      boolean _equals_2 = selector.equals("osbp.translator");
-      _and = _equals_2;
-    }
-    if (_and) {
+    if (((!Objects.equal(selector, null)) && selector.equals("osbp.translator"))) {
       final LTypedPackage lPkg = ((LTypedPackage) semanticElement);
     }
   }
diff --git a/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/StringComparator.java b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/StringComparator.java
index 7f07181..439e97d 100644
--- a/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/StringComparator.java
+++ b/org.eclipse.osbp.xtext.i18n/xtend-gen/org/eclipse/osbp/xtext/i18n/StringComparator.java
@@ -18,6 +18,7 @@
 
 @SuppressWarnings("all")
 public class StringComparator implements Comparator<String> {
+  @Override
   public int compare(final String arg0, final String arg1) {
     boolean _lessThan = (arg0.compareTo(arg1) < 0);
     if (_lessThan) {