Example #1
0
        private void setAtributoDinamico(string nombre, Objeto instancia)
        {
            AtributoDinamico atributo = new AtributoDinamico(nombre, instancia);

            if (arrayAtributo == null)
            {
                arrayAtributo = new List <Atributo>();
            }
            if (arrayAtributo.Contains(atributo))
            {
                int      index = arrayAtributo.IndexOf(atributo);
                Atributo dato  = getAtributo(nombre);
                if (instancia.GetType() == Nulo.NULO.GetType())
                {
                    arrayAtributo.RemoveAt(index);
                }
                else if (dato.valor().GetType() != instancia.GetType())
                {
                    throw new LanguageException("Al atributo '" + nombre + "' solo se le pueden asignar valores de tipo '" + dato.valor().GetType().Name + "'.");
                }
                else
                {
                    arrayAtributo[index] = atributo;
                }
            }
            else
            {
                if (instancia.GetType() != Nulo.NULO.GetType())
                {
                    arrayAtributo.Add(atributo);
                }
            }
        }
Example #2
0
        public virtual void setAtributoFijo(string nombre, Objeto valor)
        {
            AtributoFijo atributo = new AtributoFijo(nombre, valor);

            if (arrayAtributo == null)
            {
                arrayAtributo = new List <Atributo>();
            }
            if (arrayAtributo.Contains(atributo))
            {
                Objeto dato = getDatoDelAtributo(nombre);
                if (valor.GetType() == Nulo.NULO.GetType())
                {
                    throw new LanguageException("Al atributo Fijo'" + nombre + "' No se le puede asignar un valor Nulo, debe asignarle un valor de tipo '" + dato.GetType().Name + "'.");
                }
                else if (dato.GetType() != valor.GetType())
                {
                    throw new LanguageException("Al atributo '" + nombre + "' solo le puede asignar un valor de tipo '" + dato.GetType().Name + "'.");
                }
                else
                {
                    int index = arrayAtributo.IndexOf(atributo);
                    arrayAtributo[index] = atributo;
                }
            }
            else
            {
                if (valor.GetType() != Nulo.NULO.GetType())
                {
                    arrayAtributo.Add(atributo);
                }
                else
                {
                    throw new LanguageException("Al atributo Fijo'" + nombre + "' No se le puede asignar un valor Nulo, debe asignarle un valor de tipo '" + valor.GetType().Name + "'.");
                }
            }
        }
Example #3
0
        public override Boolean esMenorOIgualQue(Objeto objeto)
        {
            bool resultado = false;

            if (objeto is Moneda estaMoneda)
            {
                if (tipoDeMoneda_Renamed != estaMoneda.tipoDeMoneda_Renamed)
                {
                    throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", tipoDeMoneda_Renamed.nombre(), estaMoneda.tipoDeMoneda_Renamed.nombre()));
                }
                resultado = ConvertirADouble() <= estaMoneda.ConvertirADouble();
            }
            else
            {
                throw new LanguageException(string.Format("No se puede comparar un {0} con un {1}.", objeto.GetType().Name, this.GetType().Name));
            }

            return(resultado ? Boolean.True : Boolean.False);
        }
Example #4
0
        public override Boolean esIgualQue(Objeto objeto)
        {
            Moneda otraMoneda = null;

            try
            {
                otraMoneda = (Moneda)objeto;
                if (tipoDeMoneda_Renamed != otraMoneda.tipoDeMoneda_Renamed)
                {
                    throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", tipoDeMoneda_Renamed.nombre(), otraMoneda.tipoDeMoneda_Renamed.nombre()));
                }
            }
            catch (System.InvalidCastException)
            {
                throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", typeof(Denominacion).Name, objeto.GetType().Name));
            }
            return(ConvertirADouble() == otraMoneda.ConvertirADouble() && tipoDeMoneda_Renamed == otraMoneda.tipoDeMoneda_Renamed ? Boolean.True : Boolean.False);
        }
Example #5
0
        public override Objeto dividir(Objeto objeto)
        {
            double resultado = 0.0;

            if (objeto is Decimal unDecimal)
            {
                resultado = ConvertirADouble() / unDecimal.Valor;
            }
            else if (objeto is Numero numero)
            {
                resultado = ConvertirADouble() / (double)numero.Valor;
            }
            else
            {
                throw new LanguageException(string.Format("No se puede dividir un {0} y un {1}.", objeto.GetType().Name, this.GetType().Name));
            }
            Moneda nuevoMonto = ObtenerNuevaMonedaEnLaMismaEconomia(Moneda.ConvertirADouble(resultado));

            return(nuevoMonto);
        }
Example #6
0
        public override Objeto sumar(Objeto objeto)
        {
            Objeto resultado;

            if (objeto is Hilera)
            {
                resultado = new Hilera(valor + ((Hilera)objeto).Valor);
            }
            else if (objeto is Decimal)
            {
                resultado = new Hilera(valor + ((Decimal)objeto).Valor);
            }
            else if (objeto is Numero)
            {
                resultado = new Hilera(valor + ((Numero)objeto).Valor);
            }
            else
            {
                throw new LanguageException(string.Format("No se puede sumar un {0} a un {1}.", objeto.GetType().Name, this.GetType().Name));
            }
            return(resultado);
        }
Example #7
0
 public override Boolean esIgualQue(Objeto otraFecha)
 {
     try
     {
         if (otraFecha is FechaHora)
         {
             return(this.EsIgualQue((FechaHora)otraFecha).valor ? Boolean.True : Boolean.False);
         }
         else
         {
             Fecha fecha = (Fecha)otraFecha;
             return(this.EsIgualQue(new FechaHora(fecha.Dia, fecha.Mes, fecha.Anno, 0, 0, 0)).valor ? Boolean.True : Boolean.False);
         }
     }
     catch (System.InvalidCastException)
     {
         throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", typeof(FechaHora).Name, otraFecha.GetType().Name));
     }
 }
Example #8
0
        public override Objeto sumar(Objeto objeto)
        {
            Lista miLista = new Lista();

            miLista.guardarLista(lista);

            bool elObjetoDelParametroEsInstanciaDeLista = objeto is Lista;

            if (!elObjetoDelParametroEsInstanciaDeLista)
            {
                throw new LanguageException(string.Format("No se puede sumar un {0} a un {1}, ya que ambos de tipos diferentes.", miLista.demeElTipoObjetoAlQuePertenece(), objeto.GetType().Name));
            }

            Lista nuevaLista = new Lista();

            nuevaLista.guardarTodo((Lista)objeto);

            bool noEsElMismoTipoDeObjeto = !miLista.demeElTipoObjetoAlQuePertenece().esIgual(nuevaLista.demeElTipoObjetoAlQuePertenece());

            if (noEsElMismoTipoDeObjeto)
            {
                throw new LanguageException(string.Format("No se puede sumar un {0} a un {1}, ya que ambos de tipos diferentes.", miLista.demeElTipoObjetoAlQuePertenece(), nuevaLista.demeElTipoObjetoAlQuePertenece()));
            }
            miLista.guardarTodo(nuevaLista);
            return(miLista);
        }
Example #9
0
 public override Boolean esMenorOIgualQue(Objeto otraFecha)
 {
     try
     {
         return(otraFecha is Fecha?esMenorOIgualQue((Fecha)otraFecha) : this.toFechaHora().esMenorOIgualQue(otraFecha));
     }
     catch (System.InvalidCastException)
     {
         throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", typeof(Fecha).Name, otraFecha.GetType().Name));
     }
 }
Example #10
0
 public override Boolean esIgualQue(Objeto objeto)
 {
     try
     {
         if (objeto is Fecha)
         {
             Fecha fecha = (Fecha)objeto;
             return(dia_Renamed == fecha.dia_Renamed && mes_Renamed == fecha.mes_Renamed && anno_Renamed == fecha.anno_Renamed ? Boolean.True : Boolean.False);
         }
         else
         {
             FechaHora fecha = (FechaHora)objeto;
             return(this.toFechaHora().esIgualQue(fecha));
         }
     }
     catch (System.InvalidCastException)
     {
         throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", typeof(Fecha).Name, objeto.GetType().Name));
     }
 }
Example #11
0
        public override Boolean esMayorOIgualQue(Objeto objeto)
        {
            double otroValor = 0.0;

            try
            {
                otroValor = objeto is Numero ? ((Numero)objeto).valor : ((Decimal)objeto).valor;
            }
            catch (System.InvalidCastException)
            {
                throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", typeof(Decimal).Name, objeto.GetType().Name));
            }
            return(valor >= otroValor ? Boolean.True : Boolean.False);
        }
Example #12
0
        public override Objeto dividir(Objeto objeto)
        {
            Objeto resultado;

            if (objeto is Numero)
            {
                resultado = new Numero((int)valor / ((Numero)objeto).Valor);
            }
            else if (objeto is Decimal)
            {
                resultado = new Decimal(valor / ((Decimal)objeto).Valor);
            }
            else
            {
                throw new LanguageException(string.Format("No se puede dividir un {0}a un {1}.", objeto.GetType().Name, this.GetType().Name));
            }
            return(resultado);
        }
Example #13
0
        public override Boolean esIgualQue(Objeto objeto)
        {
            Tabla tabla = null;

            try
            {
                tabla = (Tabla)objeto;
            }
            catch (System.InvalidCastException)
            {
                throw new BusinessLogicalException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontró un valor de tipo [{1}]", typeof(Tabla).Name, objeto.GetType().Name));
            }
            return(this == tabla ? Boolean.True : Boolean.False);
        }
Example #14
0
        public override Objeto restar(Objeto objeto)
        {
            double resultado = 0.0;

            if (objeto is Moneda estaMoneda)
            {
                if (EstaEnLaMismaMonedaQue(estaMoneda))
                {
                    resultado = (ConvertirADouble() - estaMoneda.ConvertirADouble());
                }
                else
                {
                    throw new BusinessLogicalException(string.Format("No se puede restar un {0} y un {1}.", objeto.GetType().Name, this.GetType().Name));
                }
            }
            else
            {
                throw new LanguageException(string.Format("No se puede restar un {0} y un {1}.", objeto.GetType().Name, this.GetType().Name));
            }
            Moneda nuevoMonto = ObtenerNuevaMonedaEnLaMismaEconomia(resultado);

            return(nuevoMonto);
        }
Example #15
0
        public override Boolean esMayorOIgualQue(Objeto objeto)
        {
            Mes argumento = null;

            try
            {
                argumento = (Mes)objeto;
            }
            catch (System.InvalidCastException)
            {
                throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", typeof(Mes).Name, objeto.GetType().Name));
            }
            return(ano > argumento.ano || (ano == argumento.ano && mes.numero() >= argumento.mes.numero()) ? Boolean.True : Boolean.False);
        }
Example #16
0
        public override Boolean esIgualQue(Objeto objeto)
        {
            Boolean argumento = null;

            try
            {
                argumento = (Boolean)objeto;
            }
            catch (System.InvalidCastException)
            {
                throw new LanguageException(string.Format("En la comparación se esperaba el valor de tipo [{0}] pero se encontro un valor de tipo [{1}]", typeof(Boolean).Name, objeto.GetType().Name));
            }
            return(valor == argumento.valor ? Boolean.True : Boolean.False);
        }
Example #17
0
        public override Objeto restar(Objeto objeto)
        {
            Lista miLista = new Lista();

            miLista.guardarLista(lista);

            bool elObjetoDelParametroEsInstanciaDeLista = objeto is Lista;

            if (elObjetoDelParametroEsInstanciaDeLista)
            {
                throw new LanguageException(string.Format("No se puede restar un {0} a un {1}, ya que ambos de tipos diferentes.", miLista.demeElTipoObjetoAlQuePertenece(), objeto.GetType().Name));
            }
            Lista nuevaLista = new Lista();

            nuevaLista.guardarTodo((Lista)objeto);

            bool noEsElMismoTipoDeObjeto = !miLista.demeElTipoObjetoAlQuePertenece().esIgual(nuevaLista.demeElTipoObjetoAlQuePertenece());

            if (noEsElMismoTipoDeObjeto)
            {
                throw new LanguageException(string.Format("No se puede restar un %s a un '%2', ya que ambos de tipos diferentes.", miLista.demeElTipoObjetoAlQuePertenece(), nuevaLista.demeElTipoObjetoAlQuePertenece()));
            }

            Lista copiaDeMiLista = new Lista();

            copiaDeMiLista.guardarTodo(miLista);
            foreach (Objeto listaRestar in nuevaLista.getLista())
            {
                foreach (Objeto listaElemento in copiaDeMiLista.getLista())
                {
                    if (listaElemento.Equals(listaRestar))
                    {
                        miLista.remover(listaRestar);
                    }
                }
            }
            return(miLista);
        }