Commit 56937330 by Joel Florentin

enum para modalidad y disponibilidad.

parent c492342c
......@@ -3,7 +3,8 @@ package com.roshka.controller;
import javax.validation.ConstraintViolationException;
import com.roshka.modelo.Disponibilidad;
import com.roshka.modelo.Modalidad;
import com.roshka.modelo.Postulante;
import com.roshka.repositorio.PostulanteRepository;
import com.roshka.repositorio.TecnologiaRepository;
......@@ -33,6 +34,8 @@ public class PostulanteController {
@RequestMapping("/postulante")
public String getFormPostulante(Model model){
model.addAttribute("tecnologias", tecRepo.findAll());
model.addAttribute("modalidades", Modalidad.values());
model.addAttribute("disponibilidades", Disponibilidad.values());
return "postulante-form";
}
......
package com.roshka.modelo;
import com.fasterxml.jackson.annotation.JsonValue;
public enum Disponibilidad {
TIEMPO_COMPLETO("C"), PARCIAL("P");
private String code;
private Disponibilidad(String code) {
this.code = code;
}
@JsonValue
public String getCode() {
return code;
}
}
package com.roshka.modelo;
import java.util.Arrays;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
@Converter(autoApply = true)
public class DisponibilidadConverter implements AttributeConverter<Disponibilidad, String> {
@Override
public String convertToDatabaseColumn(Disponibilidad modalidad) {
if (modalidad == null) {
return null;
}
return modalidad.getCode();
}
@Override
public Disponibilidad convertToEntityAttribute(String code) {
if (code == null) {
return null;
}
return Arrays.stream(Disponibilidad.values())
.filter(c -> c.getCode().equals(code))
.findFirst()
.orElseThrow(IllegalArgumentException::new);
}
}
package com.roshka.modelo;
import com.fasterxml.jackson.annotation.JsonValue;
public enum Modalidad {
PRESENCIAL("P"), SEMIPRESENCIAL("S"), REMOTO("R");
private String code;
private Modalidad(String code) {
this.code = code;
}
@JsonValue
public String getCode() {
return code;
}
}
package com.roshka.modelo;
import java.util.Arrays;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
@Converter(autoApply = true)
public class ModalidadConverter implements AttributeConverter<Modalidad, String> {
@Override
public String convertToDatabaseColumn(Modalidad modalidad) {
if (modalidad == null) {
return null;
}
return modalidad.getCode();
}
@Override
public Modalidad convertToEntityAttribute(String code) {
if (code == null) {
return null;
}
return Arrays.stream(Modalidad.values())
.filter(c -> c.getCode().equals(code))
.findFirst()
.orElseThrow(IllegalArgumentException::new);
}
}
......@@ -6,8 +6,6 @@ import javax.validation.constraints.*;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.roshka.utils.Helper;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -66,12 +64,12 @@ public class Postulante {
@Column(name = "curriculum")
private String curriculum;
@Column(name = "modalidad")
@Column(name = "modalidad", length = 2)
@NotNull
private String modalidad;
private Modalidad modalidad;
@Column(name = "disponibilidad")
private String disponibilidad;
@Column(name = "disponibilidad", length = 2)
private Disponibilidad disponibilidad;
@JsonManagedReference
@OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
......@@ -178,19 +176,19 @@ public class Postulante {
this.curriculum = curriculum;
}
public String getModalidad() {
public Modalidad getModalidad() {
return modalidad;
}
public void setModalidad(String modalidad) {
public void setModalidad(Modalidad modalidad) {
this.modalidad = modalidad;
}
public String getDisponibilidad() {
public Disponibilidad getDisponibilidad() {
return disponibilidad;
}
public void setDisponibilidad(String disponibilidad) {
public void setDisponibilidad(Disponibilidad disponibilidad) {
this.disponibilidad = disponibilidad;
}
......
package com.roshka.repositorio;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
import com.roshka.modelo.Postulante;
public interface PostulanteRepository extends JpaRepository<Postulante,Long> {
@Query("select p from Postulante p join p.estudios e on e.institucion LIKE %?1%")
public List<Postulante> findByInstitucionEstudio(String institucion);
}
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 to comment