com.sun.star.uno
public class Type extends Object
TYPE
.
The UNO type is not directly mapped to java.lang.Class
for at
least two reasons. For one, some UNO types (like UNSIGNED
SHORT
) do not have a matching Java class. For another, it can be
necessary to describe a type which is unknown to the Java runtime system
(for example, for delaying the need of a class, so that it is possible to
generate it on the fly.)
A Type
is uniquely determined by its type class (a
TypeClass
) and its type name (a String
); these two
will never be null
. A Type
may have an additional
"z class" (a java.lang.Class
), giving a Java class type that
corresponds to the UNO type. Also, a Type
can cache a type
description (a com.sun.star.uno.ITypeDescription
), which can be
computed and set by TypeDescription.getTypeDescription
.
Field Summary | |
---|---|
static Type | ANY |
static Type | BOOLEAN |
static Type | BYTE |
static Type | CHAR |
static Type | DOUBLE |
static Type | FLOAT |
static Type | HYPER |
static Type | LONG |
static Type | SHORT |
static Type | STRING |
static Type | TYPE |
static Type | UNSIGNED_HYPER |
static Type | UNSIGNED_LONG |
static Type | UNSIGNED_SHORT |
static Type | VOID |
protected Class | _class |
protected ITypeDescription | _iTypeDescription |
protected TypeClass | _typeClass |
protected String | _typeName |
Constructor Summary | |
---|---|
Type()
Constructs a new Type which defaults to VOID . | |
Type(String typeName, TypeClass typeClass)
Constructs a new Type with the given type class and type
name.
| |
Type(Class zClass)
Constructs a new Type from the given
java.lang.Class .
| |
Type(Class zClass, boolean alternative)
Constructs a new Type from the given
java.lang.Class , handling ambiguous cases.
| |
Type(ITypeDescription typeDescription)
Constructs a new Type from the given type description.
| |
Type(String typeName)
Constructs a new Type with the given type name.
| |
Type(TypeClass typeClass)
Constructs a new Type with the given type class.
|
Method Summary | |
---|---|
boolean | equals(Object obj) |
TypeClass | getTypeClass()
Gets the type class.
|
ITypeDescription | getTypeDescription()
Gives the type description of this type.
|
String | getTypeName()
Gets the type name.
|
Class | getZClass()
Gets the Java class.
|
int | hashCode() |
boolean | isSupertypeOf(Type type)
Determines whether this UNO type is a supertype of another UNO type.
|
void | setTypeDescription(ITypeDescription typeDescription)
Sets the type description for this type.
|
String | toString() |
Type
which defaults to VOID
.Type
with the given type class and type
name.
Parameters: typeName the type name. Must not be null
. typeClass the type class. Must not be null
, and must
match the typeName
(for example, it is illegal to
combine a typeName
of "void"
with a
typeClass
of BOOLEAN
).
Type
from the given
java.lang.Class
.
This is equivalent to Type(zClass, false)
.
Parameters: zClass the Java class of this type. Must not be
null
.
Type
from the given
java.lang.Class
, handling ambiguous cases.
In certain cases, one Java class corresponds to two UNO types (e.g.,
the Java class short[].class
corresponds to both a sequence
of UNSIGNED SHORT
in
UNO). In such ambiguous cases, the parameter alternative
controls which UNO type is chosen:
short
or java.lang.Short
: If
alternative
is false
, the chosen UNO type is
(a sequence type with element type) SHORT
. If
alternative
is true
, the chosen UNO type is
(a sequence type with element type) UNSIGNED SHORT
.int
or java.lang.Integer
: If
alternative
is false
, the chosen UNO type is
(a sequence type with element type) LONG
. If
alternative
is true
, the chosen UNO type is
(a sequence type with element type) UNSIGNED LONG
.long
or java.lang.Long
: If
alternative
is false
, the chosen UNO type is
(a sequence type with element type) HYPER
. If
alternative
is true
, the chosen UNO type is
(a sequence type with element type) UNSIGNED HYPER
.java.lang.Object
: If alternative
is
false
, the chosen UNO type is (a sequence type with
element type) ANY
. If alternative
is
true
, the chosen UNO type is (a sequence type with element
type) com.sun.star.uno.XInterface
.In all other cases, the value of alternative
is
ignored.
This constructor cannot be used to create Type
instances
that represent (sequences of) instantiated polymorphic struct types.
Parameters: zClass the Java class of this type; must not be null
alternative controls which UNO type to choose in case of
ambiguities
Since: UDK 3.2.0
Type
from the given type description.
Parameters: typeDescription a type description. Must not be
null
.
Type
with the given type name.
Parameters: typeName the name of this type; must not be null
.
Type
with the given type class.
Parameters: typeClass the type class of this type; must not be
null
. Only type classes for simple types are allowed
here.
Throws: IllegalArgumentException if the given typeClass
is
not simple (for example, a struct or an interface type). This
constructor could not find out the type name in such a case.
Returns: the type class. Will never be null
, but might be
UNKNOWN
.
Returns: the type description; may be null
Returns: the type name; will never be null
Returns: the type name; may be null
in extreme situations
(inconsistent TypeClass
, error loading a class)
Parameters: type some Type
Returns: true if this type is a supertype of the given type
Since: UDK 3.2.0
Parameters: typeDescription the type description