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)); } }
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); }
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); }
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); }
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 + "'."); } } }
public override Boolean noEsIgualQue(Objeto objeto) { return(!esIgualQue(objeto).valor ? Boolean.True : Boolean.False); }
public virtual Boolean esMenorOIgualQue(Objeto objeto) { throw new LanguageException(string.Format("El método esMenorOIgualQue no ha sido implementado para ", this.GetType().FullName)); }
public virtual Boolean noEsIgualQue(Objeto objeto) { return(!this.igual(objeto).valor ? Boolean.True : Boolean.False); }
/*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)); }
protected internal virtual Boolean igual(Objeto objeto) { return(this.Equals(objeto) ? Boolean.True : Boolean.False); }
public virtual Objeto dividir(Objeto objeto) { throw new LanguageException(string.Format("El método dividir no ha sido implementado para ", this.GetType().FullName)); }
public virtual void guardarObjeto(Objeto objeto) { lista.Add(objeto); }
public virtual void remover(Objeto objeto) { lista.Remove(objeto); }