package addBk.address;

import java.util.Vector;

final class CachedDatabase {
  private static CachedDatabase cdb = new CachedDatabase();

  public static CachedDatabase getCachedDatabase() {
    return cdb;
  }

  private CachedDatabase() {
  } //singleton pattern

  private Vector
      v = new Vector();

  private Vector
      addressVector = new Vector();

  SimpleSelect ss
      = new SimpleSelect();

  Vector rows = null;

  public void init() {
    ss.connect();
    // The following is the table name!
    ss.getQuery("Addresses");
    rows = ss.getRows();
    ss.close();
    initAddresses();

  }

  public void initAddresses() {
    for (int i = 0; i < rows.size(); i++) {
      addAddress(
          new AddressRecord((String[])
          rows.elementAt(i)));
    }
  }

  public void addAddress(AddressRecord a) {
    addressVector.addElement(a);
  }

  public void print() {
    for (int i = 0; i <
        getSize(); i++) {
      (get(i)).print();
    }
  }

  public void print(String s[]) {
    for (int i = 0; i < s.length; i++) {
      System.out.print(s[i] + ",");

    }

  }

  public static void main(String args[]) {
    CachedDatabase
        cd = new CachedDatabase();
    cd.init();
    cd.print();

  }

  public void sort() {
    Sort.bubble(addressVector);
  }

  public void add(AddressRecord a) {
    v.addElement(a);
  }

  public AddressRecord get(int i) {
    return
        (AddressRecord)
        addressVector.elementAt(i);
  }

  public int getSize() {
    return addressVector.size();
  }
}