public class NumberCompare extends ProcedureN
<
, <=
, etc.Modifier and Type | Field and Description |
---|---|
static int |
TRUE_IF_EQU |
static int |
TRUE_IF_GRT |
static int |
TRUE_IF_LSS |
static int |
TRUE_IF_NAN |
static int |
TRUE_IF_NEQ |
applyToObject, noArgs
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKey
nameKey
Constructor and Description |
---|
NumberCompare() |
Modifier and Type | Method and Description |
---|---|
static boolean |
$Eq(java.lang.Object arg1,
java.lang.Object arg2) |
static boolean |
$Eq$V(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object[] rest) |
static boolean |
$Gr(java.lang.Object arg1,
java.lang.Object arg2) |
static boolean |
$Gr$Eq(java.lang.Object arg1,
java.lang.Object arg2) |
static boolean |
$Gr$Eq$V(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object[] rest) |
static boolean |
$Gr$V(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object[] rest) |
static boolean |
$Ls(java.lang.Object arg1,
java.lang.Object arg2) |
static boolean |
$Ls$Eq(java.lang.Object arg1,
java.lang.Object arg2) |
static boolean |
$Ls$Eq$V(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object[] rest) |
static boolean |
$Ls$V(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object[] rest) |
static boolean |
apply2(int flags,
java.lang.Object arg1,
java.lang.Object arg2) |
java.lang.Object |
apply2(java.lang.Object arg1,
java.lang.Object arg2) |
java.lang.Object |
applyN(java.lang.Object[] args) |
static boolean |
applyWithPromotion(int flags,
java.lang.Object arg1,
java.lang.Object arg2) |
static boolean |
checkCompareCode(int code,
int flags) |
static int |
compare(java.lang.Object arg1,
int code1,
java.lang.Object arg2,
int code2,
boolean exact) |
static int |
compare(java.lang.Object arg1,
java.lang.Object arg2,
boolean exact)
Compare two numbers.
|
static int |
compareStrict(java.lang.Object arg1,
java.lang.Object arg2,
boolean exact) |
protected Language |
getLanguage() |
static NumberCompare |
make(Language language,
java.lang.String name,
int flags) |
int |
numArgs()
Return
minArgs()|(maxArgs<<12) . |
applyToObject
apply0, apply1, apply3, apply4, applyL, applyToConsumerDefault, applyToObjectDefault, checkArgCount, checkBadCode, getApplyMethod, getApplyToConsumerMethod, getApplyToObjectMethod, getReturnType, getSetter, getSourceLocation, isSideEffectFree, lookupApplyHandle, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toString
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
public static final int TRUE_IF_GRT
public static final int TRUE_IF_EQU
public static final int TRUE_IF_LSS
public static final int TRUE_IF_NAN
public static final int TRUE_IF_NEQ
public int numArgs()
Procedure
minArgs()|(maxArgs<<12)
.
We use a single virtual function to reduce the number of methods
in the system, as well as the number of virtual method table entries.
We shift by 12 so the number can normally be represented using a
sipush instruction, without requiring a constant pool entry.public static boolean $Eq(java.lang.Object arg1, java.lang.Object arg2)
public static boolean $Gr(java.lang.Object arg1, java.lang.Object arg2)
public static boolean $Gr$Eq(java.lang.Object arg1, java.lang.Object arg2)
public static boolean $Ls(java.lang.Object arg1, java.lang.Object arg2)
public static boolean $Ls$Eq(java.lang.Object arg1, java.lang.Object arg2)
public static boolean $Eq$V(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object[] rest)
public static boolean $Gr$V(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object[] rest)
public static boolean $Gr$Eq$V(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object[] rest)
public static boolean $Ls$V(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object[] rest)
public static boolean $Ls$Eq$V(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object[] rest)
public static NumberCompare make(Language language, java.lang.String name, int flags)
protected final Language getLanguage()
public java.lang.Object apply2(java.lang.Object arg1, java.lang.Object arg2)
public static boolean apply2(int flags, java.lang.Object arg1, java.lang.Object arg2)
public static boolean checkCompareCode(int code, int flags)
public static boolean applyWithPromotion(int flags, java.lang.Object arg1, java.lang.Object arg2)
public static int compare(java.lang.Object arg1, java.lang.Object arg2, boolean exact)
exact
- true if we should compare exact/inexact numbers exactly
(by converting the inexact number to exact), or inexactly (by
"promoting" the exact to inexact) (as required for XQuery).arg1>arg2
; 0 if arg1==arg2
;
-1 if arg1<arg2
; -2 if either is NaN
;
-3 if not comparable (either is not a number).public static int compareStrict(java.lang.Object arg1, java.lang.Object arg2, boolean exact)
public static int compare(java.lang.Object arg1, int code1, java.lang.Object arg2, int code2, boolean exact)