[419462] - Partial work concerning AssitedInject usage.
Incomplete/Doesn't work

https://bugs.eclipse.org/bugs/show_bug.cgi?id=419462
Bug 419462
diff --git a/examples/org.eclipse.ocl.examples.xtext.base/META-INF/MANIFEST.MF b/examples/org.eclipse.ocl.examples.xtext.base/META-INF/MANIFEST.MF
index 037cfa3..0e4b171 100644
--- a/examples/org.eclipse.ocl.examples.xtext.base/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.ocl.examples.xtext.base/META-INF/MANIFEST.MF
@@ -21,9 +21,10 @@
  org.eclipse.ocl.examples.xtext.base.utilities
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.ocl.examples.pivot;visibility:=reexport;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.xtext;visibility:=reexport;bundle-version="[2.4.2,3.0.0)",
- org.eclipse.xtext.common.types;visibility:=reexport;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.emf.codegen;bundle-version="[2.6.0,3.0.0)"
+ org.eclipse.ocl.examples.pivot;bundle-version="[3.3.0,4.0.0)";visibility:=reexport,
+ org.eclipse.xtext;bundle-version="[2.4.2,3.0.0)";visibility:=reexport,
+ org.eclipse.xtext.common.types;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.codegen;bundle-version="[2.6.0,3.0.0)",
+ com.google.inject.assitedinject;bundle-version="3.0.0";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.ocl.examples.xtext.base.utilities.BasePlugin$Implementation
diff --git a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCS2ASFactory.java b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCS2ASFactory.java
index 739c99f..750f20d 100644
--- a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCS2ASFactory.java
+++ b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCS2ASFactory.java
@@ -5,7 +5,8 @@
 import com.google.inject.Inject;
 import com.google.inject.Injector;
 
-public class BaseCS2ASFactory implements ICS2ASFactory {
+public class BaseCS2ASFactory // implements ICS2ASFactory 
+{
 	
 	private final InjectorProvider injectorProvider;
 	
diff --git a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCS2ASRuntimeModule.java b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCS2ASRuntimeModule.java
index 2b64614..edad635 100644
--- a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCS2ASRuntimeModule.java
+++ b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCS2ASRuntimeModule.java
@@ -1,7 +1,12 @@
 package org.eclipse.ocl.examples.xtext.base.cs2as;
 
+import org.eclipse.ocl.examples.xtext.base.basecs.util.BaseCSVisitor;
 import org.eclipse.xtext.service.AbstractGenericModule;
 
+import com.google.inject.Binder;
+import com.google.inject.assistedinject.FactoryModuleBuilder;
+import com.google.inject.name.Names;
+
 
 /**
  * Google Guice runtime module to define the bindings for the CS2AS framework
@@ -10,7 +15,19 @@
  */
 public abstract class BaseCS2ASRuntimeModule extends AbstractGenericModule{
 
-	public Class<? extends Continuations> bindContinuations() {
-		return Continuations.class;
+//	public Class<? extends Continuations> bindContinuations() {
+//		return Continuations.class;
+//	}
+	
+	
+	public void configureFactory(Binder binder) {
+		
+		binder.install(new FactoryModuleBuilder()
+				.implement(Continuations.class, Continuations.class)
+//				.implement(BaseCSVisitor.class, Names.named("ContainmentVisitor"), BaseCSContainmentVisitor.class)
+				.implement(BaseCSVisitor.class, Names.named("PreOrderVisitor"), BaseCSPreOrderVisitor.class)
+//				.implement(BaseCSVisitor.class, Names.named("PostOrderVisitor"), BaseCSPostOrderVisitor.class)
+//				.implement(BaseCSVisitor.class, Names.named("Left2RightVisitor"), BaseCSLeft2RightVisitor.class)				
+				.build(ICS2ASFactory.class));
 	}
 }
diff --git a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCSPreOrderVisitor.java b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCSPreOrderVisitor.java
index 5bebe40..0509344 100644
--- a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCSPreOrderVisitor.java
+++ b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/BaseCSPreOrderVisitor.java
@@ -68,12 +68,13 @@
 import org.eclipse.ocl.examples.xtext.base.utilities.ElementUtil;
 
 import com.google.inject.Inject;
-import com.google.inject.Injector;
+import com.google.inject.assistedinject.Assisted;
+import com.google.inject.assistedinject.AssistedInject;
 
 public class BaseCSPreOrderVisitor extends AbstractExtendingBaseCSVisitor<Continuation<?>, CS2PivotConversion>
 {
 	@Inject
-	ICS2ASFactory cs2asFactory;
+	private ICS2ASFactory cs2asFactory;
 	
 	protected static class ClassSupersContinuation extends SingleContinuation<ClassCS>
 	{
@@ -382,17 +383,18 @@
 		}
 	}
 
-	public BaseCSPreOrderVisitor(@NonNull CS2PivotConversion context) {
+	@AssistedInject
+	public BaseCSPreOrderVisitor(@Assisted @NonNull CS2PivotConversion context) {
 		super(context);	
-		getInjector().injectMembers(this); // FIXME workaround since this class is not injected by Guice yet.
+		// getInjector().injectMembers(this); // FIXME workaround since this class is not injected by Guice yet.
 	}
 	
 	
 	// FIXME workaround since this class is not injected by guice yet
-	protected Injector getInjector() {
-		// overriden by derived classes
-		return null;
-	}
+//	protected Injector getInjector() {
+//		// overriden by derived classes
+//		return null;
+//	}
 	
 
 	public Continuation<?> visiting(@NonNull VisitableCS visitable) {
diff --git a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/CS2PivotConversion.java b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/CS2PivotConversion.java
index 7e0a917..09c2dc1 100644
--- a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/CS2PivotConversion.java
+++ b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/CS2PivotConversion.java
@@ -108,6 +108,8 @@
 import org.eclipse.xtext.nodemodel.INode;
 import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
 
+import com.google.inject.Inject;
+
 public class CS2PivotConversion extends AbstractBase2PivotConversion
 {	
 	private static final Logger logger = Logger.getLogger(CS2PivotConversion.class);
@@ -128,6 +130,9 @@
 	protected final @NonNull CS2Pivot converter;
 	protected final @NonNull Collection<? extends Resource> csResources;
 	
+	@Inject
+	private ICS2ASFactory cs2asFactory;
+	
 	/**
 	 * The Visitors
 	 */
@@ -135,7 +140,7 @@
 	private final @NonNull BaseCSVisitor<Element> left2RightVisitor;
 	private final @NonNull BaseCSVisitor<Continuation<?>> postOrderVisitor;
 	private final @NonNull BaseCSVisitor<Continuation<?>> preOrderVisitor;
-
+	
 	private @NonNull InterDependency<TemplateSignatureContinuation> typesHaveSignatures = new InterDependency<TemplateSignatureContinuation>("All unspecialized signatures defined", null);
 
 	/**
@@ -161,7 +166,7 @@
 		this.containmentVisitor = converter.createContainmentVisitor(this);
 		this.left2RightVisitor = converter.createLeft2RightVisitor(this);
 		this.postOrderVisitor = converter.createPostOrderVisitor(this);
-		this.preOrderVisitor = converter.createPreOrderVisitor(this);
+		this.preOrderVisitor = cs2asFactory.createPreOrderVisitor(this);
 		List<Resource> mappedResources = new ArrayList<Resource>();
 		for (Resource csResource : csResources) {
 			if (csResource != null) {
diff --git a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/ICS2ASFactory.java b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/ICS2ASFactory.java
index ce2dfae..d8ea226 100644
--- a/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/ICS2ASFactory.java
+++ b/examples/org.eclipse.ocl.examples.xtext.base/src/org/eclipse/ocl/examples/xtext/base/cs2as/ICS2ASFactory.java
@@ -1,5 +1,11 @@
 package org.eclipse.ocl.examples.xtext.base.cs2as;
 
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.xtext.base.basecs.util.BaseCSVisitor;
+
+import com.google.inject.name.Named;
+
+
 
 
 /**
@@ -8,7 +14,19 @@
  * @author asbh
  */
 public interface ICS2ASFactory {
-		
+
+	
+	// PivotDependency createPivotDependency(PivotableElementCS pivotableCSElement);
+	
+	// PreVisitor 
 	Continuations createContinuations();
 
+	
+	
+	// **** CS2PivotConversion visitors ****
+//	@NonNull @Named("ContainmentVisitor") BaseCSVisitor<Continuation<?>> createContainmentVisitor(CS2PivotConversion conversion);
+	@NonNull @Named("PreOrderVisitor") BaseCSVisitor<Continuation<?>> createPreOrderVisitor(CS2PivotConversion conversion);
+//	@NonNull @Named("PostOrderVisitor") BaseCSVisitor<Continuation<?>> createPostOrderVisitor(CS2PivotConversion conversion);
+//	@NonNull @Named("Left2RightVisitor") BaseCSVisitor<Element> createLeft2RightVisitor(CS2PivotConversion conversion);
+	
 }
diff --git a/examples/org.eclipse.ocl.examples.xtext.completeocl/src/org/eclipse/ocl/examples/xtext/completeocl/cs2as/CompleteOCLCS2ASRuntimeModule.java b/examples/org.eclipse.ocl.examples.xtext.completeocl/src/org/eclipse/ocl/examples/xtext/completeocl/cs2as/CompleteOCLCS2ASRuntimeModule.java
index 483929f..542b5a3 100644
--- a/examples/org.eclipse.ocl.examples.xtext.completeocl/src/org/eclipse/ocl/examples/xtext/completeocl/cs2as/CompleteOCLCS2ASRuntimeModule.java
+++ b/examples/org.eclipse.ocl.examples.xtext.completeocl/src/org/eclipse/ocl/examples/xtext/completeocl/cs2as/CompleteOCLCS2ASRuntimeModule.java
@@ -1,12 +1,33 @@
 package org.eclipse.ocl.examples.xtext.completeocl.cs2as;
 
+import org.eclipse.ocl.examples.xtext.base.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.examples.xtext.base.cs2as.BaseCS2ASRuntimeModule;
+import org.eclipse.ocl.examples.xtext.base.cs2as.Continuation;
+import org.eclipse.ocl.examples.xtext.base.cs2as.Continuations;
 import org.eclipse.ocl.examples.xtext.base.cs2as.ICS2ASFactory;
 
+import com.google.inject.Binder;
+import com.google.inject.TypeLiteral;
+import com.google.inject.assistedinject.FactoryModuleBuilder;
+import com.google.inject.name.Names;
+
 
 public class CompleteOCLCS2ASRuntimeModule extends BaseCS2ASRuntimeModule {
 		 
-	public Class<? extends ICS2ASFactory> bindICS2ASFactory() {
-		return CompleteOCLCS2ASFactory.class;
+//	public Class<? extends ICS2ASFactory> bindICS2ASFactory() {
+//		return CompleteOCLCS2ASFactory.class;
+//	}
+	
+	@Override
+	public void configureFactory(Binder binder) {
+		
+		binder.install(new FactoryModuleBuilder()
+				.implement(Continuations.class, Continuations.class)
+//				.implement(BaseCSVisitor.class, Names.named("ContainmentVisitor"), CompleteOCLCSContainmentVisitor.class)
+				.implement(new TypeLiteral<BaseCSVisitor<? extends Continuation<?>>>() {}, Names.named("PreOrderVisitor"), CompleteOCLCSPreOrderVisitor.class)
+				
+//				.implement(BaseCSVisitor.class, Names.named("PostOrderVisitor"), CompleteOCLCSPostOrderVisitor.class)
+//				.implement(BaseCSVisitor.class, Names.named("Left2RightVisitor"), CompleteOCLCSLeft2RightVisitor.class)
+				.build(ICS2ASFactory.class));
 	}
 }
\ No newline at end of file
diff --git a/examples/org.eclipse.ocl.examples.xtext.completeocl/src/org/eclipse/ocl/examples/xtext/completeocl/cs2as/CompleteOCLCSPreOrderVisitor.java b/examples/org.eclipse.ocl.examples.xtext.completeocl/src/org/eclipse/ocl/examples/xtext/completeocl/cs2as/CompleteOCLCSPreOrderVisitor.java
index 7ac838a..22e530f 100644
--- a/examples/org.eclipse.ocl.examples.xtext.completeocl/src/org/eclipse/ocl/examples/xtext/completeocl/cs2as/CompleteOCLCSPreOrderVisitor.java
+++ b/examples/org.eclipse.ocl.examples.xtext.completeocl/src/org/eclipse/ocl/examples/xtext/completeocl/cs2as/CompleteOCLCSPreOrderVisitor.java
@@ -26,9 +26,13 @@
 import org.eclipse.ocl.examples.xtext.completeocl.completeoclcs.PropertyContextDeclCS;
 import org.eclipse.ocl.examples.xtext.completeocl.completeoclcs.util.AbstractCompleteOCLCSPreOrderVisitor;
 
+import com.google.inject.assistedinject.Assisted;
+import com.google.inject.assistedinject.AssistedInject;
+
 public class CompleteOCLCSPreOrderVisitor extends AbstractCompleteOCLCSPreOrderVisitor
 {	
-	public CompleteOCLCSPreOrderVisitor(@NonNull CS2PivotConversion context) {
+	@AssistedInject
+	public CompleteOCLCSPreOrderVisitor(@Assisted @NonNull CS2PivotConversion context) {
 		super(context);
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.xtext.essentialocl/src/org/eclipse/ocl/examples/xtext/essentialocl/cs2as/EssentialOCLCS2ASRuntimeModule.java b/examples/org.eclipse.ocl.examples.xtext.essentialocl/src/org/eclipse/ocl/examples/xtext/essentialocl/cs2as/EssentialOCLCS2ASRuntimeModule.java
index 2c669aa..8d48241 100644
--- a/examples/org.eclipse.ocl.examples.xtext.essentialocl/src/org/eclipse/ocl/examples/xtext/essentialocl/cs2as/EssentialOCLCS2ASRuntimeModule.java
+++ b/examples/org.eclipse.ocl.examples.xtext.essentialocl/src/org/eclipse/ocl/examples/xtext/essentialocl/cs2as/EssentialOCLCS2ASRuntimeModule.java
@@ -1,15 +1,33 @@
 package org.eclipse.ocl.examples.xtext.essentialocl.cs2as;
 
+import org.eclipse.ocl.examples.xtext.base.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.examples.xtext.base.cs2as.BaseCS2ASRuntimeModule;
+import org.eclipse.ocl.examples.xtext.base.cs2as.Continuation;
+import org.eclipse.ocl.examples.xtext.base.cs2as.Continuations;
 import org.eclipse.ocl.examples.xtext.base.cs2as.ICS2ASFactory;
 
+import com.google.inject.Binder;
+import com.google.inject.TypeLiteral;
+import com.google.inject.assistedinject.FactoryModuleBuilder;
+import com.google.inject.name.Names;
+
 
 public class EssentialOCLCS2ASRuntimeModule extends BaseCS2ASRuntimeModule {
+	
+//	public Class<? extends ICS2ASFactory> bindICS2ASFactory() {
+//		return EssentialOCLCS2ASFactory.class;
+//	}
+	
+	@Override
+	public void configureFactory(Binder binder) {
 		
-	/**
-	 * @return 
-	 */ 
-	public Class<? extends ICS2ASFactory> bindICS2ASFactory() {
-		return EssentialOCLCS2ASFactory.class;
+		binder.install(new FactoryModuleBuilder()
+				.implement(Continuations.class, Continuations.class)
+//				.implement(BaseCSVisitor.class, Names.named("ContainmentVisitor"), EssentialOCLCSContainmentVisitor.class)
+				.implement(new TypeLiteral<BaseCSVisitor<? extends Continuation<?>>>() {}, Names.named("PreOrderVisitor"), EssentialOCLCSPreOrderVisitor.class)
+				
+//				.implement(BaseCSVisitor.class, Names.named("PostOrderVisitor"), EssentialOCLCSPostOrderVisitor.class)
+//				.implement(BaseCSVisitor.class, Names.named("Left2RightVisitor"), EssentialOCLCSLeft2RightVisitor.class)				
+				.build(ICS2ASFactory.class));
 	}
 }
\ No newline at end of file
diff --git a/examples/org.eclipse.ocl.examples.xtext.essentialocl/src/org/eclipse/ocl/examples/xtext/essentialocl/cs2as/EssentialOCLCSPreOrderVisitor.java b/examples/org.eclipse.ocl.examples.xtext.essentialocl/src/org/eclipse/ocl/examples/xtext/essentialocl/cs2as/EssentialOCLCSPreOrderVisitor.java
index 5c28de8..f79f634 100644
--- a/examples/org.eclipse.ocl.examples.xtext.essentialocl/src/org/eclipse/ocl/examples/xtext/essentialocl/cs2as/EssentialOCLCSPreOrderVisitor.java
+++ b/examples/org.eclipse.ocl.examples.xtext.essentialocl/src/org/eclipse/ocl/examples/xtext/essentialocl/cs2as/EssentialOCLCSPreOrderVisitor.java
@@ -53,6 +53,8 @@
 import org.eclipse.ocl.examples.xtext.essentialocl.essentialoclcs.util.AbstractEssentialOCLCSPreOrderVisitor;
 
 import com.google.inject.Injector;
+import com.google.inject.assistedinject.Assisted;
+import com.google.inject.assistedinject.AssistedInject;
 
 public class EssentialOCLCSPreOrderVisitor extends AbstractEssentialOCLCSPreOrderVisitor
 {
@@ -138,7 +140,8 @@
 		}
 	}
 
-	public EssentialOCLCSPreOrderVisitor(@NonNull CS2PivotConversion context) {
+	@AssistedInject
+	public EssentialOCLCSPreOrderVisitor(@Assisted @NonNull CS2PivotConversion context) {
 		super(context);
 	}
 
@@ -214,8 +217,8 @@
 		return null;
 	}
 	
-	@Override
-	protected Injector getInjector() {
-		return EssentialOCLStandaloneSetup.getInjector();
-	}	
+//	@Override
+//	protected Injector getInjector() {
+//		return EssentialOCLStandaloneSetup.getInjector();
+//	}	
 }
\ No newline at end of file
diff --git a/examples/org.eclipse.ocl.examples.xtext.oclinecore/src/org/eclipse/ocl/examples/xtext/oclinecore/cs2as/OCLinEcoreCS2ASRuntimeModule.java b/examples/org.eclipse.ocl.examples.xtext.oclinecore/src/org/eclipse/ocl/examples/xtext/oclinecore/cs2as/OCLinEcoreCS2ASRuntimeModule.java
index 25d6d9b..a0d83d9 100644
--- a/examples/org.eclipse.ocl.examples.xtext.oclinecore/src/org/eclipse/ocl/examples/xtext/oclinecore/cs2as/OCLinEcoreCS2ASRuntimeModule.java
+++ b/examples/org.eclipse.ocl.examples.xtext.oclinecore/src/org/eclipse/ocl/examples/xtext/oclinecore/cs2as/OCLinEcoreCS2ASRuntimeModule.java
@@ -1,11 +1,32 @@
 package org.eclipse.ocl.examples.xtext.oclinecore.cs2as;
 
-import org.eclipse.ocl.examples.xtext.base.cs2as.BaseCS2ASRuntimeModule;
+import org.eclipse.ocl.examples.xtext.base.basecs.util.BaseCSVisitor;
+import org.eclipse.ocl.examples.xtext.base.cs2as.Continuation;
+import org.eclipse.ocl.examples.xtext.base.cs2as.Continuations;
 import org.eclipse.ocl.examples.xtext.base.cs2as.ICS2ASFactory;
+import org.eclipse.ocl.examples.xtext.essentialocl.cs2as.EssentialOCLCS2ASRuntimeModule;
 
-public class OCLinEcoreCS2ASRuntimeModule extends BaseCS2ASRuntimeModule {
+import com.google.inject.Binder;
+import com.google.inject.assistedinject.FactoryModuleBuilder;
+import com.google.inject.name.Names;
+import com.google.inject.TypeLiteral;
 
-	public Class<? extends ICS2ASFactory> bindICS2ASFactory() {
-		return OCLinEcoreCS2ASFactory.class;
+
+public class OCLinEcoreCS2ASRuntimeModule extends EssentialOCLCS2ASRuntimeModule {
+
+//	public Class<? extends ICS2ASFactory> bindICS2ASFactory() {
+//		return OCLinEcoreCS2ASFactory.class;
+//	}
+	
+	@Override
+	public void configureFactory(Binder binder) {
+		
+		binder.install(new FactoryModuleBuilder()
+				.implement(Continuations.class, Continuations.class)
+//				.implement(BaseCSVisitor.class, Names.named("ContainmentVisitor"), OCLinEcoreCSContainmentVisitor.class)
+				.implement(new TypeLiteral<BaseCSVisitor<? extends Continuation<?>>>() {}, Names.named("PreOrderVisitor"), OCLinEcoreCSPreOrderVisitor.class)
+//				.implement(BaseCSVisitor.class, Names.named("PostOrderVisitor"), OCLinEcoreCSPostOrderVisitor.class)
+//				.implement(BaseCSVisitor.class, Names.named("Left2RightVisitor"), OCLinEcoreCSLeft2RightVisitor.class)				
+				.build(ICS2ASFactory.class));
 	}
 }
\ No newline at end of file
diff --git a/examples/org.eclipse.ocl.examples.xtext.oclinecore/src/org/eclipse/ocl/examples/xtext/oclinecore/cs2as/OCLinEcoreCSPreOrderVisitor.java b/examples/org.eclipse.ocl.examples.xtext.oclinecore/src/org/eclipse/ocl/examples/xtext/oclinecore/cs2as/OCLinEcoreCSPreOrderVisitor.java
index 428d93b..3620fa2 100644
--- a/examples/org.eclipse.ocl.examples.xtext.oclinecore/src/org/eclipse/ocl/examples/xtext/oclinecore/cs2as/OCLinEcoreCSPreOrderVisitor.java
+++ b/examples/org.eclipse.ocl.examples.xtext.oclinecore/src/org/eclipse/ocl/examples/xtext/oclinecore/cs2as/OCLinEcoreCSPreOrderVisitor.java
@@ -20,9 +20,13 @@
 import org.eclipse.ocl.examples.xtext.base.cs2as.CS2PivotConversion;
 import org.eclipse.ocl.examples.xtext.oclinecore.oclinecorecs.util.AbstractOCLinEcoreCSPreOrderVisitor;
 
+import com.google.inject.assistedinject.Assisted;
+import com.google.inject.assistedinject.AssistedInject;
+
 public class OCLinEcoreCSPreOrderVisitor extends AbstractOCLinEcoreCSPreOrderVisitor
 {
-	public OCLinEcoreCSPreOrderVisitor(@NonNull CS2PivotConversion context) {
+	@AssistedInject
+	public OCLinEcoreCSPreOrderVisitor(@Assisted @NonNull CS2PivotConversion context) {
 		super(context);
 	}
 }
\ No newline at end of file
diff --git a/examples/org.eclipse.ocl.examples.xtext.oclstdlib/src/org/eclipse/ocl/examples/xtext/oclstdlib/cs2as/OCLstdlibCS2ASRuntimeModule.java b/examples/org.eclipse.ocl.examples.xtext.oclstdlib/src/org/eclipse/ocl/examples/xtext/oclstdlib/cs2as/OCLstdlibCS2ASRuntimeModule.java
index 18252ad..85e913a 100644
--- a/examples/org.eclipse.ocl.examples.xtext.oclstdlib/src/org/eclipse/ocl/examples/xtext/oclstdlib/cs2as/OCLstdlibCS2ASRuntimeModule.java
+++ b/examples/org.eclipse.ocl.examples.xtext.oclstdlib/src/org/eclipse/ocl/examples/xtext/oclstdlib/cs2as/OCLstdlibCS2ASRuntimeModule.java
@@ -1,12 +1,11 @@
 package org.eclipse.ocl.examples.xtext.oclstdlib.cs2as;
 
-import org.eclipse.ocl.examples.xtext.base.cs2as.ICS2ASFactory;
 import org.eclipse.xtext.service.AbstractGenericModule;
 
 
 public class OCLstdlibCS2ASRuntimeModule extends AbstractGenericModule {
 	
-	public Class<? extends ICS2ASFactory> bindICS2ASFactory() {
-		return OCLstdlibCS2ASFactory.class;
-	}
+//	public Class<? extends ICS2ASFactory> bindICS2ASFactory() {
+//		return OCLstdlibCS2ASFactory.class;
+//	}
 }
\ No newline at end of file