示例#1
0
 public Boolean insertarClase(Clase nueva)
 {
     if (!existeClase(nueva.getNombre()))
     {
         this.listaClases.Add(nueva);
         return(true);
     }
     return(false);
 }
示例#2
0
        public Boolean actualizarClase(Clase actualizar)
        {
            Clase temporal;

            for (int i = 0; i < this.listaClases.Count; i++)
            {
                temporal = this.listaClases.ElementAt(i);
                if (temporal.getNombre().ToUpper().Equals(actualizar.getNombre().ToUpper()))
                {
                    this.listaClases.RemoveAt(i);
                    this.listaClases.Add(actualizar);
                    return(true);
                }
            }

            return(false);
        }
示例#3
0
        public Boolean seleccionarClaseActual(String nombreClase)
        {
            Clase temporal;

            if (this.claseActual.getNombre() != null)
            {
                actualizarClase(this.claseActual);
            }

            for (int i = 0; i < this.listaClases.Count; i++)
            {
                temporal = this.listaClases.ElementAt(i);
                if (temporal.getNombre().ToUpper().Equals(nombreClase.ToUpper()))
                {
                    this.claseActual = temporal;
                    return(true);
                }
            }

            return(false);
        }
示例#4
0
        public clasesDiagrama agregarHerencia()
        {
            clasesDiagrama umlRetorno = new clasesDiagrama();
            Clase          actual;

            for (int i = 0; i < listaClases.Count; i++)
            {
                actual = listaClases.ElementAt(i);
                if (actual.herencia != null)
                {//posee herencia
                    Clase clasePadre = getClase(actual.herencia);
                    Clase temporal   = new Clase();
                    if (clasePadre.lenguaje.Equals(actual.lenguaje, StringComparison.OrdinalIgnoreCase))
                    {
                        // buscamos todos los atributos que sean validos


                        temporal.nombre    = actual.nombre;
                        temporal.herencia  = actual.herencia;
                        temporal.lenguaje  = actual.lenguaje;
                        temporal.tamanho   = actual.tamanho;
                        temporal.apuntador = actual.apuntador;
                        //atributos de la clase padre
                        foreach (Atributo atrTemp in clasePadre.atributos.atributos)
                        {
                            Atributo nuevo      = esValidoAtriHerencia(atrTemp, temporal.nombre);
                            Atributo nuevoSuper = esPadreValidoAtriHerencia(atrTemp, temporal.nombre);

                            if (nuevo != null && nuevoSuper != null)
                            {
                                temporal.addAtributo(nuevoSuper);
                                temporal.addAtributo(nuevo);
                            }
                        }
                        //agregamos los atributos de la clase ya que han sido guardados los de la clase padre

                        foreach (Atributo item in actual.atributos.atributos)
                        {
                            temporal.addAtributo(item);
                        }

                        //agregamos las funciones de la clase padre

                        foreach (Funcion item in clasePadre.funciones.funciones)
                        {
                            Funcion funcNueva      = esValidoFuncHerencia(item, temporal.nombre);
                            Funcion funcNuevaPadre = esPadreValidoFuncHerencia(item, temporal.nombre);
                            if (funcNueva != null && funcNuevaPadre != null)
                            {
                                temporal.addFuncion(funcNuevaPadre);
                                temporal.addFuncion(funcNueva);
                            }
                        }

                        foreach (Funcion item in actual.funciones.funciones)
                        {
                            temporal.funciones.sobreEscribirFunciones(item);
                        }


                        umlRetorno.insertarClase(temporal);
                    }
                    else
                    {
                        ErrorA er = new ErrorA(Constantes.errorSemantico, 0, 0, 0, "La clase " + actual.nombre + " es de otro lenguaje a la clase " + clasePadre.nombre);
                        Form1.errores.addError(er);
                    }
                }
                else
                {
                    umlRetorno.insertarClase(actual);
                }
            }

            return(umlRetorno);
        }
示例#5
0
 public clasesDiagrama()
 {
     this.claseActual = new Clase();
     this.listaClases = new List <Clase>();
 }