Package gw.lang.parser
Interface ICoercionManager
-
- All Superinterfaces:
IPluginHost,IService
- All Known Implementing Classes:
StandardCoercionManager
public interface ICoercionManager extends IService
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleancanCoerce(IType lhsType, IType rhsType)ObjectconvertNullAsPrimitive(IType intrType, boolean isForBoxing)Converts a null value to a value compatible with the specified primitive type.ObjectconvertValue(Object value, IType intrType)ICoercerfindCoercer(IType lhsType, IType rhsType, boolean runtime)StringformatDate(Date value, String strFormat)StringformatNumber(Double value, String strFormat)StringformatTime(Date value, String strFormat)booleanisDateTime(String str)booleanisPrimitiveOrBoxed(IType type)Determine whether the specified type is either a primitive or a boxed primitive.BigDecimalmakeBigDecimalFrom(Object obj)BigIntegermakeBigIntegerFrom(Object obj)BooleanmakeBooleanFrom(Object obj)DatemakeDateFrom(Object obj)Returns a new Date instance representing the object.DoublemakeDoubleFrom(Object obj)Returns a Double for an arbitrary object.FloatmakeFloatFrom(Object obj)IntegermakeIntegerFrom(Object obj)LongmakeLongFrom(Object obj)booleanmakePrimitiveBooleanFrom(Object obj)doublemakePrimitiveDoubleFrom(Object obj)floatmakePrimitiveFloatFrom(Object obj)intmakePrimitiveIntegerFrom(Object obj)longmakePrimitiveLongFrom(Object obj)RationalmakeRationalFrom(Object obj)StringmakeStringFrom(Object obj)booleannotCoercibleOrRequiresExplicitCoercion(IType lhsType, IType rhsType)DateparseDateTime(String str)Produce a date from a string using standard DateFormat parsing.NumberparseNumber(String strValue)ICoercerresolveCoercerStatically(IType lhsType, IType rhsType)Determine and return a statically valid coercer from the rhsType to the lhsType.ITypeverifyTypesComparable(IType lhsType, IType rhsType, boolean bBiDirectional)Verifies that the right hand type can be converted or coerced to the left hand type.ITypeverifyTypesComparable(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
-
-