This interface extends the interface
XNameAccess supported
by service SimpleSetAccess to allow modifying the container.
If available, changes can be observed by registering a listener with interface
XContainer .
If the elements of this set are of simple type (the type returned by
XElementAccess::getElementType
is not an interface type), then values of that type can directly be passed to
XNameContainer::insertByName
and
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 XSingleServiceFactory
and, if supported, XMultiServiceFactory .
Objects to be inserted must not be contained in any set at the time of
insertion. XChild::getParent
must return NULL . If a name had been assigned to the object prior to insertion
(using 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 XNameContainer::insertByName
or XNameContainer::replaceByName .
Objects that are removed using
XNameContainer::removeByName
or replaced using
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.