package modelo;

import java.io.Serializable;
import javax.persistence.*;


// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.AD8AAD52-7A32-9D21-6957-A79CD73A9583]
// </editor-fold> 
@Entity
@Table (name = "Excepcion")
public class Excepcion implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int idTabla;

    @Column (name = "identificacion")
    private String identificacion;
    
    @Column (name = "nombre")
    private String nombre;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.4C85F93D-6BB4-2D9D-77F2-AB1FCA67839D]
    // </editor-fold> 
    @Column (name = "condicion")
    private String condicion;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.3FEB2C1D-E575-5172-8259-6E569C150ECE]
    // </editor-fold> 
    @Column (name = "terminacion")
    private String terminacion;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.76087408-2C8B-057D-5B56-4BB2C09D7FED]
    // </editor-fold> 
    @Column (name = "accionSistema")
    private Boolean accionSistema;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.3219F71C-5F3A-F9ED-006D-A73870C2482A]
    // </editor-fold> 
    @Column (name = "accionActor")
    private Boolean accionActor;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.7CBC7A9E-6FDC-7903-2557-FA73C646D18B]
    // </editor-fold> 
    @Column (name = "inclusionExtension")
    private Boolean inclusionExtension;

    @Column (name = "actor")
    private String actor;

    @Column (name = "casoUso")
    private String casoUso;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.9350A108-83D1-E511-9886-B0A1851B6028]
    // </editor-fold> 
    @Column (name = "descripcionAccion")
    private String descripcionAccion;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.946872B4-EE5D-ED9F-B519-CA3B18194C82]
    // </editor-fold> 
    @Column (name = "valorRendimiento")
    private int valorRendimiento;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.2403DB34-FF6B-724B-2D59-0D6B2BBE5EE9]
    // </editor-fold> 
    @Column (name = "unidadRendimiento")
    private String unidadRendimiento;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.6C0E4586-9B76-D261-26A5-ADB463525574]
    // </editor-fold> 
    @Column (name = "comentario")
    private String comentario;

    @ManyToOne
    private Paso mPaso;



    
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.FB06846A-355B-0DDE-6B0F-9BDC7D6A2D91]
    // </editor-fold> 
    public Excepcion () {
    }

    public Excepcion (Paso p) {
        mPaso = p;
    }

            // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,regenBody=yes,id=DCE.6C21F48C-39BC-CFEE-971E-84F44310255A]
    // </editor-fold>
    public String getNombre () {
        return nombre;
    }

    /**
     * @return the idTabla
     */
    public int getIdTabla() {
        return idTabla;
    }

    /**
     * @param idTabla the idTabla to set
     */
    public void setIdTabla(int idTabla) {
        this.idTabla = idTabla;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,regenBody=yes,id=DCE.144D8F04-90B6-9419-D95F-99471489946A]
    // </editor-fold>
    public void setNombre (String val) {
        this.nombre = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.FDF9ECF7-64FC-2DF7-709A-126A7342AFDC]
    // </editor-fold> 
    public Boolean getAccionActor () {
        return accionActor;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.4D95B118-0F2E-E098-264A-A9648003AC5A]
    // </editor-fold> 
    public void setAccionActor (Boolean val) {
        this.accionActor = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.64C76113-D5DC-3541-0AEE-0692119A73C1]
    // </editor-fold> 
    public Boolean getAccionSistema () {
        return accionSistema;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.3C23AC83-A478-0B23-8B5F-5E637356EF90]
    // </editor-fold> 
    public void setAccionSistema (Boolean val) {
        this.accionSistema = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.D716ED72-393A-81CD-7DAA-43C4F67A94DE]
    // </editor-fold> 
    public String getComentario () {
        return comentario;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.00CFAEF8-DFE5-B4AE-B22F-F1F68E6267CC]
    // </editor-fold> 
    public void setComentario (String val) {
        this.comentario = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.73811B30-917F-15F7-4923-B2D035359659]
    // </editor-fold> 
    public String getCondicion () {
        return condicion;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.85EF3363-5A3F-E8DC-BD3B-C3EBE7E26284]
    // </editor-fold> 
    public void setCondicion (String val) {
        this.condicion = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.BDD9A77F-8843-4954-8D9F-995E61A2E6B1]
    // </editor-fold> 
    public String getDescripcionAccion () {
        return descripcionAccion;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.39632525-0644-47E7-A99D-2E508C034F37]
    // </editor-fold> 
    public void setDescripcionAccion (String val) {
        this.descripcionAccion = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.34D3858C-72F9-74B8-B5BD-71D7E62009E3]
    // </editor-fold> 
    public Boolean getInclusionExtension () {
        return inclusionExtension;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.FB2496B1-A8BC-C189-6FD5-3BA0771DF76C]
    // </editor-fold> 
    public void setInclusionExtension (Boolean val) {
        this.inclusionExtension = val;
    }

    /**
     * @return the actor
     */
    public String getActor() {
        return actor;
    }

    /**
     * @param actor the actor to set
     */
    public void setActor(String actor) {
        this.actor = actor;
    }

    /**
     * @return the casoUso
     */
    public String getCasoUso() {
        return casoUso;
    }

    /**
     * @param casoUso the casoUso to set
     */
    public void setCasoUso(String casoUso) {
        this.casoUso = casoUso;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.B0BABFE6-1DB5-49AE-7B92-09A89B38C9AB]
    // </editor-fold> 
    public String getTerminacion () {
        return terminacion;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.6B1E2DA4-341F-27AF-9ECB-804E21918501]
    // </editor-fold> 
    public void setTerminacion (String val) {
        this.terminacion = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.B09AFF2C-B647-8086-FBB0-8A8A48A570E2]
    // </editor-fold> 
    public String getUnidadRendimiento () {
        return unidadRendimiento;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.856580C6-DC81-5C9C-DA0E-1BCE73FC66AE]
    // </editor-fold> 
    public void setUnidadRendimiento (String val) {
        this.unidadRendimiento = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.FC2981B4-209A-5086-AA92-55C49B0999DE]
    // </editor-fold> 
    public int getValorRendimiento () {
        return valorRendimiento;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.BB02823D-B1F3-83B8-ECC7-B29A4067213F]
    // </editor-fold> 
    public void setValorRendimiento (int val) {
        this.valorRendimiento = val;
    }

    /**
     * @return the identificacion
     */
    public String getIdentificacion() {
        return identificacion;
    }

    /**
     * @param identificacion the identificacion to set
     */
    public void setIdentificacion(String identificacion) {
        this.identificacion = identificacion;
    }

    /**
     * @return the mPaso
     */
    public Paso getMPaso() {
        return mPaso;
    }

    /**
     * @param mPaso the mPaso to set
     */
    public void setMPaso(Paso mPaso) {
        this.mPaso = mPaso;
    }

    @Override
    public String toString() {
        return "Excepcion{" + "idTabla=" + idTabla + ", identificacion=" + identificacion + ", nombre=" + nombre + ", condicion=" +
                condicion + ", terminacion=" + terminacion + ", accionSistema=" + accionSistema + ", accionActor=" + accionActor +
                ", inclusionExtension=" + inclusionExtension + ", descripcionAccion=" + descripcionAccion + ", valorRendimiento=" +
                valorRendimiento + ", unidadRendimiento=" + unidadRendimiento + ", comentario=" + comentario + ", mPaso=" + mPaso + '}';
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Excepcion other = (Excepcion) obj;
        if ((this.identificacion == null) ? (other.identificacion != null) : !this.identificacion.equals(other.identificacion)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 83 * hash + (this.identificacion != null ? this.identificacion.hashCode() : 0);
        return hash;
    }

    public static Excepcion getData(String id, String idAbuelo, String idPadre) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("AZETA_REMPU");
        EntityManager em = emf.createEntityManager();
        Query q = em.createQuery("SELECT e FROM Excepcion e WHERE e.identificacion = '"+ id +
                                 "' AND e.mPaso.identificacion = '"+ idPadre +
                                 "' AND e.mPaso.mCasoUso.identificacion = '"+ idAbuelo +"'");

        Excepcion excepcion = (Excepcion) q.getSingleResult();

        return excepcion;
    }

}

