This interface extends the interface
::com::sun::star::container::XNameAccess supported
by service SimpleSetAccess to allow modifying the container.
If available, changes can be observed by registering a listener with interface
::com::sun::star::container::XContainer.
If the elements of this set are of simple type (the type returned by
::com::sun::star::container::XElementAccess::getElementType()
is not an interface type), then values of that type can directly be passed to
::com::sun::star::container::XNameContainer::insertByName()
and
::com::sun::star::container::XNameContainer::replaceByName().
Otherwise new elements have to be constructed to match the type
prescribed by the element template of this set. Such elements can be created
using interfaces ::com::sun::star::lang::XSingleServiceFactory
and, if supported, ::com::sun::star::lang::XMultiServiceFactory.
Objects to be inserted must not be contained in any set at the time of
insertion. ::com::sun::star::container::XChild::getParent()
must return NULL. If a name had been assigned to the object prior to insertion
(using ::com::sun::star::container::XNamed::setName()
or by other means), this name is ignored and will be lost.
After insertion the name of the object is the name that was used as argument
to ::com::sun::star::container::XNameContainer::insertByName()
or ::com::sun::star::container::XNameContainer::replaceByName().
Objects that are removed using
::com::sun::star::container::XNameContainer::removeByName()
or replaced using
::com::sun::star::container::XNameContainer::replaceByName()
remain valid and can be reinserted into a set supporting the same template and
even under a different name.
An implementation need not support insertion of objects that were not
obtained in one of the ways described above. If it does, the implementation
must reject elements that do not have the correct structure as described
by the template.