/*
 * Licensed Materials - Property of Perforce Software, Inc. 
 * © Copyright Perforce Software, Inc. 2014, 2021 
 * © Copyright IBM Corp. 2009, 2014
 * © Copyright ILOG 1996, 2009
 * All Rights Reserved.
 *
 * Note to U.S. Government Users Restricted Rights:
 * The Software and Documentation were developed at private expense and
 * are "Commercial Items" as that term is defined at 48 CFR 2.101,
 * consisting of "Commercial Computer Software" and
 * "Commercial Computer Software Documentation", as such terms are
 * used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
 * as applicable.
 */
package shared.data;

import ilog.views.gantt.IlvHierarchyChart;
import ilog.views.gantt.IlvActivity;
import ilog.views.gantt.IlvTimeInterval;
import ilog.views.gantt.model.general.IlvGeneralActivity;


/**
 * <code>GeneralActivityFactory</code> is a factory that will create new
 * instances of <code>IlvGeneralActivity</code> that are numbered sequentially.
 */
public class GeneralActivityFactory extends SimpleActivityFactory
{
  /**
   * Creates a new <code>GeneralActivityFactory</code> for the specified chart.
   */
  public GeneralActivityFactory(IlvHierarchyChart chart) {
    super(chart);
  }

  /**
   * Creates a new <code>IlvGeneralActivity</code> from the given parameters.
   * Subclasses should override this method to create a different type of
   * activity, not <code>createActivity</code>.
   * @param interval The time interval.
   * @param activityNum The activity number.
   */
  Override
  protected IlvActivity createActivityImpl(IlvTimeInterval interval,
                                           int activityNum) {
    IlvActivity newAct = new IlvGeneralActivity("Act. #" + activityNum,
                                                "New Activity #" + activityNum,
                                                interval);
    return newAct;
  }

}