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.
creates an instance mapping from the given key type to the given value type
Parameter KeyType
denotes the type of the keys in the to-be-created map
Parameter ValueType
denotes the type of the values in the to-be-created map
Throws
::com::sun::star::beans::IllegalTypeException
if KeyType or ValueType are unsupported types.
For values, all type classes except ::com::sun::star::uno::TypeClass::VOID
and ::com::sun::star::uno::TypeClass::UNKNOWN are accepted.
For keys, scalar types, strings, com::sun::star::uno::Type itself, and interface
types are accepted.
creates an instance mapping from the given key type to the given value type
The resulting map is immutable, so later alter operations on it will fail
with a ::com::sun::star::lang::NoSupportException.
Parameter KeyType
denotes the type of the keys in the to-be-created map
Parameter ValueType
denotes the type of the values in the to-be-created map
Parameter Values
denote the values contained in the to-be-created map
Throws
::com::sun::star::beans::IllegalTypeException
if KeyType or ValueType are unsupported types.
For values, all type classes except ::com::sun::star::uno::TypeClass::VOID
are accepted.
For keys, scalar types, strings, com::sun::star::uno::Type itself, and interface
types are accepted.
Throws
::com::sun::star::lang::IllegalArgumentException
if any of the given values or keys violates the key rules or
value rules.