pt.despodata.java.ddata
Class ObjArithmetic

java.lang.Object
  extended bypt.despodata.java.ddata.ObjArithmetic

public class ObjArithmetic
extends java.lang.Object

Title: As 4 operações com Numbers - isto era escusado se houvesse operator overloading!

Description: Implementar as quatro operações básicas e os operadores lógicos para "Object's" sem perder precisão

Nota: estas operações são centenas de vezes mais lentas do que as
equivalentes com tipos nativos em vez de Object's; têm, no entanto,
a vantagem de terem precisão arbitrária
Copyright: Copyright (c) MoreData

Company: MoreData

Version:
2.0

Falta estudar os arredondamentos (TEM DE SER CONFIGURAVEL!!!)

main() tem que implementar os testes validando os resultados

Author:
ferdez@moredata.pt


Field Summary
static boolean acceptNulls
           
 
Constructor Summary
ObjArithmetic()
           
 
Method Summary
static int CompareValues(java.lang.Object oper1, java.lang.Object oper2)
          Comparação de qualquer par de objectos
Recebe dois objectos oper1 e oper2
Devolve:
- valor negativo se oper1 < oper2
- zero se oper1=oper2 (muito cuidado com as comparações de float's!!!
static java.lang.Object Divide(java.lang.Object oper1, java.lang.Object oper2)
          Divisão de qualquer par de objectos
static java.lang.Object Divide(java.lang.Object oper1, java.lang.Object oper2, int scale)
          Divisão de qualquer par de objectos
Esta versão com terceiro argumento indica quantas casas decimais se pretendem no resultado
static void main(java.lang.String[] args)
          main(): só para testes - ignorar
static java.lang.Object Multiply(java.lang.Object oper1, java.lang.Object oper2)
          Multiplicação de qualquer par de objectos
static java.lang.Object Negate(java.lang.Object oper1)
          Negação (multiplicação por -1) de qualquer objecto
static java.lang.Object Subtract(java.lang.Object oper1, java.lang.Object oper2)
          Subtracção de qualquer par de objectos
static java.lang.Object Sum(java.lang.Object[] operList)
           
static java.lang.Object Sum(java.lang.Object oper1, java.lang.Object oper2)
          Soma de qualquer par de objectos (que convém que sejam numéricos) Devia tentar ser inteligente e decidir sobre a soma inteira ou decimal
static java.lang.Object Sum(java.lang.Object oper1, java.lang.Object oper2, java.lang.Object oper3)
           
static java.lang.Object Sum(java.lang.Object oper1, java.lang.Object oper2, java.lang.Object oper3, java.lang.Object oper4)
           
static java.lang.Object Sum(java.lang.Object oper1, java.lang.Object oper2, java.lang.Object oper3, java.lang.Object oper4, java.lang.Object oper5)
           
static java.lang.Object Sum(java.util.Vector operList)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

acceptNulls

public static boolean acceptNulls
Constructor Detail

ObjArithmetic

public ObjArithmetic()
Method Detail

Sum

public static java.lang.Object Sum(java.lang.Object oper1,
                                   java.lang.Object oper2)
Soma de qualquer par de objectos (que convém que sejam numéricos) Devia tentar ser inteligente e decidir sobre a soma inteira ou decimal


Sum

public static java.lang.Object Sum(java.lang.Object oper1,
                                   java.lang.Object oper2,
                                   java.lang.Object oper3)

Sum

public static java.lang.Object Sum(java.lang.Object oper1,
                                   java.lang.Object oper2,
                                   java.lang.Object oper3,
                                   java.lang.Object oper4)

Sum

public static java.lang.Object Sum(java.lang.Object oper1,
                                   java.lang.Object oper2,
                                   java.lang.Object oper3,
                                   java.lang.Object oper4,
                                   java.lang.Object oper5)

Sum

public static java.lang.Object Sum(java.util.Vector operList)

Sum

public static java.lang.Object Sum(java.lang.Object[] operList)

Subtract

public static java.lang.Object Subtract(java.lang.Object oper1,
                                        java.lang.Object oper2)
Subtracção de qualquer par de objectos


Multiply

public static java.lang.Object Multiply(java.lang.Object oper1,
                                        java.lang.Object oper2)
Multiplicação de qualquer par de objectos


Divide

public static java.lang.Object Divide(java.lang.Object oper1,
                                      java.lang.Object oper2)
Divisão de qualquer par de objectos


Divide

public static java.lang.Object Divide(java.lang.Object oper1,
                                      java.lang.Object oper2,
                                      int scale)
Divisão de qualquer par de objectos
Esta versão com terceiro argumento indica quantas casas decimais se pretendem no resultado


CompareValues

public static int CompareValues(java.lang.Object oper1,
                                java.lang.Object oper2)
Comparação de qualquer par de objectos
Recebe dois objectos oper1 e oper2
Devolve:
- valor negativo se oper1 < oper2
- zero se oper1=oper2 (muito cuidado com as comparações de float's!!! - raramente dão igual)
- valor positivo se oper1 > oper2


Negate

public static java.lang.Object Negate(java.lang.Object oper1)
Negação (multiplicação por -1) de qualquer objecto


main

public static void main(java.lang.String[] args)
main(): só para testes - ignorar