import java.util.ArrayList; 
import java.io.*;

public class BazaDeDate {
  ArrayList entries = new ArrayList();  /* de Inregistrare */
  
  public void addEntry(String nme, String addr, String ph) {
    Inregistrare di = new Inregistrare(nme,addr,ph);
    entries.add(di); 
  }

  public ArrayList search(String nme, String addr, String ph) {
    ArrayList res = new ArrayList();
    for (int i = 0; i < entries.size(); i++) {
      Inregistrare di = (Inregistrare) entries.get(i);
      if (di.matches(nme,addr,ph)) {
        res.add(di);
      }
    }
    return res;
  }

  public void saveData(PrintWriter out) {
    for (int i = 0; i < entries.size(); i++) {
      Inregistrare di = (Inregistrare) entries.get(i); 
      di.saveData(out); 
    }
  } 

  public BazaDeDate loadFromFile(File file) {
    BufferedReader br = null;
    String s; 
    boolean eof = false;
    try {
      br = new BufferedReader(new FileReader(file)); 
    }
    catch (FileNotFoundException e) {
      System.out.println("Fisier inexistent: " + file);
      return null; 
    }
    while (!eof) {
      try { 
        s = br.readLine(); 
      }
      catch (IOException e) {
        System.out.println("Citire esuata."); 
        return null; 
      }
      if (s == null) {
        eof = true; 
        break; 
      }
      System.out.println("linie citita din baza de date: " + s); 
      if (s.equals("---- Inregistrare: ----")) {
        Inregistrare di = Inregistrare.retrieveDataItem(br); 
        System.out.println("Am citit: " + di); 
        if (di != null) {
          entries.add(di); 
        } 
      }
    }
    try { 
      br.close(); 
    } 
    catch(IOException e) { }  
    return this;
  }


  public static void main(String[] args) {
    BazaDeDate db = new BazaDeDate(); 
    db.addEntry("XX","Peckham","??");
    db.addEntry("XXY","Horsham","90004");  
    System.out.println(db.search("X*","*","*")); 
  }
}

