Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.dctools/src/org/eclipse/etrice/dctools/GenModelAccess.xtend')
-rw-r--r--plugins/org.eclipse.etrice.dctools/src/org/eclipse/etrice/dctools/GenModelAccess.xtend36
1 files changed, 36 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.dctools/src/org/eclipse/etrice/dctools/GenModelAccess.xtend b/plugins/org.eclipse.etrice.dctools/src/org/eclipse/etrice/dctools/GenModelAccess.xtend
new file mode 100644
index 000000000..340b069b8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.dctools/src/org/eclipse/etrice/dctools/GenModelAccess.xtend
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2011 protos software gmbh (http://www.protos.de).
+ * 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:
+ * Henrik Rentz-Reichert (initial contribution)
+ *
+ *******************************************************************************/
+
+package org.eclipse.etrice.dctools
+
+import java.util.Map
+import org.eclipse.etrice.core.RoomStandaloneSetup
+import org.eclipse.etrice.core.fsm.fSM.ModelComponent
+import org.eclipse.etrice.core.genmodel.fsm.ExtendedFsmGenBuilder
+import org.eclipse.etrice.core.genmodel.fsm.fsmgen.GraphContainer
+
+class GenModelAccess {
+
+ Map<ModelComponent, GraphContainer> cache = newHashMap
+
+ def public GraphContainer get(ModelComponent mc) {
+ if(!cache.containsKey(mc)) {
+ val injector = new RoomStandaloneSetup().createInjector
+ val builder = new ExtendedFsmGenBuilder(injector);
+ val gc = builder.createTransformedModel(mc)
+ builder.withCommonData(gc)
+ cache.put(mc, gc)
+ }
+
+ return cache.get(mc)
+ }
+} \ No newline at end of file

Back to the top