Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2012 International Business Machines Corp.
   * 
   * See the NOTICE file distributed with this work for additional information
   * regarding copyright ownership. Licensed under the Apache License, 
   * Version 2.0 (the "License"); you may not use this file except in compliance
   * with the License. You may obtain a copy of the License at
   * 
   *   http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
 */
 package com.ibm.jbatch.container.impl;
 
 import java.util.List;
 
 
 
 public class DecisionControllerImpl implements IExecutionElementController {
     
     
     protected StepContextImpl<?, ? extends ExternalizablestepContext;
     
     protected Decision decision;
 
 	
 	protected List<StepExecutionstepExecutions = null;
 	
 	// This element is either a Flow or Split
 	// it is the previous executable element before the decision
 	protected ExecutionElement executionElement = null;
     
     public DecisionControllerImpl(RuntimeJobExecutionHelper jobExecutionImplDecision decision) {
         this. = jobExecutionImpl;
         this. = decision;
     }
 
     
     public void setStepContext(StepContextImpl<?, ? extends SerializablestepContext) {
     	throw new UnsupportedOperationException("Shouldn't be called on a decision.");
     }
    
     public void setStepExecution(Flow flowStepExecution stepExecution) {
     	this. = flow;
     	 = new ArrayList<StepExecution>();
     	.add(stepExecution);
     }
     
     public void setStepExecution(Step stepStepExecution stepExecution) {
     	this. = step;
     	 = new ArrayList<StepExecution>();
     	.add(stepExecution);
     }
    
     public void setStepExecutions(Split splitList<StepExecutionstepExecutions) {
     	this. = split;
     	this. = stepExecutions;
     }
    
 
     @Override
     public String execute(List<StringcontainmentNamethrows Exception {
 
         ExecutionStatus status = new ExecutionStatus();
 
         String deciderId = .getRef();
         List<PropertypropList = (.getProperties() == null) ? null : .getProperties().getPropertyList();
 
         DeciderProxy deciderProxy;
        //Create a decider proxy and inject the associated properties
        
        /* Set the contexts associated with this scope */
        //job context is always in scope
        //the parent controller will only pass one valid context to a decision controller
        //so two of these contexts will always be null
                propList);
        
        try {
            deciderProxy = ProxyFactory.createDeciderProxy(deciderId,injectionRef );
        } catch (ArtifactValidationException e) {
            throw new BatchContainerServiceException("Cannot create the decider [" + deciderId + "]"e);
        }
        String exitStatus = deciderProxy.decide(this..toArray(new StepExecution[.size()]));
        
        return exitStatus;
    }
    @Override
    public void stop() { 
    }
    @Override
    public void setAnalyzerQueue(BlockingQueue<PartitionDataWrapperanalyzerQueue) {
        //no-op
    }
	public void setSubJobExitStatusQueue(Stack<StringsubJobExitStatusQueue) {
		// no-op
	}
New to GrepCode? Check out our FAQ X