|
From: <ha...@us...> - 2006-11-22 20:29:40
|
Revision: 1403
http://svn.sourceforge.net/cogkit/?rev=1403&view=rev
Author: hategan
Date: 2006-11-22 12:29:38 -0800 (Wed, 22 Nov 2006)
Log Message:
-----------
added once() - a guaranteed version of cacheOn()
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/resources/sys-common.xml
Added Paths:
-----------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/Once.java
Modified: trunk/current/src/cog/modules/karajan/resources/sys-common.xml
===================================================================
--- trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-11-22 20:28:39 UTC (rev 1402)
+++ trunk/current/src/cog/modules/karajan/resources/sys-common.xml 2006-11-22 20:29:38 UTC (rev 1403)
@@ -81,6 +81,7 @@
<export name="time"><elementDef classname="org.globus.cog.karajan.workflow.nodes.functions.Time"/></export>
<export name="cacheon"><elementDef classname="org.globus.cog.karajan.workflow.nodes.CacheOn"/></export>
+ <export name="once"><elementDef classname="org.globus.cog.karajan.workflow.nodes.Once"/></export>
<export name="checkpoint"><elementDef classname="org.globus.cog.karajan.workflow.nodes.CheckpointNode"/></export>
<export name="wait"><elementDef classname="org.globus.cog.karajan.workflow.nodes.WaitNode"/></export>
Added: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/Once.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/Once.java (rev 0)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/workflow/nodes/Once.java 2006-11-22 20:29:38 UTC (rev 1403)
@@ -0,0 +1,39 @@
+// ----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on Apr 26, 2005
+ */
+package org.globus.cog.karajan.workflow.nodes;
+
+import org.globus.cog.karajan.arguments.Arg;
+import org.globus.cog.karajan.stack.VariableStack;
+import org.globus.cog.karajan.util.Cache;
+import org.globus.cog.karajan.workflow.ExecutionException;
+
+public class Once extends CacheNode {
+ public static final String CACHE = "##cache";
+
+ public static final Arg A_VALUE = new Arg.Positional("value", 0);
+
+ static {
+ setArguments(Once.class, new Arg[] { A_VALUE });
+ }
+
+ protected void partialArgumentsEvaluated(VariableStack stack) throws ExecutionException {
+ cpre(A_VALUE.getValue(stack), stack);
+ }
+
+ protected synchronized Cache getCache(VariableStack stack) throws ExecutionException {
+ Cache cache = (Cache) stack.getGlobal(CACHE);
+ if (cache == null) {
+ cache = new Cache();
+ cache.setMaxCacheSize(-1);
+ stack.setGlobal(CACHE, cache);
+ }
+ return cache;
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|