Select Git revision
potatoYield.R
Programa.java 3.27 KiB
package br.ufpr.c3sl.estacaojuventude;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
import org.springframework.roo.addon.tostring.RooToString;
import org.springframework.security.core.context.SecurityContextHolder;
import br.ufpr.c3sl.estacaojuventude.enums.NivelPrograma;
import br.ufpr.c3sl.estacaojuventude.enums.TipoStatus;
import br.ufpr.c3sl.estacaojuventude.enums.TipoTemporalidade;
@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class Programa {
private String nomeOficial;
private String nomeDivulgacao;
private String sigla;
//NivelPrograma = {Nacional,Estadual,Municipal}
@Enumerated(EnumType.STRING)
private NivelPrograma nivel;
@OneToOne
private Programa programaVinculado;
private String leiCriacao;
@Column(columnDefinition = "text")
private String descricao;
@Column(columnDefinition = "text")
private String objetivos;
@Column(columnDefinition = "text")
private String beneficios;
@Temporal(TemporalType.DATE)
@DateTimeFormat(style = "S-")
private Date dataInicio;
//TipoTemporalidade = {Permanente, Temporario, Eventual}
@Enumerated(EnumType.STRING)
private TipoTemporalidade temporalidade;
@Column(columnDefinition = "text")
private String publicoAlvo;
private Integer idadeMinima;
private Integer idadeMaxima;
@Column(columnDefinition = "text")
private String criteriosAcesso;
private String duracao;
@ManyToMany(cascade = CascadeType.ALL)
private Set<Tematica> tematicas = new HashSet<Tematica>();
@ManyToMany(cascade = CascadeType.ALL)
private Set<OrgaoExecutor> orgaosExecutores = new HashSet<OrgaoExecutor>();
@Column(columnDefinition = "text")
private String parceiros;
@Enumerated(EnumType.STRING)
private TipoStatus status;
@OneToOne
private Usuario usuario;
public static List<Programa> findAllProgramasCandidatos() {
return entityManager().createNativeQuery("SELECT * FROM Programa WHERE status = 'Candidato'", Programa.class).getResultList();
}
public static List<Programa> findAllProgramasEfetivos() {
return entityManager().createNativeQuery("SELECT * FROM Programa WHERE status = 'Efetivo'", Programa.class).getResultList();
}
public static List<Programa> findAllProgramasRejeitados() {
return entityManager().createNativeQuery("SELECT * FROM Programa WHERE status = 'Rejeitado'", Programa.class).getResultList();
}
public static List<Programa> findMeusProgramas() {
String login = SecurityContextHolder.getContext().getAuthentication().getName();
return entityManager().createNativeQuery("SELECT * FROM Programa p, Usuario u WHERE p.usuario = u.id and p.status = 'Candidato' and u.login = '"+login+"'", Programa.class).getResultList();
}
}