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 IController {
 
 	private final static String sourceClass = SplitControllerImpl.class.getName();
 	private final static Logger logger = Logger.getLogger();
 
 
 	private Decision decision;
 
 	private StepExecution[] previousStepExecutions = null;
 
 
 	public DecisionControllerImpl(RuntimeJobExecution jobExecutionDecision decision) {
 		this. = jobExecution;
 		this. = decision;
 	}
 
 	public String execute() {
 
 		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
 		InjectionReferences injectionRef = new InjectionReferences(.getJobContext(), nullpropList);
 
 		try {
 			deciderProxy = ProxyFactory.createDeciderProxy(deciderId,injectionRef );
 		} catch (ArtifactValidationException e) {
 			throw new BatchContainerServiceException("Cannot create the decider [" + deciderId + "]"e);
 		}
 
 		String exitStatus = deciderProxy.decide(this.);
 
 		.fine("Decider exiting and setting job-level exit status to " + exitStatus);
 
 		//Set the value returned from the decider as the job context exit status.
 
 		return exitStatus;
 	}
 
 	protected void setPreviousStepExecutions(ExecutionElement previousExecutionElementIController previousElementController) { 
 		if (previousExecutionElement == null) {
 			// only job context is available to the decider 
 		} else if (previousExecutionElement instanceof Decision) {
 			
 			throw new BatchContainerRuntimeException("A decision cannot precede another decision.");
 			
 		}
 		
 		List<LongpreviousStepExecsIds = previousElementController.getLastRunStepExecutions();
 		
 		StepExecution[] stepExecArray = new StepExecution[previousStepExecsIds.size()];
		for (int i=0; i < stepExecArray.lengthi++) {
		    StepExecution stepExec = .getStepExecutionByStepExecutionId(previousStepExecsIds.get(i));
		    stepExecArray[i] = stepExec;
		}
		this. =  stepExecArray;
	}
	public void stop() { 
		// no-op
	}
    @Override
    public List<LonggetLastRunStepExecutions() {
        // TODO Auto-generated method stub
        return null;
    }
New to GrepCode? Check out our FAQ X