Modified: 
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/PipelineSpecificationBasic.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/PipelineSpecificationBasic.java?rev=1603199&r1=1603198&r2=1603199&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/PipelineSpecificationBasic.java
 (original)
+++ 
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/PipelineSpecificationBasic.java
 Tue Jun 17 15:17:34 2014
@@ -26,16 +26,39 @@ import org.apache.manifoldcf.crawler.int
 */
 public class PipelineSpecificationBasic implements IPipelineSpecificationBasic
 {
-  protected final String[] transformationConnectionNames;
-  protected final String outputConnectionName;
-    
+  protected final IJobDescription job;
+  
+  // This is offset by 1, so the first element corresponds to -1
+  protected final int[][] pipelineStageChildren;
+  
+  protected final int[] outputs;
+  
   public PipelineSpecificationBasic(IJobDescription job)
   {
-    transformationConnectionNames = new String[job.countPipelineStages()];
-    outputConnectionName = job.getOutputConnectionName();
-    for (int i = 0; i < transformationConnectionNames.length; i++)
+    this.job = job;
+    this.pipelineStageChildren = new int[job.countPipelineStages()+1][];
+    int[] childrenCount = new int[pipelineStageChildren.length];
+    int outputCount = 0;
+    for (int i = 0; i < job.countPipelineStages(); i++)
+    {
+      int prerequisite = job.getPipelineStagePrerequisite(i);
+      childrenCount[prerequisite+1] ++;
+      if (job.getPipelineStageIsOutputConnection(i))
+        outputCount++;
+    }
+    for (int i = 0; i < pipelineStageChildren.length; i++)
+    {
+      pipelineStageChildren[i] = new int[childrenCount[i]];
+      childrenCount[i] = 0;
+    }
+    outputs = new int[outputCount];
+    outputCount = 0;
+    for (int i = 0; i < job.countPipelineStages(); i++)
     {
-      transformationConnectionNames[i] = job.getPipelineStageConnectionName(i);
+      int prerequisite = job.getPipelineStagePrerequisite(i);
+      (pipelineStageChildren[prerequisite+1])[childrenCount[prerequisite+1]++] 
= i;
+      if (job.getPipelineStageIsOutputConnection(i))
+        outputs[outputCount++] = i;
     }
   }
     
@@ -45,7 +68,7 @@ public class PipelineSpecificationBasic 
   @Override
   public int getStageCount()
   {
-    return transformationConnectionNames.length + 1;
+    return job.countPipelineStages();
   }
 
   /** Find children of a given pipeline stage.  Pass -1 to find the children 
of the root stage.
@@ -55,9 +78,7 @@ public class PipelineSpecificationBasic 
   @Override
   public int[] getStageChildren(int stage)
   {
-    if (stage < transformationConnectionNames.length + 1)
-      return new int[]{stage + 1};
-    return new int[0];
+    return pipelineStageChildren[stage+1];
   }
     
   /** Find parent of a given pipeline stage.  Returns -1 if there's no parent 
(it's the root).
@@ -66,7 +87,7 @@ public class PipelineSpecificationBasic 
   */
   public int getStageParent(int stage)
   {
-    return stage - 1;
+    return job.getPipelineStagePrerequisite(stage);
   }
 
   /** Get the connection name for a pipeline stage.
@@ -76,9 +97,7 @@ public class PipelineSpecificationBasic 
   @Override
   public String getStageConnectionName(int stage)
   {
-    if (stage < transformationConnectionNames.length)
-      return transformationConnectionNames[stage];
-    return outputConnectionName;
+    return job.getPipelineStageConnectionName(stage);
   }
     
   /** Check if a stage is an output stage.
@@ -88,7 +107,7 @@ public class PipelineSpecificationBasic 
   @Override
   public boolean checkStageOutputConnection(int stage)
   {
-    return stage == transformationConnectionNames.length;
+    return job.getPipelineStageIsOutputConnection(stage);
   }
 
   /** Return the number of output connections.
@@ -96,7 +115,7 @@ public class PipelineSpecificationBasic 
   */
   public int getOutputCount()
   {
-    return 1;
+    return outputs.length;
   }
     
   /** Given an output index, return the stage number for that output.
@@ -105,7 +124,7 @@ public class PipelineSpecificationBasic 
   */
   public int getOutputStage(int index)
   {
-    return transformationConnectionNames.length;
+    return outputs[index];
   }
 
 }

Modified: 
manifoldcf/trunk/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerTester.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerTester.java?rev=1603199&r1=1603198&r2=1603199&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerTester.java
 (original)
+++ 
manifoldcf/trunk/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerTester.java
 Tue Jun 17 15:17:34 2014
@@ -72,7 +72,8 @@ public class SchedulerTester
     IJobDescription job = jobManager.createJob();
     job.setDescription("Test Job");
     job.setConnectionName("SchedulerTest Connection");
-    job.setOutputConnectionName("Null Connection");
+    job.addPipelineStage(-1,true,"Null Connection","");
+    //job.setOutputConnectionName("Null Connection");
     job.setType(job.TYPE_SPECIFIED);
     job.setStartMethod(job.START_DISABLE);
     job.setHopcountMode(job.HOPCOUNT_ACCURATE);

Modified: 
manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_en_US.properties
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_en_US.properties?rev=1603199&r1=1603198&r2=1603199&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_en_US.properties
 (original)
+++ 
manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_en_US.properties
 Tue Jun 17 15:17:34 2014
@@ -403,14 +403,23 @@ editjob.EditJob=Edit job
 
 editjob.PipelineColon=Pipeline:
 editjob.StageNumber=Stage
+editjob.StageType=Type
+editjob.StagePrecedent=Precedent
 editjob.StageDescription=Description
 editjob.StageConnectionName=Connection name
-editjob.RepositoryStage=(Repository)
-editjob.OutputStage=(Output)
-editjob.InsertBefore=Insert before
+editjob.Repository=Repository
+editjob.Output=Output
+editjob.Transformation=Transformation
+editjob.InsertTransformationBefore=Insert transformation before
+editjob.InsertOutputBefore=Insert output before
 editjob.Insertnewstagehere=Insert new stage here
-editjob.SelectAPipelineStageConnectionName=Select a pipeline stage connection 
name
-editjob.Deletestage=Delete stage
+editjob.SelectATransformationStageConnectionName=Select a transformation stage 
connection name
+editjob.SelectAnOutputStageConnectionName=Select an output stage connection 
name
+editjob.AddAnOutput=Add an output
+editjob.AddOutput=Add output
+editjob.Deletepipelinestage=Delete pipeline stage
+editjob.Insertnewtransformationhere=Insert new transformation here
+editjob.Insertnewoutputhere=Insert new output here
 
 editjob.NoRepositoryConnectionsDefinedCreateOneFirst=No repository connections 
defined - create one first
 editjob.NoOutputConnectionsDefinedCreateOneFirst=No output connections defined 
- create one first
@@ -844,10 +853,13 @@ viewjob.ViewAJob=View a Job
 
 viewjob.PipelineColon=Pipeline:
 viewjob.StageNumber=Stage
+viewjob.StageType=Type
+viewjob.StagePrecedent=Precedent
 viewjob.StageDescription=Description
 viewjob.StageConnectionName=Connection name
-viewjob.RepositoryStage=(Repository)
-viewjob.OutputStage=(Output)
+viewjob.Repository=Repository
+viewjob.Output=Output
+viewjob.Transformation=Transformation
 
 viewjob.ScheduleTypeColon=Schedule type:
 viewjob.MinimumRecrawlIntervalColon=Minimum recrawl interval:

Modified: 
manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_ja_JP.properties
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_ja_JP.properties?rev=1603199&r1=1603198&r2=1603199&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_ja_JP.properties
 (original)
+++ 
manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_ja_JP.properties
 Tue Jun 17 15:17:34 2014
@@ -429,14 +429,23 @@ editjob.EditJob=ジョブの
 
 editjob.PipelineColon=Pipeline:
 editjob.StageNumber=Stage
+editjob.StageType=Type
+editjob.StagePrecedent=Precedent
 editjob.StageDescription=Description
 editjob.StageConnectionName=Connection name
-editjob.RepositoryStage=(Repository)
-editjob.OutputStage=(Output)
-editjob.InsertBefore=Insert before
+editjob.Repository=Repository
+editjob.Output=Output
+editjob.Transformation=Transformation
+editjob.InsertTransformationBefore=Insert transformation before
+editjob.InsertOutputBefore=Insert output before
 editjob.Insertnewstagehere=Insert new stage here
-editjob.SelectAPipelineStageConnectionName=Select a pipeline stage connection 
name
-editjob.Deletestage=Delete stage
+editjob.SelectATransformationStageConnectionName=Select a transformation stage 
connection name
+editjob.SelectAnOutputStageConnectionName=Select an output stage connection 
name
+editjob.AddAnOutput=Add an output
+editjob.AddOutput=Add output
+editjob.Deletepipelinestage=Delete pipeline stage
+editjob.Insertnewtransformationhere=Insert new transformation here
+editjob.Insertnewoutputhere=Insert new output here
 
 
editjob.NoRepositoryConnectionsDefinedCreateOneFirst=リポジトリコネクションが未指定です
 - 作成してください
 
editjob.NoOutputConnectionsDefinedCreateOneFirst=出力コネクションが未指定です
 - 作成してください
@@ -871,10 +880,13 @@ viewjob.ViewAJob=ジョブæƒ�
 
 viewjob.PipelineColon=Pipeline:
 viewjob.StageNumber=Stage
+viewjob.StageType=Type
+viewjob.StagePrecedent=Precedent
 viewjob.StageDescription=Description
 viewjob.StageConnectionName=Connection name
-viewjob.RepositoryStage=(Repository)
-viewjob.OutputStage=(Output)
+viewjob.Repository=Repository
+viewjob.Output=Output
+viewjob.Transformation=Transformation
 
 viewjob.ScheduleTypeColon=スケジュールタイプ:
 viewjob.MinimumRecrawlIntervalColon=最小再読込み間隔:

Modified: 
manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_zh_CN.properties
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_zh_CN.properties?rev=1603199&r1=1603198&r2=1603199&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_zh_CN.properties
 (original)
+++ 
manifoldcf/trunk/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_zh_CN.properties
 Tue Jun 17 15:17:34 2014
@@ -429,14 +429,23 @@ editjob.EditJob=编辑作业
 
 editjob.PipelineColon=Pipeline:
 editjob.StageNumber=Stage
+editjob.StageType=Type
+editjob.StagePrecedent=Precedent
 editjob.StageDescription=Description
 editjob.StageConnectionName=Connection name
-editjob.RepositoryStage=(Repository)
-editjob.OutputStage=(Output)
-editjob.InsertBefore=Insert before
+editjob.Repository=Repository
+editjob.Output=Output
+editjob.Transformation=Transformation
+editjob.InsertTransformationBefore=Insert transformation before
+editjob.InsertOutputBefore=Insert output before
 editjob.Insertnewstagehere=Insert new stage here
-editjob.SelectAPipelineStageConnectionName=Select a pipeline stage connection 
name
-editjob.Deletestage=Delete stage
+editjob.SelectATransformationStageConnectionName=Select a transformation stage 
connection name
+editjob.SelectAnOutputStageConnectionName=Select an output stage connection 
name
+editjob.AddAnOutput=Add an output
+editjob.AddOutput=Add output
+editjob.Deletepipelinestage=Delete pipeline stage
+editjob.Insertnewtransformationhere=Insert new transformation here
+editjob.Insertnewoutputhere=Insert new output here
 
 editjob.NoRepositoryConnectionsDefinedCreateOneFirst=存储库连接未指定 
- 请创建
 editjob.NoOutputConnectionsDefinedCreateOneFirst=输出连接未指定 - 
请创建
@@ -871,10 +880,13 @@ viewjob.ViewAJob=作业信æ�
 
 viewjob.PipelineColon=Pipeline:
 viewjob.StageNumber=Stage
+viewjob.StageType=Type
+viewjob.StagePrecedent=Precedent
 viewjob.StageDescription=Description
 viewjob.StageConnectionName=Connection name
-viewjob.RepositoryStage=(Repository)
-viewjob.OutputStage=(Output)
+viewjob.Repository=Repository
+viewjob.Output=Output
+viewjob.Transformation=Transformation
 
 viewjob.ScheduleTypeColon=调度类型:
 viewjob.MinimumRecrawlIntervalColon=最小重新爬取间隔:


Reply via email to