Commit 073061c5 by Antonio Rueda

Cambios menores: expresión regular para código postal, mensajes de error en anotaciones

de validación por patrón, comprobación de validez de reserva, getter
que faltan.
parent b858f151
...@@ -15,7 +15,7 @@ public class Cliente { ...@@ -15,7 +15,7 @@ public class Cliente {
@NotBlank @NotBlank
String direccion; String direccion;
@Pattern(regexp = "^(\\+34|0034|34)?[6789]\\d{8}$") @Pattern(regexp = "^(\\+34|0034|34)?[6789]\\d{8}$", message = "No es un número de teléfono válido")
String tlf; String tlf;
// Clave // Clave
...@@ -40,4 +40,16 @@ public class Cliente { ...@@ -40,4 +40,16 @@ public class Cliente {
public String clave() { public String clave() {
return clave; return clave;
} }
public String nombre() {
return nombre;
}
public String tlf() {
return tlf;
}
public String direccion() {
return direccion;
}
} }
package es.ujaen.dae.reservahoteles.entidades; package es.ujaen.dae.reservahoteles.entidades;
import es.ujaen.dae.reservahoteles.excepciones.ReservaNoValida;
import es.ujaen.dae.reservahoteles.excepciones.NoDisponibilidadReserva; import es.ujaen.dae.reservahoteles.excepciones.NoDisponibilidadReserva;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
...@@ -27,7 +28,7 @@ public class Hotel { ...@@ -27,7 +28,7 @@ public class Hotel {
String localidad; String localidad;
@NotBlank @NotBlank
String provincia; String provincia;
@Pattern(regexp="/^(?:0[1-9]|[1-4]\\d|5[0-2])\\d{3}$/") @Pattern(regexp="^(?:0[1-9]|[1-4]\\d|5[0-2])\\d{3}$", message = "No es un código postal válido")
String cp; String cp;
// Disponibilidad habitaciones // Disponibilidad habitaciones
...@@ -63,6 +64,9 @@ public class Hotel { ...@@ -63,6 +64,9 @@ public class Hotel {
* @param reserva la reserva a añadir * @param reserva la reserva a añadir
*/ */
public void nuevaReserva(Reserva reserva) { public void nuevaReserva(Reserva reserva) {
if (!reserva.valida())
throw new ReservaNoValida();
if (!disponible(reserva.fechaInicio(), reserva.fechaFin(), reserva.numHabSimple(), reserva.numHabDoble())) if (!disponible(reserva.fechaInicio(), reserva.fechaFin(), reserva.numHabSimple(), reserva.numHabDoble()))
throw new NoDisponibilidadReserva(); throw new NoDisponibilidadReserva();
...@@ -147,6 +151,30 @@ public class Hotel { ...@@ -147,6 +151,30 @@ public class Hotel {
public void nombre(String nombre) { public void nombre(String nombre) {
this.nombre = nombre; this.nombre = nombre;
} }
public int numHabSimple() {
return numHabSimple;
}
public int numHabDoble() {
return numHabDoble;
}
public int precioHabSimple() {
return precioHabSimple;
}
public int precioHabDoble() {
return precioHabDoble;
}
public String provincia() {
return provincia;
}
public String cp() {
return cp;
}
/** /**
* Operación auxiliar para comprobar si una fecha están dentro de un intervalo dado * Operación auxiliar para comprobar si una fecha están dentro de un intervalo dado
......
...@@ -52,4 +52,15 @@ public class Reserva { ...@@ -52,4 +52,15 @@ public class Reserva {
public int numHabDoble() { public int numHabDoble() {
return numHabDoble; return numHabDoble;
} }
/**
* Implementa la precondición para que una reserva sea válida:
* fecha de fin de reserva posterior a la de inicio y número de habitaciones
* distinto de cero.
*
* @return true si la reserva es válida; false en caso contrario
*/
public boolean valida() {
return fechaInicio.isBefore(fechaFin) && numHabSimple + numHabDoble > 0;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment