-package org.simantics.modeling;\r
-\r
-import java.util.HashSet;\r
-import java.util.Set;\r
-\r
-import org.simantics.Simantics;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.common.request.ReadRequest;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.util.Layer0Utils;\r
-import org.simantics.db.layer0.variable.Variable;\r
-import org.simantics.db.layer0.variable.Variables;\r
-import org.simantics.project.exception.ProjectException;\r
-import org.simantics.project.features.AbstractProjectFeature;\r
-import org.simantics.scl.runtime.function.Function1;\r
-import org.simantics.scl.runtime.tuple.Tuple0;\r
-\r
-public class LifeCycleProcesses extends AbstractProjectFeature {\r
- \r
- Set<LifeCycleContext> contexts = new HashSet<LifeCycleContext>();\r
-\r
- @Override\r
- public void configure() throws ProjectException {\r
-\r
- try {\r
-\r
- Simantics.getSession().syncRequest(new ReadRequest() {\r
-\r
- @Override\r
- public void run(ReadGraph graph) throws DatabaseException {\r
-\r
- ModelingResources MOD = ModelingResources.getInstance(graph);\r
- for(Resource indexRoot : Layer0Utils.listIndexRoots(graph)) {\r
- for(Resource lcp : ModelingUtils.searchByTypeShallow(graph, indexRoot, MOD.LifeCycleProcess)) {\r
- \r
-// System.err.println("Loading life cycle process " + graph.getURI(lcp));\r
- Function1<LifeCycleContext,Tuple0> load = null; \r
- Function1<LifeCycleContext,Tuple0> unload = null;\r
- Variable loadProperty = Variables.tryGetProperty(graph, lcp, MOD.LifeCycleProcess_load);\r
- if (loadProperty != null) {\r
- load = loadProperty.getPossibleValue(graph);\r
- }\r
- Variable unloadProperty = Variables.tryGetProperty(graph, lcp, MOD.LifeCycleProcess_unload);\r
- if (unloadProperty != null) {\r
- unload = unloadProperty.getPossibleValue(graph);\r
- }\r
-\r
- LifeCycleContext lcc = new LifeCycleContext(lcp, load, unload);\r
- contexts.add(lcc);\r
- \r
- }\r
- }\r
- \r
- }\r
- \r
- });\r
- \r
- } catch (DatabaseException e) {\r
- \r
- throw new ProjectException(e);\r
- \r
- }\r
- \r
- for(LifeCycleContext context : contexts) {\r
- context.load();\r
- }\r
- \r
- }\r
-\r
- @Override\r
- public void deconfigure() throws ProjectException {\r
-\r
- for(LifeCycleContext context : contexts) {\r
- context.unload();\r
- }\r
-\r
- }\r
- \r
-}\r
+package org.simantics.modeling;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.simantics.Simantics;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.common.request.ReadRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.util.Layer0Utils;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.db.layer0.variable.Variables;
+import org.simantics.project.exception.ProjectException;
+import org.simantics.project.features.AbstractProjectFeature;
+import org.simantics.scl.runtime.function.Function1;
+import org.simantics.scl.runtime.tuple.Tuple0;
+
+public class LifeCycleProcesses extends AbstractProjectFeature {
+
+ Set<LifeCycleContext> contexts = new HashSet<LifeCycleContext>();
+
+ @Override
+ public void configure() throws ProjectException {
+
+ try {
+
+ Simantics.getSession().syncRequest(new ReadRequest() {
+
+ @Override
+ public void run(ReadGraph graph) throws DatabaseException {
+
+ ModelingResources MOD = ModelingResources.getInstance(graph);
+ for(Resource indexRoot : Layer0Utils.listIndexRoots(graph)) {
+ for(Resource lcp : ModelingUtils.searchByTypeShallow(graph, indexRoot, MOD.LifeCycleProcess)) {
+
+// System.err.println("Loading life cycle process " + graph.getURI(lcp));
+ Function1<LifeCycleContext,Tuple0> load = null;
+ Function1<LifeCycleContext,Tuple0> unload = null;
+ Variable loadProperty = Variables.tryGetProperty(graph, lcp, MOD.LifeCycleProcess_load);
+ if (loadProperty != null) {
+ load = loadProperty.getPossibleValue(graph);
+ }
+ Variable unloadProperty = Variables.tryGetProperty(graph, lcp, MOD.LifeCycleProcess_unload);
+ if (unloadProperty != null) {
+ unload = unloadProperty.getPossibleValue(graph);
+ }
+
+ LifeCycleContext lcc = new LifeCycleContext(lcp, load, unload);
+ contexts.add(lcc);
+
+ }
+ }
+
+ }
+
+ });
+
+ } catch (DatabaseException e) {
+
+ throw new ProjectException(e);
+
+ }
+
+ for(LifeCycleContext context : contexts) {
+ context.load();
+ }
+
+ }
+
+ @Override
+ public void deconfigure() throws ProjectException {
+
+ for(LifeCycleContext context : contexts) {
+ context.unload();
+ }
+
+ }
+
+}