in netflix-sel/src/main/java/com/netflix/sel/type/SelDouble.java [140:165]
public SelType call(String methodName, SelType[] args) {
if (args.length == 0 && "toString".equals(methodName)) {
return SelString.of(Double.toString(val));
} else if (args.length == 1 && "toString".equals(methodName)) {
return SelString.of(((SelDouble) args[0]).toString());
} else if (args.length == 1 && "valueOf".equals(methodName)) {
switch (args[0].type()) {
case STRING:
return SelDouble.of(((SelString) args[0]).getInternalVal());
case DOUBLE:
return SelDouble.of(((SelDouble) args[0]).doubleVal());
}
} else if (args.length == 1 && "parseDouble".equals(methodName)) {
return SelDouble.of(Double.parseDouble(((SelString) args[0]).getInternalVal()));
} else if (args.length == 0 && "intValue".equals(methodName)) {
return SelLong.of((long) this.val);
} else if (args.length == 0 && "longValue".equals(methodName)) {
return SelLong.of((long) this.val);
}
throw new UnsupportedOperationException(
type()
+ " DO NOT support calling method: "
+ methodName
+ " with args: "
+ Arrays.toString(args));
}