|
Groovy 1.8.3 | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.groovy.ast.tools.WideningCategories
public class WideningCategories extends Object
This class provides helper methods to determine the type from a widening
operation for example for a plus operation.
To determine the resulting type of for example a=exp1+exp2 we look at the
conditions isIntCategory(ClassNode), isLongCategory(ClassNode),
isBigIntCategory(ClassNode), isDoubleCategory(ClassNode) and
isBigDecCategory(ClassNode) in that order. The first case applying to
exp1 and exp2 is defining the result type of the expression.
If for example you look at x = 1 + 2l we have the first category applying to
the number 1 being int, since the 1 is an int. The 2l is a long, therefore the
int category will not apply and the result type can't be int. The next category
in the list is long, and since both apply to long, the result type is a long.
Method Summary | |
---|---|
static boolean
|
isBigDecCategory(ClassNode type)
It is of a BigDecimal category, if the provided type is a BigInteger category or a BigDecimal. |
static boolean
|
isBigIntCategory(ClassNode type)
It is of a BigInteger category, if the provided type is a long category or a BigInteger. |
static boolean
|
isDoubleCategory(ClassNode type)
It is of a double category, if the provided type is a BigDecimal, a float, double or a wrapper of those. |
static boolean
|
isIntCategory(ClassNode type)
It is of an int category, if the provided type is a byte, char, short, int or any of the wrapper. |
static boolean
|
isLongCategory(ClassNode type)
It is of a long category, if the provided type is a long, its wrapper or if it is a long category. |
static boolean
|
isNumberCategory(ClassNode type)
|
Methods inherited from class Object | |
---|---|
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Method Detail |
---|
public static boolean isBigDecCategory(ClassNode type)
public static boolean isBigIntCategory(ClassNode type)
public static boolean isDoubleCategory(ClassNode type)
public static boolean isIntCategory(ClassNode type)
public static boolean isLongCategory(ClassNode type)
public static boolean isNumberCategory(ClassNode type)
Copyright © 2003-2011 The Codehaus. All rights reserved.