Package gw.lang.parser
Interface ICoercionManager
-
- All Superinterfaces:
IPluginHost
,IService
- All Known Implementing Classes:
GWCoercionManager
,StandardCoercionManager
public interface ICoercionManager extends IService
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
canCoerce(IType lhsType, IType rhsType)
Object
convertNullAsPrimitive(IType intrType, boolean isForBoxing)
Converts a null value to a value compatible with the specified primitive type.Object
convertValue(Object value, IType intrType)
ICoercer
findCoercer(IType lhsType, IType rhsType, boolean runtime)
String
formatDate(Date value, String strFormat)
String
formatNumber(Double value, String strFormat)
String
formatTime(Date value, String strFormat)
boolean
isDateTime(String str)
boolean
isPrimitiveOrBoxed(IType type)
Determine whether the specified type is either a primitive or a boxed primitive.BigDecimal
makeBigDecimalFrom(Object obj)
BigInteger
makeBigIntegerFrom(Object obj)
Boolean
makeBooleanFrom(Object obj)
Date
makeDateFrom(Object obj)
Returns a new Date instance representing the object.Double
makeDoubleFrom(Object obj)
Returns a Double for an arbitrary object.Float
makeFloatFrom(Object obj)
Integer
makeIntegerFrom(Object obj)
Long
makeLongFrom(Object obj)
boolean
makePrimitiveBooleanFrom(Object obj)
double
makePrimitiveDoubleFrom(Object obj)
float
makePrimitiveFloatFrom(Object obj)
int
makePrimitiveIntegerFrom(Object obj)
long
makePrimitiveLongFrom(Object obj)
Rational
makeRationalFrom(Object obj)
String
makeStringFrom(Object obj)
boolean
notCoercibleOrRequiresExplicitCoercion(IType lhsType, IType rhsType)
Date
parseDateTime(String str)
Produce a date from a string using standard DateFormat parsing.Number
parseNumber(String strValue)
ICoercer
resolveCoercerStatically(IType lhsType, IType rhsType)
Determine and return a statically valid coercer from the rhsType to the lhsType.IType
verifyTypesComparable(IType lhsType, IType rhsType, boolean bBiDirectional)
Verifies that the right hand type can be converted or coerced to the left hand type.IType
verifyTypesComparable(IType lhsType, IType rhsType, boolean bBiDirectional, IFullParserState parserState)
Verifies that the right hand type can be converted or coerced to the left hand type.-
Methods inherited from interface gw.plugin.IPluginHost
getInterface
-
-
-
-
Method Detail
-
canCoerce
boolean canCoerce(IType lhsType, IType rhsType)
- Parameters:
lhsType
- type to be coerced torhsType
- type to be coerced from- Returns:
- true if a coercion exists from rhsType to lhsType, false otherwise
-
convertValue
Object convertValue(Object value, IType intrType)
- Parameters:
intrType
- type to coerce tovalue
- the value to coerce (may not be null)- Returns:
- the converted value
-
notCoercibleOrRequiresExplicitCoercion
boolean notCoercibleOrRequiresExplicitCoercion(IType lhsType, IType rhsType)
-
verifyTypesComparable
IType verifyTypesComparable(IType lhsType, IType rhsType, boolean bBiDirectional) throws ParseIssue
Verifies that the right hand type can be converted or coerced to the left hand type. If bBiDirectional is true, it will verify that either converts to another- Throws:
ParseIssue
-
verifyTypesComparable
IType verifyTypesComparable(IType lhsType, IType rhsType, boolean bBiDirectional, IFullParserState parserState) throws ParseIssue
Verifies that the right hand type can be converted or coerced to the left hand type. If bBiDirectional is true, it will verify that either converts to another. The parser state will be used to report parse errors with.- Throws:
ParseIssue
-
convertNullAsPrimitive
Object convertNullAsPrimitive(IType intrType, boolean isForBoxing)
Converts a null value to a value compatible with the specified primitive type.- Parameters:
intrType
- The primitive type to convert to.- Returns:
- A wrapped primitive value corresponding to null.
-
resolveCoercerStatically
ICoercer resolveCoercerStatically(IType lhsType, IType rhsType)
Determine and return a statically valid coercer from the rhsType to the lhsType. Returns null if no coercion is necessary.- Parameters:
lhsType
- the type to coerce torhsType
- the type to coerce from
-
isPrimitiveOrBoxed
boolean isPrimitiveOrBoxed(IType type)
Determine whether the specified type is either a primitive or a boxed primitive.- Parameters:
type
- the type to examine- Returns:
- true if the specified type is a primitive or a boxed primitive
-
makePrimitiveBooleanFrom
boolean makePrimitiveBooleanFrom(Object obj)
- Returns:
- A Boolean for an arbitrary object.
-
makePrimitiveIntegerFrom
int makePrimitiveIntegerFrom(Object obj)
-
makePrimitiveLongFrom
long makePrimitiveLongFrom(Object obj)
-
makePrimitiveFloatFrom
float makePrimitiveFloatFrom(Object obj)
-
makePrimitiveDoubleFrom
double makePrimitiveDoubleFrom(Object obj)
-
makeDoubleFrom
Double makeDoubleFrom(Object obj)
Returns a Double for an arbitrary object. Uses a semi-intelligent algorithm to create an appropriate Double instance. If the Object argument is a:null value - an appropriate value respecting this parsed element's nullAsZero setting e.g., either null or an 'empty' value. Double - returns the argument as is. Number - the Number's doubleValue(). String - Double.parseDouble( String ) Boolean - a pooled instance of either Double( 0 ) or Double( 1 ) Date - A Double for Date.getTime(). default - A parsed Double for the Object argument's toString() method.
- Returns:
- A Double for an arbitrary object (may return a pooled instance).
-
makeBigDecimalFrom
BigDecimal makeBigDecimalFrom(Object obj)
-
makeBigIntegerFrom
BigInteger makeBigIntegerFrom(Object obj)
-
parseDateTime
Date parseDateTime(String str) throws ParseException
Produce a date from a string using standard DateFormat parsing.- Throws:
ParseException
-
isDateTime
boolean isDateTime(String str) throws ParseException
- Throws:
ParseException
-
-