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.services.impl;
 
 
 
 
 public class JobStatusManagerImpl implements IJobStatusManagerService {
 
     private static final String CLASSNAME = JobStatusManagerImpl.class.getName();
     private static Logger logger = Logger.getLogger(JobStatusManagerImpl.class.getPackage().getName());
 
     private String _jobId;
 
 
     @Override
     public void shutdown() throws BatchContainerServiceException {
         // TODO Auto-generated method stub
 
     }
 
     @Override
     public JobStatus createJobStatus(long jobInstanceIdthrows BatchContainerServiceException {
        JobStatus jobStatus = null;
         jobStatus = .createJobStatus(jobInstanceId);
         return jobStatus;
     }
 
     @Override
     public JobStatus getJobStatus(long jobInstanceIdthrows BatchContainerServiceException {
         JobStatus jobStatus = null;
         jobStatus = .getJobStatus(jobInstanceId);
         return jobStatus;
     }
     
     @Override
     public void updateJobStatus(JobStatus jobStatus) {
         persistJobStatus(jobStatus.getJobInstanceId(), jobStatus);
     }
     
     @Override
     public JobStatus getJobStatusFromExecutionId(long executionIdthrows BatchContainerServiceException {
     	JobStatus retVal = null;
     	.fine("For executionId: " + executionId);
     	try {
     		retVal = .getJobStatusFromExecution(executionId);
     	} catch (PersistenceException e) {
     		.warning("Did not find job instance status for executionId: " + executionId);
     		throw e;
     	}
     	.fine("Returning : " + retVal);
     	return retVal;
     }
 
     @Override
     public void updateJobBatchStatus(long jobInstanceIdBatchStatus batchStatusthrows BatchContainerServiceException {
         JobStatus js = getJobStatus(jobInstanceId);
         if (js == null) {
             throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
         }
         if (..equals(js.getBatchStatus())) {
         	.fine("Don't update batch status for id = " + jobInstanceId + " since it is already ABANDONED"); 
         }
         js.setBatchStatus(batchStatus);
         persistJobStatus(jobInstanceIdjs);
     }
 
     @Override
     public void updateJobExecutionStatus(long jobInstanceIdBatchStatus batchStatusString exitStatusthrows BatchContainerServiceException {
         JobStatus js = getJobStatus(jobInstanceId);
         if (js == null) {
             throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
        }
        js.setBatchStatus(batchStatus);
        js.setExitStatus(exitStatus);
        persistJobStatus(jobInstanceIdjs);
    }
    @Override
    public void updateJobCurrentStep(long jobInstanceIdString currentStepNamethrows BatchContainerServiceException {
        JobStatus js = getJobStatus(jobInstanceId);
        if (js == null) {
            throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
        }
        js.setCurrentStepId(currentStepName);
        persistJobStatus(jobInstanceIdjs);        
    }
    @Override
    public void updateJobStatusWithNewExecution(long jobInstanceIdlong newExecutionIdthrows BatchContainerServiceException {
        JobStatus js = getJobStatus(jobInstanceId);
        if (js == null) {
            throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
        }
        js.setLatestExecutionId(newExecutionId);
        persistJobStatus(jobInstanceIdjs);                
    }
    private void persistJobStatus(long jobInstanceIdJobStatus newJobStatusthrows BatchContainerServiceException {       
        .updateJobStatus(jobInstanceIdnewJobStatus);
    }
    @Override
    public StepStatus createStepStatus(long stepExecutionIdthrows BatchContainerServiceException {        
        return .createStepStatus(stepExecutionId);
    }
    @Override
    /*
     * @return - StepStatus or null if one is unknown
     */
    public StepStatus getStepStatus(long jobInstanceIdString stepIdthrows BatchContainerServiceException {
        String method = "getStepStatus";
        .entering(methodnew Object[] {jobInstanceIdstepId});
        StepStatus stepStatus = .getStepStatus(jobInstanceIdstepId);
        .exiting(methodstepStatus);
        return stepStatus;
    }
    @Override 
    public void updateStepStatus(long stepExecutionIdStepStatus newStepStatus) {
        String method = "updateStepStatus";
        .entering(methodnew Object[] {stepExecutionIdnewStepStatus});
        .updateStepStatus(stepExecutionIdnewStepStatus);
        .exiting(method);
    }
    @Override
    public void init(IBatchConfig batchConfig)
        String method = "init";
        if(.isLoggable(.)) { .entering(method);}
        ServicesManager sm = ServicesManagerImpl.getInstance();
        if(.isLoggable(.)) { .exiting(method);}
    }
    @Override
    /*
     * Inefficient, since we've already updated the status to stopped.. would be better to have a single update.
     */
    public void updateJobStatusFromJSLStop(long jobInstanceIdString restartOnthrows BatchContainerServiceException {       
        JobStatus js = getJobStatus(jobInstanceId);        
        if (js == null) {
            throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
        }
        js.setRestartOn(restartOn);
        persistJobStatus(jobInstanceIdjs);   
    }
New to GrepCode? Check out our FAQ X