- 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
|