freemarker.core
Class ArithmeticEngine.ConservativeEngine

java.lang.Object
  extended by freemarker.core.ArithmeticEngine
      extended by freemarker.core.ArithmeticEngine.ConservativeEngine
Enclosing class:
ArithmeticEngine

public static class ArithmeticEngine.ConservativeEngine
extends ArithmeticEngine

An arithmetic engine that conservatively widens the operation arguments to extent that they can hold the result of the operation. Widening conversions occur in following situations:


Nested Class Summary
 
Nested classes/interfaces inherited from class freemarker.core.ArithmeticEngine
ArithmeticEngine.BigDecimalEngine, ArithmeticEngine.ConservativeEngine
 
Field Summary
 
Fields inherited from class freemarker.core.ArithmeticEngine
BIGDECIMAL_ENGINE, CONSERVATIVE_ENGINE, maxScale, minScale, roundingPolicy
 
Constructor Summary
ArithmeticEngine.ConservativeEngine()
           
 
Method Summary
 java.lang.Number add(java.lang.Number first, java.lang.Number second)
           
 int compareNumbers(java.lang.Number first, java.lang.Number second)
           
 java.lang.Number divide(java.lang.Number first, java.lang.Number second)
           
 java.lang.Number modulus(java.lang.Number first, java.lang.Number second)
           
 java.lang.Number multiply(java.lang.Number first, java.lang.Number second)
           
 java.lang.Number subtract(java.lang.Number first, java.lang.Number second)
           
 java.lang.Number toNumber(java.lang.String s)
           
 
Methods inherited from class freemarker.core.ArithmeticEngine
setMaxScale, setMinScale, setRoundingPolicy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArithmeticEngine.ConservativeEngine

public ArithmeticEngine.ConservativeEngine()
Method Detail

compareNumbers

public int compareNumbers(java.lang.Number first,
                          java.lang.Number second)
                   throws TemplateException
Specified by:
compareNumbers in class ArithmeticEngine
Throws:
TemplateException

add

public java.lang.Number add(java.lang.Number first,
                            java.lang.Number second)
                     throws TemplateException
Specified by:
add in class ArithmeticEngine
Throws:
TemplateException

subtract

public java.lang.Number subtract(java.lang.Number first,
                                 java.lang.Number second)
                          throws TemplateException
Specified by:
subtract in class ArithmeticEngine
Throws:
TemplateException

multiply

public java.lang.Number multiply(java.lang.Number first,
                                 java.lang.Number second)
                          throws TemplateException
Specified by:
multiply in class ArithmeticEngine
Throws:
TemplateException

divide

public java.lang.Number divide(java.lang.Number first,
                               java.lang.Number second)
                        throws TemplateException
Specified by:
divide in class ArithmeticEngine
Throws:
TemplateException

modulus

public java.lang.Number modulus(java.lang.Number first,
                                java.lang.Number second)
                         throws TemplateException
Specified by:
modulus in class ArithmeticEngine
Throws:
TemplateException

toNumber

public java.lang.Number toNumber(java.lang.String s)
Specified by:
toNumber in class ArithmeticEngine