class GrinderProperties extends Properties {

  public final void save() throws PersistenceException {

    if (m_file == null) {
      throw new PersistenceException("No associated file");
    }

    OutputStream outputStream = null;

    try {
      outputStream = new FileOutputStream(m_file);
      store(outputStream, generateFileHeader());
    }
    catch (IOException e) {
      UncheckedInterruptedException.ioException(e);
      throw new PersistenceException(
        "Error writing properties file '" + m_file.getPath() + '\'', e);
    }
    finally {
      Closer.close(outputStream);
    }
  }

  public  GrinderProperties();
  public  GrinderProperties(File file);

}