Project: Calendar-Application
/**
* @author Hammed Abiola 
*@date 24/02/2012 
*/
 
 
/**
 * General csv collection to be subclassed by all Collections  
 * (EventsCollection, SettingsCollection, TasksCollection etc) 
 */
 
  
 package calendar; 
 
 
import java.util.ArrayList; 
import javax.naming.directory.InvalidAttributesException; 
 
public abstract class Collection<CSVSTR extends CsvStructure> { 
    protected ArrayList<CSVSTR> m_data; 
     
    /*
    *This method adds valid entries to the CSV 
    */
 
    public void Add(CSVSTR elem) { 
        m_data.add(elem); 
    } 
     
    /*
    *This method removes invalid entries  
    */
 
    public void Remove(int idx) throws InvalidAttributesException { 
        if(idx < 0 || idx >= m_data.size()) { 
            throw new InvalidAttributesException("Can't remove this element!"); 
        } 
        m_data.remove(idx); 
    } 
     
    /*
    *This converts the arraylist string to CSV format 
    */
 
    public String ToCSV() { 
        String csv = ""
        for(int i = 0; i < m_data.size(); i++) { 
            if(i > 0) { 
                csv += System.getProperty("line.separator"); 
            } 
            csv += m_data.get(i).ToCSV(); 
        } 
        return csv; 
    } 
 
    public int size() { 
     return m_data.size(); 
    } 
     
    public CSVSTR get(int i) { 
     return m_data.get(i); 
    } 
     
}