package modelo;

import java.util.ArrayList; 

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

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.B5397BD3-C4F1-EAF8-6B24-D8DD6FA987FC]
    // </editor-fold> 
    private ArrayList<CasodeUso> mCasodeUso=new ArrayList();
    private ArrayList<Requisito> mRequisito=new ArrayList();
    private String id;
    //Poner un entero con el numero de indice del último identificador creado

    // <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) {

        //// 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);
        //// Enlazo el CasodeUso a la lista de CU que tiene el documento
        this.getCasodeUso().add(auxCU);
        return auxCU;
    }

    public ReqRestriccion newRRes(String nombreRRes, String descripcionRRes, String importancia, String urgencia, String estadodesarrollo, String estabilidad) {
        ReqRestriccion auxRRes = new ReqRestriccion();
        
        auxRRes.setNombre(nombreRRes);
        auxRRes.setDescripcion(descripcionRRes);
        auxRRes.setImportancia(importancia);
        auxRRes.setUrgencia(urgencia);
        auxRRes.setEstado_desarrollo(estadodesarrollo);
        auxRRes.setEstabilidad(estabilidad);
        
        this.getmRequisito().add(auxRRes);
        return auxRRes;
    }

    /**
     * @return the mRequisito
     */
    public ArrayList<Requisito> getmRequisito() {
        return mRequisito;
    }

    /**
     * @param mRequisito the mRequisito to set
     */
    public void setmRequisito(ArrayList<Requisito> mRequisito) {
        this.mRequisito = mRequisito;
    }

    public ReqInformacion newRInf(String nombre, String concepto, int vmax, int vmedio, String importancia, String urgencia, String estadodesarrollo, String estabilidad, String unimax, String unimedio) {
        ReqInformacion auxRInf = new ReqInformacion();
        
        auxRInf.setNombre(nombre);
        auxRInf.setConcepto(concepto);
        auxRInf.setValor_maximo(vmax);
        auxRInf.setValor_medio(vmedio);
        auxRInf.setImportancia(importancia);
        auxRInf.setUrgencia(urgencia);
        auxRInf.setEstado_desarrollo(estadodesarrollo);
        auxRInf.setEstabilidad(estabilidad);
        auxRInf.setUnidad_maximo(unimax);
        auxRInf.setValor_medio(vmedio);
        
        this.getmRequisito().add(auxRInf);
        return auxRInf;
    }

    public ReqFuncional newRFun(String nombre, String descripcion, String importancia, String urgencia, String estadodesarrollo, String estabilidad) {
        ReqFuncional auxRFun = new ReqFuncional();
        
        auxRFun.setNombre(nombre);
        auxRFun.setDescripcion(descripcion);
        auxRFun.setImportancia(importancia);
        auxRFun.setUrgencia(urgencia);
        auxRFun.setEstado_desarrollo(estadodesarrollo);
        auxRFun.setEstabilidad(estabilidad);
        
        this.getmRequisito().add(auxRFun);
        return auxRFun;
    }

    public ReqNoFuncional newRNoFun(String nombre, String descripcion, String importancia, String urgencia, String estadodesarrollo, String estabilidad) {
        ReqNoFuncional auxRNoFun = new ReqNoFuncional();
        
        auxRNoFun.setNombre(nombre);
        auxRNoFun.setDescripcion(descripcion);
        auxRNoFun.setImportancia(importancia);
        auxRNoFun.setUrgencia(urgencia);
        auxRNoFun.setEstado_desarrollo(estadodesarrollo);
        auxRNoFun.setEstabilidad(estabilidad);
        
        this.getmRequisito().add(auxRNoFun);
        return auxRNoFun;
    }

    /**
     * @return the id
     */
    public String getId() {
        return id;
    }

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

}

