--- /dev/null
+package org.simantics.modeling;\r
+\r
+import org.simantics.db.Resource;\r
+import org.simantics.scl.runtime.function.Function1;\r
+import org.simantics.scl.runtime.tuple.Tuple0;\r
+\r
+public class LifeCycleContext {\r
+\r
+ final private Resource resource;\r
+ final private Function1<LifeCycleContext,Tuple0> load;\r
+ final private Function1<LifeCycleContext,Tuple0> unload;\r
+ \r
+ public LifeCycleContext(Resource resource, Function1<LifeCycleContext, Tuple0> load, Function1<LifeCycleContext, Tuple0> unload) {\r
+ this.resource = resource;\r
+ this.load = load;\r
+ this.unload = unload;\r
+ }\r
+ \r
+ public void load() {\r
+ if(load != null) load.apply(this);\r
+ }\r
+ \r
+ public void unload() {\r
+ if(unload != null) unload.apply(this);\r
+ }\r
+ \r
+}\r