Class Amount

java.lang.Object
java.lang.Number
br.com.intersys.systextil.connection.Amount
All Implemented Interfaces:
Serializable, Comparable<Amount>

public class Amount extends Number implements Serializable, Comparable<Amount>
Tipo de dados que efetua arredondamentos de variáveis tipo amount da mesma maneira que o Vision.

Em linhas gerais, todas as variáveis Amount são arredondadas na segunda casa decimal usando o modo HALF_UP, e todas as operações aritméticas que envolvem Amount resultam em Amount.

Nas operações aritméticas que envolvem variáveis Amount, é preciso converter todas essas variáveis para double com o método val(). O resultado calculado deve necessariamente ser convertido para Amount com Amount.toAmount. Este resultado pode ser atribuído à variável do resultado se ela for Amount, ou então convertido para o tipo da variável usando val() (se for double) ou intValue() (se for int).

Cada objeto Amount armazena internamente um BigDecimal com essas características. Da mesma forma como um objeto BigDecimal é imutável, um Amount é imutável.

Propositalmente, não há operações matemáticas públicas que envolvam objetos BigDecimal. Isto obriga ao uso de Amount.

A classe também fornece métodos estáticos para a conversão de tipos de dados, facilitando a migração automática do código Vision para o código Java.

Cabe lembrar que as operações aritméticas que não envolvem variáveis tipo amount funcionam no Java da mesma maneira que no Vision.

O uso de argumentos nulos não é previsto, e deve gerar NullPointerException.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Amount
     
    static final Amount
     
    static final Amount
     
    static final Amount
     
    static final Amount
     
    static final Amount
     
  • Method Summary

    Modifier and Type
    Method
    Description
    add(int integer)
     
    add(Amount augend)
     
    int
    compareTo(int integer)
     
    int
    compareTo(Amount amount)
     
    int
    compareTo(BigDecimal bigDecimal)
     
    static Amount
    desc(double total, double porcentagem)
    Calcula o valor resultante do desconto de um total a partir da porcentagem informada.
    static Amount
    desc(double total, Amount porcentagem)
    Calcula o valor resultante do desconto de um total a partir da porcentagem informada.
    static Amount
    desc(Amount total, double porcentagem)
    Calcula o valor resultante do desconto de um total a partir da porcentagem informada.
    static Amount
    desc(Amount total, Amount porcentagem)
    Calcula o valor resultante do desconto de um total a partir da porcentagem informada.
    static double
    descDouble(double total, double porcentagem)
    Calcula o desconto sem arredondar, e retorna o valor double resultante.
    static double
    descDouble(double total, Amount porcentagem)
    Calcula o desconto sem arredondar, e retorna o valor double resultante.
    static double
    descDouble(Amount total, double porcentagem)
    Calcula o desconto sem arredondar, e retorna o valor double resultante.
    static double
    descDouble(Amount total, Amount porcentagem)
    Calcula o desconto sem arredondar, e retorna o valor double resultante.
    double
    Retorna o valor double deste Amount.
    boolean
    Verifica se os BigDecimais internos são iguais.
    float
     
    int
    Retorna o hash code do BigDecimal interno.
    int
    Retorna o valor int deste Amount.
    long
     
    static Amount
    multiply(double val1, double val2)
    Calcula a multiplição de dois números e retorna o valor arredondado para Amount.
    static Amount
    multiply(double val1, Amount val2)
    Calcula a multiplição de dois números e retorna o valor arredondado para Amount.
    static Amount
    multiply(Amount val1, double val2)
    Calcula a multiplição de dois números e retorna o valor arredondado para Amount.
    static Amount
    multiply(Amount val1, Amount val2)
    Calcula a multiplição de dois números e retorna o valor arredondado para Amount.
    static Amount
    Calcula a multiplição de dois números e retorna o valor arredondado para Amount.
    Conveniência para inverter um amount (multiplicar por -1).
    static Amount
    perc(double total, double porcentagem)
    Calcula o valor percentual de um total a partir da porcentagem informada.
    static Amount
    perc(double total, Amount porcentagem)
    Calcula o valor percentual de um total a partir da porcentagem informada.
    static Amount
    perc(Amount total, double porcentagem)
    Calcula o valor percentual de um total a partir da porcentagem informada.
    static Amount
    perc(Amount total, Amount porcentagem)
    Calcula o valor percentual de um total a partir da porcentagem informada.
    int
    Facilita as comparações com zero.
    sub(int integer)
     
    sub(Amount subtrahend)
     
    static Amount
    toAmount(double dbl)
    Substitui to_amount$ do Vision.
    static Amount
    toAmount(int integer)
    Substitui to_amount$ do Vision.
    static Amount
    toAmount(Amount amount)
    Substitui to_amount$ do Vision.
    static Amount
    toAmount(BigDecimal bigDecimal)
    Substitui to_amount$ do Vision.
    Retorna o valor BigDecimal deste Amount.
    static double
    toDouble(double dbl)
    Substitui to_float$ do Vision.
    static double
    toDouble(int integer)
    Substitui to_float$ do Vision.
    static double
    toDouble(Amount amount)
    Substitui to_float$ do Vision.
    static double
    toDouble(BigDecimal bigDecimal)
    Substitui to_float$ do Vision.
    static int
    toInt(double dbl)
    Substitui to_numeric$ do Vision.
    static int
    toInt(int integer)
    Substitui to_numeric$ do Vision.
    static int
    toInt(Amount amount)
    Substitui to_numeric$ do Vision.
    static int
    toInt(BigDecimal bigDecimal)
    Substitui to_numeric$ do Vision.
    static int
    toInt(Time time)
    Transforma Time para minutos.
    Formata para impressão em relatórios.
    double
    val()
    Atalho para doubleValue().

    Methods inherited from class java.lang.Number

    byteValue, shortValue

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • ZERO

      public static final Amount ZERO
    • ONE

      public static final Amount ONE
    • TWO

      public static final Amount TWO
    • TEN

      public static final Amount TEN
    • HUNDRED

      public static final Amount HUNDRED
    • THOUSAND

      public static final Amount THOUSAND
  • Method Details

    • add

      public Amount add(Amount augend)
    • add

      public Amount add(int integer)
    • sub

      public Amount sub(Amount subtrahend)
    • sub

      public Amount sub(int integer)
    • toBigDecimal

      public BigDecimal toBigDecimal()
      Retorna o valor BigDecimal deste Amount.

      Não deve ser usado em meio a cálculos no NXJ. Deve ser usado em outras operações quando o que importa é aplicar o resultado obtido, como no retorno de funções ou ao passar um parâmetro para comandos SQL (setBigDecimal).

      Returns:
      o valor BigDecimal
    • intValue

      public int intValue()
      Retorna o valor int deste Amount.

      Deve ser usado quando o resultado é atribuído a uma variável int ou quando um Amount é convertido para int em meio a um cálculo.

      Specified by:
      intValue in class Number
    • doubleValue

      public double doubleValue()
      Retorna o valor double deste Amount.

      Deve ser usado quando o resultado é atribuído a uma variável double ou quando um Amount é convertido para double em meio a um cálculo.

      Specified by:
      doubleValue in class Number
    • longValue

      public long longValue()
      Specified by:
      longValue in class Number
    • floatValue

      public float floatValue()
      Specified by:
      floatValue in class Number
    • val

      public double val()
      Atalho para doubleValue().
      Returns:
      o valor double
    • toDouble

      public static double toDouble(BigDecimal bigDecimal)
      Substitui to_float$ do Vision.
      Parameters:
      bigDecimal - o valor a ler
      Returns:
      o valor double
    • toDouble

      public static double toDouble(Amount amount)
      Substitui to_float$ do Vision.
      Parameters:
      amount - o valor a ler
      Returns:
      o valor double
    • toDouble

      public static double toDouble(int integer)
      Substitui to_float$ do Vision.
      Parameters:
      integer - o valor a ler
      Returns:
      o valor double
    • toDouble

      public static double toDouble(double dbl)
      Substitui to_float$ do Vision.
      Parameters:
      dbl - o valor a ler
      Returns:
      o valor double
    • toInt

      public static int toInt(BigDecimal bigDecimal)
      Substitui to_numeric$ do Vision.
      Parameters:
      bigDecimal - o valor a ler
      Returns:
      o valor int
    • toInt

      public static int toInt(Amount amount)
      Substitui to_numeric$ do Vision.
      Parameters:
      amount - o valor a ler
      Returns:
      o valor int
    • toInt

      public static int toInt(int integer)
      Substitui to_numeric$ do Vision.
      Parameters:
      integer - o valor a ler
      Returns:
      o valor int
    • toInt

      public static int toInt(double dbl)
      Substitui to_numeric$ do Vision.
      Parameters:
      dbl - o valor a ler
      Returns:
      o valor int
    • toInt

      public static int toInt(Time time)
      Transforma Time para minutos.
      Parameters:
      time - um horário do dia
      Returns:
      os minutos do dia contidos nesse horário
    • toAmount

      public static Amount toAmount(BigDecimal bigDecimal)
      Substitui to_amount$ do Vision. Força o uso de duas casas decimais.
      Parameters:
      bigDecimal - o valor a ler
      Returns:
      o valor Amount
    • toAmount

      public static Amount toAmount(Amount amount)
      Substitui to_amount$ do Vision. Força o uso de duas casas decimais.
      Parameters:
      amount - o valor a ler
      Returns:
      o valor Amount
    • toAmount

      public static Amount toAmount(int integer)
      Substitui to_amount$ do Vision. Força o uso de duas casas decimais.
      Parameters:
      integer - o valor a ler
      Returns:
      o valor Amount
    • toAmount

      public static Amount toAmount(double dbl)
      Substitui to_amount$ do Vision. Força o uso de duas casas decimais.
      Parameters:
      dbl - o valor a ler
      Returns:
      o valor Amount
    • compareTo

      public int compareTo(BigDecimal bigDecimal)
    • compareTo

      public int compareTo(Amount amount)
      Specified by:
      compareTo in interface Comparable<Amount>
    • compareTo

      public int compareTo(int integer)
    • signum

      public int signum()
      Facilita as comparações com zero.
      Returns:
      -1, 0 ou 1 se for menor, igual ou maior que zero
    • negate

      public Amount negate()
      Conveniência para inverter um amount (multiplicar por -1).
      Returns:
      o inverso deste amount, da mesma maneira que BigDecimal.negate().
    • perc

      public static Amount perc(double total, double porcentagem)
      Calcula o valor percentual de um total a partir da porcentagem informada.
      Parameters:
      total - o total
      porcentagem - a porcentagem
      Returns:
      o valor percentual
    • desc

      public static Amount desc(double total, double porcentagem)
      Calcula o valor resultante do desconto de um total a partir da porcentagem informada. Para isso, calcula primeiro o desconto com essa porcentagem, arredonda-o convenientemente, e então subtrai-o do total.
      Parameters:
      total - o total
      porcentagem - a porcentagem
      Returns:
      o valor total menos o desconto
    • descDouble

      public static double descDouble(double total, double porcentagem)
      Calcula o desconto sem arredondar, e retorna o valor double resultante. Usa internamente BigDecimal para contornar eventuais problemas de arredondamento que ocorrem no uso exclusivo de double.
      Parameters:
      total - o valor total
      porcentagem - a porcentagem a descontar
      Returns:
      o valor resultante após o desconto, sem arredondar, em double
    • perc

      public static Amount perc(double total, Amount porcentagem)
      Calcula o valor percentual de um total a partir da porcentagem informada.
      Parameters:
      total - o total
      porcentagem - a porcentagem
      Returns:
      o valor percentual
    • perc

      public static Amount perc(Amount total, double porcentagem)
      Calcula o valor percentual de um total a partir da porcentagem informada.
      Parameters:
      total - o total
      porcentagem - a porcentagem
      Returns:
      o valor percentual
    • perc

      public static Amount perc(Amount total, Amount porcentagem)
      Calcula o valor percentual de um total a partir da porcentagem informada.
      Parameters:
      total - o total
      porcentagem - a porcentagem
      Returns:
      o valor percentual
    • desc

      public static Amount desc(double total, Amount porcentagem)
      Calcula o valor resultante do desconto de um total a partir da porcentagem informada. Para isso, calcula primeiro o desconto com essa porcentagem, arredonda-o convenientemente, e então subtrai-o do total.
      Parameters:
      total - o total
      porcentagem - a porcentagem
      Returns:
      o valor total menos o desconto
    • desc

      public static Amount desc(Amount total, double porcentagem)
      Calcula o valor resultante do desconto de um total a partir da porcentagem informada. Para isso, calcula primeiro o desconto com essa porcentagem, arredonda-o convenientemente, e então subtrai-o do total.
      Parameters:
      total - o total
      porcentagem - a porcentagem
      Returns:
      o valor total menos o desconto
    • desc

      public static Amount desc(Amount total, Amount porcentagem)
      Calcula o valor resultante do desconto de um total a partir da porcentagem informada. Para isso, calcula primeiro o desconto com essa porcentagem, arredonda-o convenientemente, e então subtrai-o do total.
      Parameters:
      total - o total
      porcentagem - a porcentagem
      Returns:
      o valor total menos o desconto
    • descDouble

      public static double descDouble(double total, Amount porcentagem)
      Calcula o desconto sem arredondar, e retorna o valor double resultante. Usa internamente BigDecimal para contornar eventuais problemas de arredondamento que ocorrem no uso exclusivo de double.
      Parameters:
      total - o valor total
      porcentagem - a porcentagem a descontar
      Returns:
      o valor resultante após o desconto, sem arredondar, em double
    • descDouble

      public static double descDouble(Amount total, double porcentagem)
      Calcula o desconto sem arredondar, e retorna o valor double resultante. Usa internamente BigDecimal para contornar eventuais problemas de arredondamento que ocorrem no uso exclusivo de double.
      Parameters:
      total - o valor total
      porcentagem - a porcentagem a descontar
      Returns:
      o valor resultante após o desconto, sem arredondar, em double
    • descDouble

      public static double descDouble(Amount total, Amount porcentagem)
      Calcula o desconto sem arredondar, e retorna o valor double resultante. Usa internamente BigDecimal para contornar eventuais problemas de arredondamento que ocorrem no uso exclusivo de double.
      Parameters:
      total - o valor total
      porcentagem - a porcentagem a descontar
      Returns:
      o valor resultante após o desconto, sem arredondar, em double
    • multiply

      public static Amount multiply(BigDecimal val1, BigDecimal val2)
      Calcula a multiplição de dois números e retorna o valor arredondado para Amount. Usa internamente BigDecimal para contornar eventuais problemas de arredondamento que ocorrem no uso exclusivo de double.
      Parameters:
      val1 -
      val2 -
      Returns:
      o produto arredondado como Amount
    • multiply

      public static Amount multiply(double val1, double val2)
      Calcula a multiplição de dois números e retorna o valor arredondado para Amount. Usa internamente BigDecimal para contornar eventuais problemas de arredondamento que ocorrem no uso exclusivo de double.
      Parameters:
      val1 -
      val2 -
      Returns:
      o produto arredondado como Amount
    • multiply

      public static Amount multiply(Amount val1, Amount val2)
      Calcula a multiplição de dois números e retorna o valor arredondado para Amount. Usa internamente BigDecimal para contornar eventuais problemas de arredondamento que ocorrem no uso exclusivo de double.
      Parameters:
      val1 -
      val2 -
      Returns:
      o produto arredondado como Amount
    • multiply

      public static Amount multiply(double val1, Amount val2)
      Calcula a multiplição de dois números e retorna o valor arredondado para Amount. Usa internamente BigDecimal para contornar eventuais problemas de arredondamento que ocorrem no uso exclusivo de double.
      Parameters:
      val1 -
      val2 -
      Returns:
      o produto arredondado como Amount
    • multiply

      public static Amount multiply(Amount val1, double val2)
      Calcula a multiplição de dois números e retorna o valor arredondado para Amount. Usa internamente BigDecimal para contornar eventuais problemas de arredondamento que ocorrem no uso exclusivo de double.
      Parameters:
      val1 -
      val2 -
      Returns:
      o produto arredondado como Amount
    • hashCode

      public int hashCode()
      Retorna o hash code do BigDecimal interno.
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Verifica se os BigDecimais internos são iguais.
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Formata para impressão em relatórios.
      Overrides:
      toString in class Object