import java.util.Random;

/* This class defines a referene generator that is deterministic.
 * It generates references from a reference string provided at the beginning.
 */
public class StaticReferenceGenerator extends ReferenceGenerator {
    private int referenceString[];
    private int index;
    
    /* This constructor initializes the reference string as specified.
     */
    public StaticReferenceGenerator (int numPages, int referenceString[]) {
	super(numPages);
	this.referenceString = new int[referenceString.length];
	for (int i=0; i<referenceString.length; i++) {
	    this.referenceString[i] = referenceString[i];
	}
	index=0;
    }

    /* This method initializes the reference string back to the start. 
     */
    public final void init (long seed) {
	index = 0;
    }

    /* This method generates next reference from the specified string.
     */ 
    public final int nextReference () {
	index++;
	return referenceString[index-1];
    }
}
