Interface ICoercionManager

    • Method Detail

      • canCoerce

        boolean canCoerce​(IType lhsType,
                          IType rhsType)
        Parameters:
        lhsType - type to be coerced to
        rhsType - 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 to
        value - 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 to
        rhsType - 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).
      • makeDateFrom

        Date makeDateFrom​(Object obj)
        Returns a new Date instance representing the object.