public class VariantSupport extends Variant
Supports reading and writing of variant data.
FIXME (3): Reading and writing should be made more uniform than it is now. The following items should be resolved:
Reading requires a length parameter that is 4 byte greater than the actual data, because the variant type field is included.
Reading reads from a byte array while writing writes to an byte array output stream.
| Modifier and Type | Field and Description | 
|---|---|
protected static java.util.List | 
unsupportedMessage
Keeps a list of the variant types an "unsupported" message has already
 been issued for. 
 | 
LENGTH_0, LENGTH_2, LENGTH_4, LENGTH_8, LENGTH_UNKNOWN, LENGTH_VARIABLE, VT_ARRAY, VT_BLOB, VT_BLOB_OBJECT, VT_BOOL, VT_BSTR, VT_BYREF, VT_CARRAY, VT_CF, VT_CLSID, VT_CY, VT_DATE, VT_DECIMAL, VT_DISPATCH, VT_EMPTY, VT_ERROR, VT_FILETIME, VT_HRESULT, VT_I1, VT_I2, VT_I4, VT_I8, VT_ILLEGAL, VT_ILLEGALMASKED, VT_INT, VT_LPSTR, VT_LPWSTR, VT_NULL, VT_PTR, VT_R4, VT_R8, VT_RESERVED, VT_SAFEARRAY, VT_STORAGE, VT_STORED_OBJECT, VT_STREAM, VT_STREAMED_OBJECT, VT_TYPEMASK, VT_UI1, VT_UI2, VT_UI4, VT_UI8, VT_UINT, VT_UNKNOWN, VT_USERDEFINED, VT_VARIANT, VT_VECTOR, VT_VOID| Constructor and Description | 
|---|
VariantSupport()  | 
| Modifier and Type | Method and Description | 
|---|---|
static java.lang.String | 
codepageToEncoding(int codepage)
Turns a codepage number into the equivalent character encoding's 
 name. 
 | 
static boolean | 
isLogUnsupportedTypes()
Checks whether logging of unsupported variant types warning is turned
 on or off. 
 | 
static java.lang.Object | 
read(byte[] src,
    int offset,
    int length,
    long type,
    int codepage)
Reads a variant type from a byte array. 
 | 
static void | 
setLogUnsupportedTypes(boolean logUnsupportedTypes)
Specifies whether warnings about unsupported variant types are to be
 written to  
System.err or not. | 
static int | 
write(java.io.OutputStream out,
     long type,
     java.lang.Object value,
     int codepage)
Writes a variant value to an output stream. 
 | 
protected static void | 
writeUnsupportedTypeMessage(UnsupportedVariantTypeException ex)
Writes a warning to  
System.err that a variant type is
 unsupported by HPSF. | 
getVariantLength, getVariantNameprotected static java.util.List unsupportedMessage
Keeps a list of the variant types an "unsupported" message has already been issued for.
public static void setLogUnsupportedTypes(boolean logUnsupportedTypes)
Specifies whether warnings about unsupported variant types are to be
 written to System.err or not.
logUnsupportedTypes - If true warnings will be written,
 if false they won't.public static boolean isLogUnsupportedTypes()
Checks whether logging of unsupported variant types warning is turned on or off.
true if logging is turned on, else
 false.protected static void writeUnsupportedTypeMessage(UnsupportedVariantTypeException ex)
Writes a warning to System.err that a variant type is
 unsupported by HPSF. Such a warning is written only once for each variant
 type. Log messages can be turned on or off by 
ex - The exception to logpublic static java.lang.Object read(byte[] src,
                    int offset,
                    int length,
                    long type,
                    int codepage)
                             throws ReadingNotSupportedException,
                                    java.io.UnsupportedEncodingException
Reads a variant type from a byte array.
src - The byte arrayoffset - The offset in the byte array where the variant
 startslength - The length of the variant including the variant
 type fieldtype - The variant type to readcodepage - The codepage to use to write non-wide stringsLong, a
 VT_LPSTR as a String.ReadingNotSupportedException - if a property is to be written
 who's variant type HPSF does not yet supportjava.io.UnsupportedEncodingException - if the specified codepage is not
 supported.Variantpublic static java.lang.String codepageToEncoding(int codepage)
                                           throws java.io.UnsupportedEncodingException
Turns a codepage number into the equivalent character encoding's name.
codepage - The codepage numberjava.io.UnsupportedEncodingException - if the specified codepage is
 less than zero.public static int write(java.io.OutputStream out,
        long type,
        java.lang.Object value,
        int codepage)
                 throws java.io.IOException,
                        WritingNotSupportedException
Writes a variant value to an output stream. This method ensures that always a multiple of 4 bytes is written.
If the codepage is UTF-16, which is encouraged, strings
 must always be written as Variant.VT_LPWSTR
 strings, not as Variant.VT_LPSTR strings. This method ensure this
 by converting strings appropriately, if needed.
out - The stream to write the value to.type - The variant's type.value - The variant's value.codepage - The codepage to use to write non-wide stringsjava.io.IOException - if an I/O exceptions occursWritingNotSupportedException - if a property is to be written
 who's variant type HPSF does not yet supportCopyright © 2014 Open Microscopy Environment