Author: assaf
Date: Fri Nov 10 16:42:19 2006
New Revision: 473600

URL: http://svn.apache.org/viewvc?view=rev&rev=473600
Log:
Added implictScope flag to OScope

Modified:
    
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
    
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
    incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OScope.java

Modified: 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java?view=diff&rev=473600&r1=473599&r2=473600
==============================================================================
--- 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
 (original)
+++ 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
 Fri Nov 10 16:42:19 2006
@@ -733,8 +733,8 @@
         OActivity compiled;
         try {
             compiled = (source instanceof ScopeLikeActivity)  ?
-                compileSLC((ScopeLikeActivity)source) :
-                compileActivity(source);
+                compileSLC((ScopeLikeActivity)source, new OScope.Variable[0]) :
+                compileActivity(true, source);
             compiled.suppressJoinFailure = _supressJoinFailure;
         } finally {
             _supressJoinFailure = previousSupressJoinFailure;
@@ -752,23 +752,29 @@
         return activity;
     }
 
-    public OScope compileSLC(final ScopeLikeActivity source) {
+    public OScope compileSLC(final ScopeLikeActivity source, final 
OScope.Variable[] variables) {
         final OScope implicitScope = new OScope(_oprocess, getCurrent());
+        implicitScope.implicitScope = true;
         implicitScope.name = createName(source);
         implicitScope.debugInfo = createDebugInfo(source, "Scope-like 
construct " + source);
         compileScope(implicitScope, source.getScope(), new Runnable() {
             public void run() {
+                compileLinks(source);
+                for (OScope.Variable  v : variables) {
+                    v.declaringScope = implicitScope;
+                    implicitScope.addLocalVariable(v);
+                }
                 if (source instanceof ScopeActivity)
                     implicitScope.activity = 
compile(((ScopeActivity)source).getChildActivity());
                 else
-                    implicitScope.activity = compileActivity(source);
+                    implicitScope.activity = compileActivity(false, source);
             }
         });
 
         return implicitScope;
     }
     
-    private OActivity compileActivity(final Activity source) {
+    private OActivity compileActivity(final boolean doLinks, final Activity 
source) {
         final ActivityGenerator actgen = findActivityGen(source);
         final OActivity oact = actgen.newInstance(source);
         oact.name = createName(source);
@@ -776,7 +782,8 @@
         _compiledActivities.add(oact);
         compile(oact, source, new Runnable() {
             public void run() {
-                compileLinks(source);
+                if (doLinks)
+                    compileLinks(source);
                 actgen.compile(oact,source);
             }
         });

Modified: 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java?view=diff&rev=473600&r1=473599&r2=473600
==============================================================================
--- 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
 (original)
+++ 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/api/CompilerContext.java
 Fri Nov 10 16:42:19 2006
@@ -84,7 +84,7 @@
     OActivity compile(Activity child)
             throws CompilationException;
 
-    OScope compileSLC(ScopeLikeActivity child);
+    OScope compileSLC(ScopeLikeActivity child, Variable[] variables);
 
     OPartnerLink resolvePartnerLink(String name)
             throws CompilationException;

Modified: 
incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OScope.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OScope.java?view=diff&rev=473600&r1=473599&r2=473600
==============================================================================
--- 
incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OScope.java 
(original)
+++ 
incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OScope.java 
Fri Nov 10 16:42:19 2006
@@ -58,6 +58,8 @@
     /** The descendants of this scope that can be compensated from the FH/CH 
of this scope. */
     public final Set<OScope> compensatable = new HashSet<OScope>();
 
+    public boolean implicitScope;
+
     public OScope(OProcess owner, OActivity parent) {
         super(owner, parent);
     }


Reply via email to