001 package railo.runtime.interpreter.ref.literal; 002 003 import java.math.BigDecimal; 004 005 import railo.runtime.PageContext; 006 import railo.runtime.exp.PageException; 007 import railo.runtime.interpreter.ref.Ref; 008 import railo.runtime.interpreter.ref.util.RefUtil; 009 010 /** 011 * Literal Number 012 */ 013 public final class LBigDecimal implements Ref { 014 015 public static final LBigDecimal ZERO = new LBigDecimal(BigDecimal.ZERO); 016 public static final LBigDecimal ONE = new LBigDecimal(BigDecimal.ONE); 017 018 019 020 private BigDecimal literal; 021 022 /** 023 * constructor of the class 024 * @param literal 025 */ 026 public LBigDecimal(BigDecimal literal) { 027 this.literal=literal; 028 } 029 030 /** 031 * constructor of the class 032 * @param literal 033 * @throws PageException 034 */ 035 public LBigDecimal(String literal) throws PageException { 036 this.literal=new BigDecimal(literal); 037 } 038 039 public BigDecimal getBigDecimal() { 040 return literal; 041 } 042 043 @Override 044 public Object getValue(PageContext pc) { 045 return literal; 046 } 047 048 @Override 049 public Object getCollection(PageContext pc) { 050 return getValue(pc); 051 } 052 053 @Override 054 public String getTypeName() { 055 return "number"; 056 } 057 058 @Override 059 public Object touchValue(PageContext pc) { 060 return getValue(pc); 061 } 062 063 @Override 064 public String toString() { 065 return literal.toString(); 066 } 067 068 @Override 069 public boolean eeq(PageContext pc,Ref other) throws PageException { 070 return RefUtil.eeq(pc,this,other); 071 } 072 }