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.