Пример #1
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));
     }
 }
Пример #2
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);
        }
Пример #3
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);
        }
Пример #4
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);
        }
Пример #5
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 + "'.");
                }
            }
        }
Пример #6
0
 public override Boolean noEsIgualQue(Objeto objeto)
 {
     return(!esIgualQue(objeto).valor ? Boolean.True : Boolean.False);
 }
Пример #7
0
 public virtual Boolean esMenorOIgualQue(Objeto objeto)
 {
     throw new LanguageException(string.Format("El método esMenorOIgualQue no ha sido implementado para ", this.GetType().FullName));
 }
Пример #8
0
 public virtual Boolean noEsIgualQue(Objeto objeto)
 {
     return(!this.igual(objeto).valor ? Boolean.True : Boolean.False);
 }
Пример #9
0
        /*public static bool operator == (Objeto obj1, Objeto obj2)
         * {
         *  return obj1.uuid.Equals(obj2.uuid);
         * }
         *
         * public static bool operator != (Objeto obj1, Objeto obj2)
         * {
         *  return ! obj1.uuid.Equals(obj2.uuid);
         * }*/

        public virtual Boolean esIgualQue(Objeto objeto)
        {
            return(this.igual(objeto));
        }
Пример #10
0
 protected internal virtual Boolean igual(Objeto objeto)
 {
     return(this.Equals(objeto) ? Boolean.True : Boolean.False);
 }
Пример #11
0
 public virtual Objeto dividir(Objeto objeto)
 {
     throw new LanguageException(string.Format("El método dividir no ha sido implementado para ", this.GetType().FullName));
 }
Пример #12
0
 public virtual void guardarObjeto(Objeto objeto)
 {
     lista.Add(objeto);
 }
Пример #13
0
 public virtual void remover(Objeto objeto)
 {
     lista.Remove(objeto);
 }