/*
 * PropertiesManager.java
 *
 * Created on 21 de marzo de 2007, 10:06 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.fidufosyga.model;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;

import com.fidufosyga.context.Context;
import com.fidufosyga.exception.GeneralException;

/**
 * 
 * @author Julian
 */
public class PropertiesManager {

	/** Creates a new instance of PropertiesManager */
	public PropertiesManager() {
	}

	@SuppressWarnings("rawtypes")
	private static Map glosasMap;

	public static void cargarPropiedadesDelSistema() {

		Properties defaultProps = new Properties();
		FileInputStream in;
		try {
			in = new FileInputStream(System.getProperty("user.dir")
					+ File.separator + "xml" + File.separator
					+ "ValidacionesGenerales.properties");
			defaultProps.load(in);
			in.close();
			Context.getContext().addAttribute(Context.PROPERTIES, defaultProps);

		} catch (FileNotFoundException e) {
			GeneralException ex = new GeneralException(
					"No se encuentra el archivo "
							+ System.getProperty("user.dir")
							+ File.separator
							+ "xml"
							+ File.separator
							+ "ValidacionesGenerales.properties reinstale la aplicación",
					e);
			e.printStackTrace();
			throw (ex);
		} catch (IOException e) {
			GeneralException ex = new GeneralException(
					"Ocurrio un error cargando "
							+ System.getProperty("user.dir")
							+ File.separator
							+ "xml"
							+ File.separator
							+ "ValidacionesGenerales.properties reinstale la aplicación",
					e);
			e.printStackTrace();
			throw (ex);

		}

	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static Map getGlosasDescripcion() {

		if (glosasMap == null) {
			Properties defaultProps = new Properties();
			FileInputStream in;
			try {
				in = new FileInputStream(System.getProperty("user.dir")
						+ File.separator + "xml" + File.separator
						+ "Glosas.properties");
				defaultProps.load(in);
				in.close();
				Context.getContext().addAttribute(Context.PROPERTIES,
						defaultProps);

			} catch (FileNotFoundException e) {
				GeneralException ex = new GeneralException(
						"No se encuentra el archivo "
								+ System.getProperty("user.dir")
								+ File.separator + "xml" + File.separator
								+ "Glosas.properties  reinstale la aplicación",
						e);
				e.printStackTrace();
				throw (ex);
			} catch (IOException e) {
				GeneralException ex = new GeneralException(
						"No se encuentra el archivo "
								+ System.getProperty("user.dir")
								+ File.separator + "xml" + File.separator
								+ "Glosas.properties  reinstale la aplicación",
						e);
				e.printStackTrace();
				throw (ex);
			}
			glosasMap = new TreeMap(defaultProps);

		}

		return glosasMap;

	}
}
