- Usage Restrictions
- not published
- Description
- provides a default XEnumerableMap implementation
For the keys put into the map using XMap::put or createImmutable,
the following rules apply:
- A void key is not allowed.
- If the key type is
BOOLEAN, CHAR, FLOAT, DOUBLE,
STRING, TYPE, or UNSIGNED HYPER, then only keys of exactly this
type are accepted.
- If the key type is
DOUBLE or FLOAT, then Double.NaN respectively
Float.NaN is not accepted as key.
- If the key type's class is ::com::sun::star::uno::TypeClass::ENUM, then only keys
of exactly this type are accepted.
- If the key type is any of
BYTE, SHORT, UNSIGNED SHORT,
LONG, UNSIGNED LONG, or HYPER, then all keys which can losslessly
be converted to this type (possibly using widening conversions) are accepted.
- If the key type is an interface type, then all key values denoting objects which can be queried for
the given interface are accepted.
- All other key types are rejected.
For the values put into the map using XMap::put or createImmutable,
the following rules apply:
- The void value will be accepted to be put into the map.
- If the value type's class is ::com::sun::star::uno::TypeClass::ANY, any value
will be accepted.
- If the value type is an interface type, then all values denoting objects which can be queried for
the given interface are accepted.
- If the value type's class is ::com::sun::star::uno::TypeClass::EXCEPTION
or ::com::sun::star::uno::TypeClass::STRUCT, then values whose type equals the
value type, or is a sub class of the value type, are accepted.
- For all other value types, only values whose type matches exactly are accepted.
- If the value type is
DOUBLE or FLOAT, then Double.NaN respectively
Float.NaN is not accepted.
The factory methods of the XEnumerableMap interface support both isolated
and non-isolated enumerators. The latter one will be automatically disposed when the map changes
after enumerator creation, so every attempt to use them will result in a
::com::sun::star::lang::DisposedException being thrown.
- See also
- http://udk.openoffice.org/common/man/typesystem.html
|