/**********************************************************************************
 * $URL$
 * $Id$
 **********************************************************************************
 *
 * Copyright (c) 2003, 2004, 2005 The Regents of the University of Michigan, Trustees of Indiana University,
 *                  Board of Trustees of the Leland Stanford, Jr., University, and The MIT Corporation
 * 
 * Licensed under the Educational Community License Version 1.0 (the "License");
 * By obtaining, using and/or copying this Original Work, you agree that you have read,
 * understand, and will comply with the terms and conditions of the Educational Community License.
 * You may obtain a copy of the License at:
 * 
 *      http://cvs.sakaiproject.org/licenses/license_1_0.html
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 **********************************************************************************/

package org.sakaiproject.component.app.scheduler;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.JobDetail;
import org.sakaiproject.api.app.scheduler.JobDetailWrapper;
import org.sakaiproject.api.app.scheduler.JobBeanWrapper;

public class JobDetailWrapperImpl implements JobDetailWrapper
{
  private JobDetail jobDetail;
  private boolean isSelected = false;
  private List triggerWrapperList;
  private Integer triggerCount;

  private static final Log LOG = LogFactory.getLog(JobDetailWrapperImpl.class);

  public JobDetailWrapperImpl()
  {
  }

  /**
   * @return Returns the triggerCount.
   */
  public Integer getTriggerCount()
  {
    return triggerCount;
  }

  /**
   * @param triggerCount The triggerCount to set.
   */
  public void setTriggerCount(Integer triggerCount)
  {
    this.triggerCount = triggerCount;
  }

  /**
   * @return Returns the triggerWrapperList.
   */
  public List getTriggerWrapperList()
  {
    return triggerWrapperList;
  }

  /**
   * @param triggerWrapperList The triggerWrapperList to set.
   */
  public void setTriggerWrapperList(List triggerWrapperList)
  {
    this.triggerCount = new Integer(triggerWrapperList.size());
    this.triggerWrapperList = triggerWrapperList;
  }

  /**
   * @return Returns the jobDetail.
   */
  public JobDetail getJobDetail()
  {
    return jobDetail;
  }

  /**
   * @param jobDetail The jobDetail to set.
   */
  public void setJobDetail(JobDetail jobDetail)
  {
    this.jobDetail = jobDetail;
  }

  /**
   * @return Returns the isSelected.
   */
  public boolean getIsSelected()
  {
    return isSelected;
  }

  /**
   * @param isSelected The isSelected to set.
   */
  public void setIsSelected(boolean isSelected)
  {
    this.isSelected = isSelected;
  }

   public String getJobType() {
      String jobType = (String) getJobDetail().getJobDataMap().get(JobBeanWrapper.JOB_TYPE);
      if (jobType != null) {
         return jobType;
      }
      return getJobDetail().getJobClass().getName();
   }
}