Agregado log y documentacion a la clase

This commit is contained in:
Daniel Cortes
2019-03-16 17:05:50 -03:00
parent 55c5f5936a
commit a6abd5e6a2
2 changed files with 119 additions and 3 deletions

View File

@@ -40,16 +40,30 @@ import java.time.YearMonth;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* Objeto DAO que realiza las querys y mapeos necesarios del objeto Egreso En especifio esta
* implementacion se comunica con la base de datos SQLite
*/
public class SQLiteEgresoDAO implements EgresoDAO {
private static final Logger LOGGER = LogManager.getLogger(SQLiteEgresoDAO.class);
private ConnectionHolder connectionHolder;
public SQLiteEgresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
/**
* Obtiene todas las instancias de Egreso que existen en la base de datos
*
* @return una lista de Egreso
*/
@Override
public List<Egreso> getAll() {
LOGGER.debug("Se intentara conseguir todos los Egreso");
List<Egreso> egresoList = new ArrayList<>();
String query = "select * from egresos";
try (Connection conn = connectionHolder.getConnection()) {
@@ -80,12 +94,22 @@ public class SQLiteEgresoDAO implements EgresoDAO {
}
}
} catch (SQLException e) {
LOGGER.error("Error al intentar conseguir todos los Egreso");
}
LOGGER.debug("Se consiguieron " + egresoList.size() + " Egreso");
return egresoList;
}
/**
* Obtiene un Egreso dado su id en la base de datos
*
* @param id el id de la fila de egreso en la base de datos
* @return un optional que contiene el egreso y puede estar vacio, dado que no es 100% seguro que
* el id entregado sea valido o exista en la base de datos
*/
@Override
public Optional<Egreso> getById(int id) {
LOGGER.debug("Se intentara conseguir un Egreso con el id " + id);
Egreso egreso = null;
String query = "select * from egresos where id = ?";
try (Connection conn = connectionHolder.getConnection()) {
@@ -114,15 +138,25 @@ public class SQLiteEgresoDAO implements EgresoDAO {
}
}
} catch (SQLException e) {
LOGGER.error("Error al intentar conseguir el Egreso con id " + id, e);
}
LOGGER.debug("Se consiguio el egreso " + egreso);
return Optional.ofNullable(egreso);
}
/**
* Obtiene una lista de egresos perteneciente a una caja
*
* @param caja Caja a la cual pertenece el egreso requerido
* @return Una lista de egreso, si la caja es Caja.EMPTY se retoranara una lista vacia
*/
@Override
public List<Egreso> getByCaja(Caja caja) {
LOGGER.debug("Se intentara conseguir los egresos de la caja " + caja);
List<Egreso> egresoList = new ArrayList<>();
if (Caja.EMPTY == caja) {
LOGGER.debug("La caja entregada es Caja.EMPY");
return egresoList;
}
@@ -151,12 +185,21 @@ public class SQLiteEgresoDAO implements EgresoDAO {
}
} catch (SQLException e) {
LOGGER.error("Error al intentar conseguir los egreso de la caja " + caja, e);
}
LOGGER.debug("Se consieron " + egresoList.size() + " Egreso");
return egresoList;
}
/**
* Obtiene una lista de Egreso dado su nro en la base de datos
*
* @param nro nro del egreso que se busca
* @return una lista con los Egresos con el nro entregado
*/
@Override
public List<Egreso> getByNro(String nro) {
LOGGER.debug("Se intentara conseguir los Egreso con nro " + nro);
List<Egreso> egresoList = new ArrayList<>();
String query = "select * from egresos where nro = ?";
try (Connection conn = connectionHolder.getConnection()) {
@@ -187,15 +230,26 @@ public class SQLiteEgresoDAO implements EgresoDAO {
}
}
} catch (SQLException e) {
LOGGER.error("Error al intentar conseguir los Egreso con nro " + nro, e);
}
LOGGER.debug("Se consiguieron " + egresoList.size() + " Egreso");
return egresoList;
}
/**
* Obtiene una lista de Egreso pertenecientes a un tipoEgreso
*
* @param tipoEgreso TipoEgreso al que pertenecen los Egreso requeridos
* @return Una lista con los egresos, en caso que tipoEgreso sea TipoEgreso.EMPTY se retorna una
* lista vacia.
*/
@Override
public List<Egreso> getByTipoEgreso(TipoEgreso tipoEgreso) {
LOGGER.debug("Se intentara conseguir los Egreso con TipoEgreso " + tipoEgreso);
List<Egreso> egresoList = new ArrayList<>();
if(TipoEgreso.EMPTY == tipoEgreso){
if (TipoEgreso.EMPTY == tipoEgreso) {
LOGGER.debug("El tipo egreso era TipoEgreso.EMPY");
return egresoList;
}
@@ -223,15 +277,27 @@ public class SQLiteEgresoDAO implements EgresoDAO {
}
}
} catch (SQLException e) {
LOGGER.error("Error al intentar conseguir los Egreso para el TipoEgreso " + tipoEgreso, e);
}
LOGGER.debug("Se consiguieron " + egresoList.size() + " Egresos");
return egresoList;
}
/**
* Obtiene los Egreso que pertenecen a un TipoEgreso y Caja
*
* @param tipoEgreso TipoEgreso al que pertence el Egreso
* @param caja Caja al que pertence el egreso
* @return Lista de egreso, se retoranara una lista vacia en caso que tipoEgreso o caja sean EMPTY
*/
@Override
public List<Egreso> getByTipoEgresoEnCaja(TipoEgreso tipoEgreso, Caja caja) {
LOGGER.debug("Se intentara conseguir los Egresos pertencienes al tipoEgreso " + tipoEgreso
+ " y a la caja " + caja);
List<Egreso> egresoList = new ArrayList<>();
if (caja == Caja.EMPTY || tipoEgreso == TipoEgreso.EMPTY) {
LOGGER.debug("La caja o el tipoEgreso eran EMPTY");
return egresoList;
}
@@ -255,15 +321,26 @@ public class SQLiteEgresoDAO implements EgresoDAO {
}
}
} catch (SQLException e) {
LOGGER.error(
"Error al intentar conseguir los egresos pertenecientes al tipoEgreso " + tipoEgreso
+ " y a la caja " + caja, e);
}
return egresoList;
}
/**
* Obtiene la suma de los egresos en una caja
*
* @param caja caja a la que pertenecen los egresos a sumar
* @return La suma de los egresos, se retonara siempre 0 en caso que la Caja sea Caja.EMPTY
*/
@Override
public int getTotalEgreso(Caja caja) {
LOGGER.debug("Se intentara conseguir la suma de egreso de la caja " + caja);
int total = 0;
if (Caja.EMPTY == caja) {
LOGGER.debug("La caja era Caja.EMPTY");
return total;
}
@@ -278,15 +355,29 @@ public class SQLiteEgresoDAO implements EgresoDAO {
}
}
} catch (SQLException e) {
LOGGER.error("Error al intentar conseguir la suma de egresos de la caja " + caja, e);
}
LOGGER.debug("El total obtenido es " + total);
return total;
}
/**
* Obtiene la suma de egresos en un mes de un tipoEgreso
*
* @param mes Mes del que se necesita la suma
* @param tipo TipoEgreso al que pertencen los egresos
* @return La suma de los egresos dentro del mes y con el tipo entregado, en caso que el
* tipoEgreso sea TipoEgreso.EMPTY se retornara siempre 0
*/
@Override
public int getTotalEgresoMesPorTipo(YearMonth mes, TipoEgreso tipo) {
LOGGER.debug(
"Se intentara conseguir el total de egresos en el mes " + mes + " y del tipo " + tipo);
int total = 0;
if (TipoEgreso.EMPTY == tipo){
if (TipoEgreso.EMPTY == tipo) {
LOGGER.debug("El TipoEgreso era TipoEgreso.EMPTY");
return total;
}
@@ -305,12 +396,22 @@ public class SQLiteEgresoDAO implements EgresoDAO {
}
}
} catch (SQLException e) {
LOGGER.error(
"Error al intentar conseguir la suma de egresos en el mes " + mes + " y del tipo egreso "
+ tipo, e);
}
LOGGER.debug("El total obtenido es " + total);
return total;
}
/**
* Inserta en la base de datos una instancia de egreso
*
* @param egreso Egreso a insertar, una vez que ocurra se le otorga un id.
*/
@Override
public void insert(Egreso egreso) {
LOGGER.debug("Se intentara insertar el egreso " + egreso);
String query = "insert into egresos (nro, descripcion, valor, tipo_egreso_id, caja_id) values (?,?,?,?,?)";
try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
@@ -328,11 +429,18 @@ public class SQLiteEgresoDAO implements EgresoDAO {
}
}
} catch (SQLException e) {
LOGGER.error("Error al intentar insertar el egreso " + egreso, e);
}
LOGGER.debug("Se inserto el egreso " + egreso);
}
/**
* Actualiza un Egreso existente en la base de datos
* @param egreso Egreso a actualizar
*/
@Override
public void update(Egreso egreso) {
LOGGER.debug("Se intentara actualizar el egreso " + egreso);
String query = "update egresos set nro = ?, descripcion = ?, valor = ?, tipo_egreso_id = ?, caja_id = ? where id = ? ";
try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
@@ -345,11 +453,18 @@ public class SQLiteEgresoDAO implements EgresoDAO {
ps.executeUpdate();
}
} catch (SQLException e) {
LOGGER.error("Error al intentar actualizar el egreso " + egreso, e);
}
LOGGER.debug("Se actualizo el egreso " + egreso);
}
/**
* Elimina un Egreso existente en la base de datos
* @param egreso Egreso a eliminar
*/
@Override
public void delete(Egreso egreso) {
LOGGER.debug("Se intentara eliminar el egreso " + egreso);
String query = "delete from egresos where id = ? ";
try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
@@ -357,7 +472,8 @@ public class SQLiteEgresoDAO implements EgresoDAO {
ps.executeUpdate();
}
} catch (SQLException e) {
LOGGER.error("Error al intentar actualizar el egreso " + egreso);
}
LOGGER.debug("Se elimino el egreso " + egreso);
}
}