Class JobGenerator

java.lang.Object
edu.rit.pj.job.JobGenerator
All Implemented Interfaces:
Iterable<Job>

public abstract class JobGenerator extends Object implements Iterable<Job>
Class JobGenerator is the abstract base class for an object that generates a group of Jobs.

Jobs are numbered from 0 to N−1, where N is the number of jobs in the group. A subclass must override the jobCount() method to return N. A subclass must override the createJob() method to create and return the job corresponding to a given job number. The job generator need not create all the jobs in the group, and it need not create them in any particular order.

Class JobGenerator provides the omit() method to omit generating certain job numbers. This is used for checkpointing. For further information, see class Runner.

Version:
08-Oct-2010
Author:
Alan Kaminsky
  • Constructor Details

    • JobGenerator

      public JobGenerator()
      Construct a new job generator.
  • Method Details

    • omit

      public void omit(Set<Integer> theOmittedJobNumbers)
      Omit the job numbers in the given set when generating jobs. To be effective, omit() must be called before calling iterator(). A snapshot of the given set is taken; changing the set's contents thereafter will not affect the job numbers to be omitted.
      Parameters:
      theOmittedJobNumbers - Set of job numbers to be omitted.
      Throws:
      NullPointerException - (unchecked exception) Thrown if theOmittedJobNumbers is null.
    • iterator

      public Iterator<Job> iterator()
      Get an iterator for generating the jobs in the job group.
      Specified by:
      iterator in interface Iterable<Job>
      Returns:
      Iterator.
    • jobCount

      protected abstract int jobCount()
      Returns the number of jobs in the job group, N.
      Returns:
      Number of jobs.
    • createJob

      protected abstract Job createJob(int theJobNumber)
      Create the job with the given job number. This method must create and return an instance of class Job whose job number is theJobNumber.
      Parameters:
      theJobNumber - Job number (0 .. N−1).
      Returns:
      a Job object.