package modelo;

import java.util.ArrayList;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.MutableTreeNode;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;


// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.6152FD4C-6D23-B415-B6AA-5E3083D32571]
// </editor-fold> 
public class DocumentoReq extends javax.swing.JTree{

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.CCA1F4F7-57C3-AD84-BE75-1BB551CFC3E5]
    // </editor-fold> 
    private ArrayList<CasodeUso> mCasodeUso = new ArrayList();
    private ArrayList<ReqFuncional> mReqFunc = new ArrayList();
    private ArrayList<ReqNoFuncional> mReqNoFunc = new ArrayList();
    private ArrayList<ReqInformacion> mReqInfo = new ArrayList();
    private ArrayList<ReqRestriccion> mReqRest = new ArrayList();

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.1D51ABF1-2DD9-82E3-126D-173DEB5FADBA]
    // </editor-fold> 
    public DocumentoReq () {
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.A9A64C79-62B1-D6C4-FB8A-BCD4EF81E5C4]
    // </editor-fold> 
    public ArrayList<CasodeUso> getCasodeUso () {
        return mCasodeUso;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.53D39B7F-03CC-D44E-1C6A-CB6F6C02538E]
    // </editor-fold> 
    public void setCasodeUso (ArrayList<CasodeUso> val) {
         this.mCasodeUso=val;
    }
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.3DF3139E-17FC-1508-86A3-908C60405553]
    // </editor-fold> 
    public CasodeUso nuevoCU (String nombreCU, boolean esAbstracto, String eventoActivacion, int frecuencia, String unidadFrecuencia, String precondicion, String postcondicion, String importancia, String urgencia, String estadodeDesarrollo, String estabilidad) {

        //// Creo la instancia
        CasodeUso auxCU=new CasodeUso();
        //// Asigno los valores a los atributos
        auxCU.setNombre(nombreCU);
        auxCU.setEsAbstracto(esAbstracto);
        auxCU.setEventoActivacion(eventoActivacion);
        auxCU.setFrecuencia(frecuencia);
        auxCU.setUnidadFrecuencia(unidadFrecuencia);
        auxCU.setPrecondicion(precondicion);
        auxCU.setPostcondicion(postcondicion);
        auxCU.setImportancia(importancia);
        auxCU.setUrgencia(urgencia);
        auxCU.setEstadodeDesarrollo(estadodeDesarrollo);
        auxCU.setEstabilidad(estabilidad);
        //// Enlazo el CasodeUso a la lista de CU que tiene el documento
        this.getCasodeUso().add(auxCU);
        return auxCU;
    }
    public ReqFuncional nuevoReqFunc(String nombre,
                           String autores,
                           String Fuentes,
                           String comentarios,
                           String importancia,
                           String urgencia,
                           String estadoDes,
                           String estabilidad,
                           String descripcion)
    {
        ReqFuncional aux = new ReqFuncional();
        aux.setNombre(nombre);
        aux.setAutores(autores);
        aux.setFuentes(Fuentes);
        aux.setComentarios(comentarios);
        aux.setImportancia(importancia);
        aux.setUrgencia(urgencia);
        aux.setEstadoDes(estadoDes);
        aux.setEstabilidad(estabilidad);
        aux.setDescripcion(descripcion);
        this.getmReqFunc().add(aux);
        return aux;
    }
    public ReqNoFuncional nuevoReqNoFunc(String nombre,
                           String autores,
                           String Fuentes,
                           String comentarios,
                           String importancia,
                           String urgencia,
                           String estadoDes,
                           String estabilidad,
                           String descripcion)
    {
        ReqNoFuncional aux = new ReqNoFuncional();
        aux.setNombre(nombre);
        aux.setAutores(autores);
        aux.setFuentes(Fuentes);
        aux.setComentarios(comentarios);
        aux.setImportancia(importancia);
        aux.setUrgencia(urgencia);
        aux.setEstadoDes(estadoDes);
        aux.setEstabilidad(estabilidad);
        aux.setDescripcion(descripcion);
        this.getmReqNoFunc().add(aux);
        return aux;
    }
    public ReqRestriccion nuevoReqRest(String nombre,
                           String autores,
                           String Fuentes,
                           String comentarios,
                           String importancia,
                           String urgencia,
                           String estadoDes,
                           String estabilidad,
                           String descripcion)
    {
        ReqRestriccion aux = new ReqRestriccion();
        aux.setNombre(nombre);
        aux.setAutores(autores);
        aux.setFuentes(Fuentes);
        aux.setComentarios(comentarios);
        aux.setImportancia(importancia);
        aux.setUrgencia(urgencia);
        aux.setEstadoDes(estadoDes);
        aux.setEstabilidad(estabilidad);
        aux.setDescripcion(descripcion);
        this.getmReqRest().add(aux);
        return aux;
    }
    public ReqInformacion nuevoReqInfo(String nombre,
                                       String autores,
                                       String Fuentes,
                                       String importancia,
                                       String urgencia,
                                       String estadoDes,
                                       String estabilidad,
                                       String comentarios,
                                       String conceptoRelevante,
                                       int tiempoMax,
                                       int tiempoMed,
                                       String unifreqmax,
                                       String unifreqmed,
                                       int numOcurrencias,
                                       int numMedio)
    {
        ReqInformacion aux = new ReqInformacion();
        aux.setNombre(nombre);
        aux.setAutores(autores);
        aux.setFuentes(Fuentes);
        aux.setComentarios(comentarios);
        aux.setImportancia(importancia);
        aux.setUrgencia(urgencia);
        aux.setEstadoDes(estadoDes);
        aux.setEstabilidad(estabilidad);
        aux.setConceptoRelevante(conceptoRelevante);
        aux.setTiempoMaxVida(tiempoMax);
        aux.setTiempoMedVida(tiempoMed);
        aux.setUnidadFreqMax(unifreqmax);
        aux.setUnidadFreqMed(unifreqmed);
        aux.setNumOcurrencias(numOcurrencias);
        aux.setNumMedio(numMedio);
        this.getmReqInfo().add(aux);
        return aux;
    }

    public ArrayList<ReqFuncional> getmReqFunc() {
        return mReqFunc;
    }

    /**
     * @param mReqFunc the mReqFunc to set
     */
    public void setmReqFunc(ArrayList<ReqFuncional> mReqFunc) {
        this.mReqFunc = mReqFunc;
    }

    /**
     * @return the mReqNoFunc
     */
    public ArrayList<ReqNoFuncional> getmReqNoFunc() {
        return mReqNoFunc;
    }

    /**
     * @param mReqNoFunc the mReqNoFunc to set
     */
    public void setmReqNoFunc(ArrayList<ReqNoFuncional> mReqNoFunc) {
        this.mReqNoFunc = mReqNoFunc;
    }

    /**
     * @return the mReqInfo
     */
    public ArrayList<ReqInformacion> getmReqInfo() {
        return mReqInfo;
    }

    public void setmReqInfo(ArrayList<ReqInformacion> mReqInfo) {
        this.mReqInfo = mReqInfo;
    }

    /**
     * @return the mReqRest
     */
    public ArrayList<ReqRestriccion> getmReqRest() {
        return mReqRest;
    }

    /**
     * @param mReqRest the mReqRest to set
     */
    public void setmReqRest(ArrayList<ReqRestriccion> mReqRest) {
        this.mReqRest = mReqRest;
    }
}

    /**
     * @return the mRequisitos
     */

