maia_modificado/.svn/pristine/3e/3e54e7c628109536704fd7a8311...

328 lines
8.2 KiB
Plaintext
Executable File

package com.fp.dto.save;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.fp.dto.AbstractDataTransport;
/**
* Dto de transporte utilizado en inserción, eliminación, actualización de datos en la base, adicionalmente permite
* transportar información desde el front end, la misma que será utilizada en componentes de mantenimiento implementados
* en el back end.e.
*
* @author Jorge Vaca.
* @version 2.1
*/
public class DtoSave implements Serializable {
private static final long serialVersionUID = 2802444515156689856L;
/** Nombre del bean a dar mantenimiento insert, update delete o financieros. */
private String beanname;
/** Lista de registros a eliminar de en la base de datos. */
private final List<AbstractDataTransport> ldeleted = new ArrayList<AbstractDataTransport>();
/** Lista de registros a insertar en la base de datos. */
private List<AbstractDataTransport> linsert = new ArrayList<AbstractDataTransport>();
/** Lista de objetos a modificar en la base de datos. */
private List<HashMap<String, Object>> lupdated = new ArrayList<HashMap<String, Object>>();
/** Posicion de grabado de los registros, por tabla */
private Integer position;
/** Datos adicionales utilizados en el mantenimiento */
private HashMap<String, Object> mdata = new HashMap<String, Object>();
/**
* Atributo para identificar si enviamos un form
*/
private boolean isForm;
private boolean returnpk = false;
/**
* Crea una instancia de DtoSave.
*/
public DtoSave() {
}
public void put(String key, Object value) {
mdata.put(key, value);
}
public Object get(String key) {
return mdata.get(key);
}
/**
* Entrega un valor tipo String de un map.
*
* @param key Key del map a obtener un valor.
* @return String
*/
public String getString(Object key) {
// Si el valor en null retorna null.
return (String) mdata.get(key);
}
/**
* Entrega un valor tipo Date de un map.
*
* @param key Key del map a obtener un valor.
* @return Date
*/
public Date getDate(Object key) {
return (Date) mdata.get(key);
}
/**
* Entrega un valor tipo Integer de un map.
*
* @param key Key del map a obtener un valor.
* @return Integer
*/
public Integer getInteger(Object key) {
try {
return Integer.valueOf(mdata.get(key).toString());
} catch (NumberFormatException e) {
// Tiene que retornar null las clases internamete tienen validaciones.
return null;
} catch (NullPointerException e) {
return null;
}
}
/**
* Entrega un valor tipo Long de un map.
*
* @param key Key del map a obtener un valor.
* @return Long
*/
public Long getLong(Object key) {
try {
return Long.valueOf(mdata.get(key).toString());
} catch (NumberFormatException e) {
// Tiene que retornar null las clases internamete tienen validaciones.
return null;
} catch (NullPointerException e) {
return null;
}
}
/**
* Entrega un valor tipo Long de un map.
*
* @param key Key del map a obtener un valor.
* @return Long
*/
public BigDecimal getBigDecimal(Object key) {
try {
return BigDecimal.valueOf(Double.valueOf(mdata.get(key).toString()));
} catch (NumberFormatException e) {
// Tiene que retornar null las clases internamete tienen validaciones.
return null;
} catch (NullPointerException e) {
return null;
}
}
/**
* Metodo que adiciona registros a crear en la base.
*
* @param lnew Lista de datos a insertar en la base.
* @throws Exception
*/
public final void addNew(List<AbstractDataTransport> lnew) throws Exception {
if (lnew.isEmpty()) {
return;
}
linsert.addAll(lnew);
}
/**
* Metodo que adiciona registros a actualizar en la base.
*
* @param lupdate Lista de datos a modificar en la base.
* @throws Exception
*/
public final void addUpdated(List<HashMap<String, Object>> lupdate) throws Exception {
if (lupdate.isEmpty()) {
return;
}
lupdated.addAll(lupdate);
}
/**
* Metodo que adiciona registros a eliminar de la base.
*
* @param ldelete Lista de datos a eliminar en la base.
* @throws Exception
*/
public final void addDeleted(List<AbstractDataTransport> ldelete) throws Exception {
if (ldelete.isEmpty()) {
return;
}
ldeleted.addAll(ldelete);
}
/**
* Metodo que verifica que el bean tenga acciones a realizar en la base.
*
* @return boolean.
* @throws Exception
*/
public boolean pendingProcess() throws Exception {
if (linsert.isEmpty() && lupdated.isEmpty() && ldeleted.isEmpty()) {
return false;
}
return true;
}
/**
* Entrega el valor de: beanname
*
* @return String
*/
public String getBeanname() {
return beanname;
}
/**
* Fija el valor de: beanname
*
* @param Valor a fijar en el atributo.
*/
public void setBeanname(String beanname) {
this.beanname = beanname;
}
/**
* Entrega el valor de: linsert
*
* @return List<AbstractDataTransport>
*/
public List<AbstractDataTransport> getLinsert() {
return linsert;
}
/**
* Fija el valor de: linsert
*
* @param Valor a fijar en el atributo.
*/
public void setLinsert(List<AbstractDataTransport> linsert) {
this.linsert = linsert;
}
/**
* Entrega el valor de: lupdated
*
* @return List<HashMap<String,Object>>
*/
public List<HashMap<String, Object>> getLupdated() {
return lupdated;
}
/**
* Fija el valor de: lupdated
*
* @param Valor a fijar en el atributo.
*/
public void setLupdated(List<HashMap<String, Object>> lupdated) {
this.lupdated = lupdated;
}
/**
* Entrega el valor de: position
*
* @return Integer
*/
public Integer getPosition() {
return position;
}
/**
* Fija el valor de: position
*
* @param Valor a fijar en el atributo.
*/
public void setPosition(Integer position) {
this.position = position;
}
/**
* Entrega el valor de: mdata
*
* @return HashMap<String,Object>
*/
public HashMap<String, Object> getMdata() {
return mdata;
}
/**
* Fija el valor de: mdata
*
* @param Valor a fijar en el atributo.
*/
public void setMdata(HashMap<String, Object> mdata) {
this.mdata = mdata;
}
/**
* Entrega el valor de: returnpk
*
* @return boolean
*/
public boolean isReturnpk() {
return returnpk;
}
/**
* Fija el valor de: returnpk
*
* @param Valor a fijar en el atributo.
*/
public void setReturnpk(boolean returnpk) {
this.returnpk = returnpk;
}
/**
* Entrega el valor de: ldeleted
*
* @return List<AbstractDataTransport>
*/
public List<Object> getLdeleted() {
List<Object> l = new ArrayList<Object>();
for (AbstractDataTransport obj : ldeleted) {
l.add(obj);
}
return l;
}
/**
* Entrega V/F si es formulario
*
* @return isForm V/F
*/
public boolean isIsForm() {
return isForm;
}
/**
* Fija V/F si es formulario
*
* @param isForm V/F
*/
public void setIsForm(boolean isForm) {
this.isForm = isForm;
}
}