package dataBase;

import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;

import javax.imageio.ImageIO;

import util.simpleIO.Out;

import dataBase.search.DataList;

public class PictureBuffer {
	
	public static int bufferSize;
	public static int bufferTolerance;
	
	static PictureBufferElementComparator comp = new PictureBufferElementComparator();
	//DataList<PictureBufferElement> buffer;
	LinkedList<PictureBufferElement> buffer = new LinkedList<PictureBufferElement>();
	
	public PictureBuffer(){
		//buffer = new DataList<PictureBufferElement>(bufferSize, comp);
		//buffer.tolerance = bufferTolerance;
	}
	
	public synchronized BufferedImage getPicture(File f){
		
		//ArrayList<PictureBufferElement> list = buffer.dataList;
		//for(int i=0; i<list.s)
		
		Iterator<PictureBufferElement> it = buffer.iterator();
		
		while(it.hasNext()){
			
			PictureBufferElement el = it.next();
			Out.pl(">> Iterate...");
			
			if(el.file.equals(f)){
				
				Out.pl(">> Found pic '"+el.file.getName()+"'");
				it.remove();
				buffer.addFirst(el);
				return el.image;
			}
		}
		
		BufferedImage image = ImageIO.read(f);
		PictureBufferElement el = new PictureBufferElement(image, f);
		
		
		while(buffer.size() > lengthLimit)
			buffer.removeLast();
		
		
		
		
		return null;
		
	}
	
}
