package tools;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;


public class DuplicatesSet {
	private String itemType ;
	private int current ;
	private Vector<String> duplicates ;
	
	public DuplicatesSet(String itemType) {
		this.itemType = itemType ;
		this.current = 0 ;
		this.duplicates = new Vector<String>() ;
	}
		
	public void addDuplicate(String duplicate) {
		duplicates.add(duplicate) ;
	}
	
	public String getNext() {
		if (duplicates.size() > 0) {
			if (current >= duplicates.size()) {
				current = 0 ;
			}
			return duplicates.get(current ++) ;
		}
		else {
			return null ;
		}
	}
	
	public String getPrev() {
		if (duplicates.size() > 0) {
			if (current <= 0) {
				current = duplicates.size() - 1 ;
			}
			return duplicates.get(current --) ;
		}
		else {
			return null ;
		}
	}
	
	public static DuplicatesSet fromFile(String itemType, String fileName) {
		try {
			DuplicatesSet duplicatesSet = new DuplicatesSet(itemType) ;
			BufferedReader in = new BufferedReader(new FileReader(new File(fileName)));

			String line;
			while ((line = in.readLine()) != null) {
				duplicatesSet.addDuplicate(line) ;				
			}	
			return duplicatesSet ;
		}
		catch (IOException e) {
			e.printStackTrace();
			return null ;
		}
	}

	public String getType() {
		return this.itemType ;
	}
}
