public class VariantSupport extends Variant
FIXME (3): Reading and writing should be made more uniform than it is now. The following items should be resolved:
Modifier and Type | Field and Description |
---|---|
static int[] |
SUPPORTED_TYPES
HPSF is able to read these
Variant types. |
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_VERSIONED_STREAM, VT_VOID
Constructor and Description |
---|
VariantSupport() |
Modifier and Type | Method and Description |
---|---|
static boolean |
isLogUnsupportedTypes()
Checks whether logging of unsupported variant types warning is turned
on or off.
|
boolean |
isSupportedType(int variantType)
Checks whether HPSF supports the specified variant type.
|
static java.lang.Object |
read(byte[] src,
int offset,
int length,
long type,
int codepage)
Reads a variant type from a byte array.
|
static java.lang.Object |
read(LittleEndianByteArrayInputStream lei,
int length,
long type,
int codepage) |
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, getVariantName
public static final int[] SUPPORTED_TYPES
Variant
types.public static void setLogUnsupportedTypes(boolean logUnsupportedTypes)
System.err
or not.logUnsupportedTypes
- If true
warnings will be written,
if false
they won't.public static boolean isLogUnsupportedTypes()
true
if logging is turned on, else
false
.protected static void writeUnsupportedTypeMessage(UnsupportedVariantTypeException ex)
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 byex
- The exception to logpublic boolean isSupportedType(int variantType)
SUPPORTED_TYPES
array.variantType
- the variant type to checktrue
if HPFS supports this type, else
false
Variant
public static java.lang.Object read(byte[] src, int offset, int length, long type, int codepage) throws ReadingNotSupportedException, java.io.UnsupportedEncodingException
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 for 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.Variant
public static java.lang.Object read(LittleEndianByteArrayInputStream lei, int length, long type, int codepage) throws ReadingNotSupportedException, java.io.UnsupportedEncodingException
ReadingNotSupportedException
java.io.UnsupportedEncodingException
public static int write(java.io.OutputStream out, long type, java.lang.Object value, int codepage) throws java.io.IOException, WritingNotSupportedException
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 2021 The Apache Software Foundation or its licensors, as applicable.