public final class VariantUtilities
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
protected static Variant[] |
objectsToVariants(java.lang.Object[] arrayOfObjectsToBeConverted)
converts an array of objects into an array of Variants by repeatedly
calling obj2Variant(Object)
|
protected static Variant |
objectToVariant(java.lang.Object objectToBeMadeIntoVariant)
Map arguments based on msdn documentation.
|
protected static void |
populateVariant(Variant targetVariant,
java.lang.Object pValueObject,
boolean fByRef)
Populates a variant object from a java object.
|
static java.math.BigDecimal |
roundToMSDecimal(java.math.BigDecimal sourceDecimal)
Rounds the scale and bit length so that it will pass
validateDecimalScaleBits().
|
protected static void |
validateDecimalMinMax(java.math.BigDecimal in)
Does any validation that couldn't have been fixed by rounding or scale
modification.
|
protected static void |
validateDecimalScaleAndBits(java.math.BigDecimal in)
Verifies that we have a scale 0 <= x <= 28 and now more than 96 bits of
data.
|
protected static java.lang.Object |
variantToObject(Variant sourceData)
Convert a JACOB Variant value to a Java object (type conversions).
|
protected static void populateVariant(Variant targetVariant, java.lang.Object pValueObject, boolean fByRef)
targetVariant
- pValueObject
- fByRef
- protected static Variant objectToVariant(java.lang.Object objectToBeMadeIntoVariant)
objectToBeMadeIntoVariant
- protected static Variant[] objectsToVariants(java.lang.Object[] arrayOfObjectsToBeConverted)
arrayOfObjectsToBeConverted
- protected static java.lang.Object variantToObject(Variant sourceData)
Unlike other toXXX() methods, it does not do a type conversion except for special data types (it shouldn't do any!)
Converts Variant.VariantArray types to SafeArrays
java.lang.IllegalStateException
- if no underlying windows data structureNotImplementedException
- if unsupported conversion is requestedJacobException
- if the calculated result was a JacobObject usually as a
result of errorprotected static void validateDecimalScaleAndBits(java.math.BigDecimal in)
in
- java.lang.IllegalArgumentException
- if out of boundsprotected static void validateDecimalMinMax(java.math.BigDecimal in)
in
- The BigDecimal to be validatedjava.lang.IllegalArgumentException
- if the number is too large or too small or nullpublic static java.math.BigDecimal roundToMSDecimal(java.math.BigDecimal sourceDecimal)
Changing the scale on a number that can fit in an MS Decimal can change the number's representation enough that it will round to a number too large to be represented by an MS VT_DECIMAL
sourceDecimal
- http://jacob-project.sourceforge.net