added possibility to delegate "get" to ATL code (running on EMFVM)
diff --git a/plugins/org.eclipse.gmt.tcs.metadata/src/org/eclipse/gmt/tcs/metadata/adhoc/VirtualModelAdapter.java b/plugins/org.eclipse.gmt.tcs.metadata/src/org/eclipse/gmt/tcs/metadata/adhoc/VirtualModelAdapter.java
index b9f4063..6b972d7 100644
--- a/plugins/org.eclipse.gmt.tcs.metadata/src/org/eclipse/gmt/tcs/metadata/adhoc/VirtualModelAdapter.java
+++ b/plugins/org.eclipse.gmt.tcs.metadata/src/org/eclipse/gmt/tcs/metadata/adhoc/VirtualModelAdapter.java
@@ -21,6 +21,8 @@
 

 import org.eclipse.gmt.tcs.injector.ModelAdapter;

 import org.eclipse.m2m.atl.drivers.emf4atl.ASMEMFModelElement;

+import org.eclipse.m2m.atl.engine.emfvm.lib.ExecEnv;

+import org.eclipse.m2m.atl.engine.emfvm.lib.Operation;

 import org.eclipse.m2m.atl.engine.emfvm.lib.Tuple;

 

 /**

@@ -36,12 +38,24 @@
 	// <Object, Map<String, Object>>

 	private Map virtualProperties = new HashMap();

 

+	private ExecEnv execEnv;

+

 	public VirtualModelAdapter(ModelAdapter actualModelAdapter) {

+		this(actualModelAdapter, null);

+	}

+

+	public VirtualModelAdapter(ModelAdapter actualModelAdapter, ExecEnv execEnv) {

 		this.actualModelAdapter = actualModelAdapter;

+		this.execEnv = execEnv;

 	}

 

 	public Object get(Object ame_, String propertyName) {

-		return this.actualModelAdapter.get(ame_, propertyName);

+		if(this.execEnv != null) {

+			Operation op = execEnv.getOperation(this.actualModelAdapter.getType(ame_), "get");

+			return op.exec(null);

+		} else {

+			return this.actualModelAdapter.get(ame_, propertyName);

+		}

 	}

 

 	public Object createElement(String typeName) {