/** Primitives compare equal with other Primitives containing an equal wrapped value. */ public boolean equals( Object obj ) { if ( !( obj instanceof Primitive ) ) if ( wrapperMap.containsKey(obj.getClass()) ) obj = new Primitive(obj); else return false; Primitive pobj = (Primitive) obj; if ( pobj.isNumber() && this.isNumber() ) { if ( this.getType() == BigDecimal.class ) return this.value.equals(castNumber(BigDecimal.class, pobj.numberValue())); if ( pobj.getType() == BigDecimal.class ) return pobj.value.equals(castNumber(BigDecimal.class, this.numberValue())); if (Types.isFloatingpoint(this.value) || Types.isFloatingpoint(pobj.value)) return this.numberValue().doubleValue() == pobj.numberValue().doubleValue(); if ( this.getType() == BigInteger.class ) return this.value.equals(castNumber(BigInteger.class, pobj.numberValue())); if ( pobj.getType() == BigInteger.class ) return pobj.value.equals(castNumber(BigInteger.class, this.numberValue())); return this.numberValue().longValue() == pobj.numberValue().longValue(); } return this.value.equals( pobj.value ); }
if ( !checkOnly && fromValue.isNumber() ) return new Primitive( castNumber(toType, fromValue.numberValue()) );
Object key = ((SimpleNode) jjtGetChild(0)).eval(callstack, interpreter); int idx = 0; if ( key instanceof Primitive && ((Primitive) key).isNumber() && length > (idx = ((Primitive) key).numberValue().intValue()) && -length < idx)
if (interpreter.getStrictJava() && value instanceof Primitive && ((Primitive) value).isNumber()) value = Primitive.castNumberStrictJava(type, ((Primitive) value).numberValue());