Author: pkluegl
Date: Thu Jul 11 10:48:58 2013
New Revision: 1502183

URL: http://svn.apache.org/r1502183
Log:
UIMA-3068
- fixed circular imports

Modified:
    
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java

Modified: 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java?rev=1502183&r1=1502182&r2=1502183&view=diff
==============================================================================
--- 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
 (original)
+++ 
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
 Thu Jul 11 10:48:58 2013
@@ -81,7 +81,7 @@ public class RutaEngine extends JCasAnno
   public static final String BASIC_TYPE = 
"org.apache.uima.ruta.type.RutaBasic";
 
   public static final String OPTIONAL_TYPE = 
"org.apache.uima.ruta.type.RutaOptional";
-  
+
   public static final String SEEDERS = "seeders";
 
   public static final String REMOVE_BASICS = "removeBasics";
@@ -128,8 +128,6 @@ public class RutaEngine extends JCasAnno
 
   public static final String SIMPLE_GREEDY_FOR_COMPOSED = 
"simpleGreedyForComposed";
 
-
-
   private String[] seeders;
 
   private Boolean createDebugInfo;
@@ -327,17 +325,21 @@ public class RutaEngine extends JCasAnno
     mainRootBlock.getEnvironment().initializeTypes(cas);
     Collection<RutaModule> values = script.getScripts().values();
     for (RutaModule eachModule : values) {
-      relinkEnvironments(eachModule, mainRootBlock);
+      relinkEnvironments(eachModule, mainRootBlock, new 
ArrayList<RutaModule>());
       // initializeTypes(eachModule, cas);
     }
   }
 
-  private void relinkEnvironments(RutaModule script, RutaBlock mainRootBlock) {
-    RutaBlock block = script.getBlock(null);
-    block.setParent(mainRootBlock);
-    Collection<RutaModule> innerScripts = script.getScripts().values();
-    for (RutaModule module : innerScripts) {
-      relinkEnvironments(module, mainRootBlock);
+  private void relinkEnvironments(RutaModule script, RutaBlock mainRootBlock,
+          Collection<RutaModule> processed) {
+    if (!processed.contains(script)) {
+      processed.add(script);
+      RutaBlock block = script.getBlock(null);
+      block.setParent(mainRootBlock);
+      Collection<RutaModule> innerScripts = script.getScripts().values();
+      for (RutaModule module : innerScripts) {
+        relinkEnvironments(module, mainRootBlock, processed);
+      }
     }
   }
 
@@ -709,7 +711,7 @@ public class RutaEngine extends JCasAnno
   private String collectionToString(Object[] collection) {
     return collectionToString(Arrays.asList(collection));
   }
-  
+
   public void batchProcessComplete() throws AnalysisEngineProcessException {
     super.batchProcessComplete();
     Collection<AnalysisEngine> values = script.getEngines().values();
@@ -725,7 +727,5 @@ public class RutaEngine extends JCasAnno
       each.collectionProcessComplete();
     }
   }
-  
-  
-  
+
 }


Reply via email to