package org.salamanca.commands.persona;
import org.salamanca.commands.ICommand;
import org.salamanca.domain.User;
import org.salamanca.broker.BrokerServer;
import javax.jdo.PersistenceManager;
import org.salamanca.domain.Persona;
import java.util.Date;
import java.util.Vector;
import org.salamanca.commands.MessageException;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class ModificarPersona implements ICommand {
Persona persona;
String nombre;
String apellido;
long dni;
boolean masculino;
String domicilio;
String localidad;
String codigoPostal;
String telefono;
Date fechaNacimiento;
/**
* InsertarUsuario
*
* @param user User
*/
public ModificarPersona(Persona persona, String nombre, String apellido,
long dni, boolean masculino, String domicilio,
String localidad, String codigoPostal,
String telefono, Date fechaNacimiento) {
this.persona = persona;
this.nombre = nombre;
this.apellido = apellido;
this.dni = dni;
this.masculino = masculino;
this.domicilio = domicilio;
this.localidad = localidad;
this.codigoPostal = codigoPostal;
this.telefono = telefono;
this.fechaNacimiento = fechaNacimiento;
}
/**
* getCommandName
*
* @return String
*/
public String getCommandName() {
return this.getClass().getName();
}
/**
* getBarDelimitedParameters
*
* @return String
*/
public String getBarDelimitedParameters() {
return nombre + "|" + apellido + "|" + codigoPostal + "|" +
dni + "|" + domicilio + "|" +
fechaNacimiento + "|" + localidad +
"|" + masculino + "|" +
telefono;
}
/**
* execute
*/
public void execute() throws MessageException {
PersistenceManager pm = BrokerServer.instance().getPMF().
getPersistenceManager();
if (dni != persona.getDni()) { //verifico si quiere cambiar el dni que no lo tenga otro
Vector v = BrokerServer.instance().query(Persona.class,
"dni==" + dni);
if (v.size() > 0) {
throw new MessageException(
"Ya existe una persona con ese DNI");
}
}
pm.currentTransaction().begin();
Persona personaPM= (Persona)pm.getObjectById(javax.jdo.JDOHelper.getObjectId(persona),true);
personaPM.setNombre(nombre);
personaPM.setApellido(apellido);
personaPM.setCodigoPostal(codigoPostal);
personaPM.setDni(dni);
personaPM.setDomicilio(domicilio);
personaPM.setLocalidad(localidad);
personaPM.setMasculino(masculino);
personaPM.setTelefono(telefono);
personaPM.setFechaNacimiento(fechaNacimiento);
pm.currentTransaction().commit();
}
}