edu.rit.pj.job
Class JobGenerator

java.lang.Object
  extended by edu.rit.pj.job.JobGenerator
All Implemented Interfaces:
Iterable<Job>
Direct Known Subclasses:
Test01

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.


Constructor Summary
JobGenerator()
          Construct a new job generator.
 
Method Summary
protected abstract  Job createJob(int theJobNumber)
          Create the job with the given job number.
 Iterator<Job> iterator()
          Get an iterator for generating the jobs in the job group.
protected abstract  int jobCount()
          Returns the number of jobs in the job group, N.
 void omit(Set<Integer> theOmittedJobNumbers)
          Omit the job numbers in the given set when generating jobs.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JobGenerator

public JobGenerator()
Construct a new job generator.

Method Detail

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).


Copyright © 2005-2012 by Alan Kaminsky. All rights reserved. Send comments to ark­@­cs.rit.edu.