import java.util.*;
import java.awt.*;

public class TransactionCollection {

	Vector tCollection;

	public TransactionCollection()
	{
		tCollection = new Vector();
	}

	public boolean removeTransaction(Transaction t)
	{
		return tCollection.removeElement(t);
	}	

        public Transaction returnTransaction(int index)
        {
           return (Transaction)tCollection.elementAt(index);
        }

	public void removeTransactionAt(int i)
	{
		System.out.println("rTAt: i = " + i);
		tCollection.removeElementAt(i);
		printTransactions();
	}

        int existID(int ID)
        {
           int size = tCollection.size();
           int exist = -1;
           int index;
           Transaction temp; 

           for(index = 0; index < size; index++)
           {
              temp = (Transaction)tCollection.elementAt(index);
              if(temp.transactionID == ID)
                 exist = index;
           }

           return exist;
        }

	public boolean addTransaction(Transaction t)
	{
	   int size = tCollection.size();
           int where;

	   if (tCollection.isEmpty())
              tCollection.addElement(t);

           else if((where = existID(t.transactionID)) != -1)
           {
              tCollection.removeElementAt(where);
              tCollection.insertElementAt(t, where);
           }

           else
           { 
              int index = 0;
              do
              {
                 Transaction temp =  
                     (Transaction)tCollection.elementAt(index);
		  if (temp.date.after(t.date))
		  {
		     tCollection.insertElementAt(t, index);
		     index = size;
		  }
		  else
		     index++;
		} while (index < size);

             if (size == tCollection.size())
	        tCollection.addElement(t); 
           }  
		
           return (size + 1 == tCollection.size());
	}

	public List toList()
	{
		List temp = new List();
		for (Enumeration e = tCollection.elements(); e.hasMoreElements() ;) {
			temp.addItem(e.nextElement().toString());
		}
		return temp;
	
	}

	public void printTransactions() 
	{
		for (Enumeration e = tCollection.elements() ; e.hasMoreElements() ;) {
			System.out.println(e.nextElement());
		}
	}


} 
