package versao3;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

/**
 * Esta classe representa a configuracao do sistema.
 * Obtem suas propriedades do arquivo versao3.properties.
 */
public final class Configuration {
  public static final String JDATASTORE = "JDataStore";
  public static final String XML = "XML";

  private String persistenceType = JDATASTORE;
  private String xmlRepository = "../db/xml/";

  private static Configuration instance;
  static {
    instance = new Configuration();
    try {
      Properties p = new Properties();
      p.load(new FileInputStream("./versao3.properties"));
      String persistenceType = p.getProperty("versao3.tipoDePersistencia");
      if (persistenceType != null) {
        instance.persistenceType = persistenceType;
      }
    }
    catch (FileNotFoundException e) {
      System.err.println("Arquivo de configuraçao nao encontrado.");
      System.exit( -1);
    }
    catch (IOException e) {
      System.err.println("Arquivo de configuraçao nao pode ser lido.");
      System.exit( -1);
    }
  }

  /**
   * Obtem a configuracao do sistema.
   * @return Configuration
   */
  public static Configuration getInstance() {
    return instance;
  }

  /**
   * Obtem o tipo de persistencia a ser usado.
   * @return String
   */
  public String getPersistenceType() {
    return persistenceType;
  }

  /**
   * Obtem o diretorio onde os arquivos XML serao armazenados,
   * caso esta seja a opcao de persistencia.
   *
   * @return String
   */
  public String getXmlRepository() {
    return xmlRepository;
  }

}
