/*
* Copyright (c) 2001 World Wide Web Consortium,
* (Massachusetts Institute of Technology, Institut National de
* Recherche en Informatique et en Automatique, Keio University). All
* Rights Reserved. This program is distributed under the W3C's Software
* Intellectual Property License. This program is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE.
* See W3C License http://www.w3.org/Consortium/Legal/ for more details.
*/
package com.sun.org.apache.xerces.internal.dom3.as;
import org.w3c.dom.DOMException;
/**
* @deprecated
* Objects implementing the ASNamedObjectMap
interface are used
* to represent collections of abstract schema nodes that can be accessed by
* name. Note that ASNamedObjectMap
does not inherit from
* ASObjectList
; ASNamedObjectMaps
are not
* maintained in any particular order. Objects contained in an object
* implementing ASNamedObjectMap
may also be accessed by an
* ordinal index, but this is simply to allow convenient enumeration of the
* contents of a ASNamedObjectMap
, and does not imply that the
* DOM specifies an order to these ASObjects
.
*
ASNamedObjectMap
object in the DOM are live.
*
See also the Document Object Model (DOM) Level 3 Abstract Schemas and Load
and Save Specification.
*/
public interface ASNamedObjectMap {
/**
* The number of ASObjects
in the ASObjectList
.
* The range of valid child node indices is 0 to length-1
* inclusive.
*/
public int getLength();
/**
* Retrieves an ASObject
specified by name.
* @param name The nodeName
of an ASObject
to
* retrieve.
* @return An ASObject
with specified node name and
* null
if the map does not contain an element with the
* given name.
*/
public ASObject getNamedItem(String name);
/**
* Retrieves an ASObject
specified by local name and
* namespace URI.
* @param namespaceURI The namespace URI of the ASObject
to
* retrieve.
* @param localName The local name of the ASObject
to
* retrieve.
* @return A ASObject
(of any type) with the specified local
* name and namespace URI, or null
if they do not
* identify any ASObject
in this map.
*/
public ASObject getNamedItemNS(String namespaceURI,
String localName);
/**
* Returns the index
th item in the map. The index starts at
* 0
. If index
is greater than or equal to the
* number of nodes in the list, this returns null
.
* @param index The position in the map from which the item is to be
* retrieved.
* @return The ASObject
at the index
th position
* in the ASNamedObjectMap
, or null
if that
* is not a valid index.
*/
public ASObject item(int index);
/**
* Removes an ASObject
specified by a nodeName
.
* @param name The nodeName
of the ASObject
to
* be removed.
* @return The ASObject
removed from this map if an
* ASObject
with such a name exists.
* @exception DOMException
* NOT_FOUND_ERR: Raised if there is no node named name
in
* this map.
*
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
*/
public ASObject removeNamedItem(String name)
throws DOMException;
/**
* Removes an ASObject
specified by a namespace URI and a
* local name.
* @param namespaceURI The namespace URI of the ASObject
to
* be removed.
* @param localName The local name of the ASObject
to remove.
* @return The ASObject
removed from this map if an
* ASObject
with such a local name and namespace URI
* exists.
* @exception DOMException
* NOT_FOUND_ERR: Raised if there is no node with the specified
* namespaceURI
and localName
in this map.
*
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
*/
public ASObject removeNamedItemNS(String namespaceURI,
String localName)
throws DOMException;
/**
* Adds an ASObject
using its nodeName
* attribute. If an ASObject
with that name is already
* present in this map, it is replaced by the new one.
* @param newASObject The ASObject
to be inserted in the map
* with its nodeName
as the key.
* @return If the new node replaces an existing one, the replaced node is
* returned, otherwise null
.
* @exception DOMException
* WRONG_DOCUMENT_ERR: Raised if arg
was created from a
* different ASModel
than the one that created this map.
*
NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
*
HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node
* doesn't belong in this ASNamedObjectMap
.
*/
public ASObject setNamedItem(ASObject newASObject)
throws DOMException;
/**
* Adds an ASObject
using its namespaceURI
and
* localName
. If an ASObject
with the same
* namespaceURI
and localName
is already
* present in this map, it is replaced by the new one.
* @param newASObject The ASObject
to be inserted in the
* map.The ASObject
will later be accessible using the
* value of its namespaceURI
and localName
* attributes.
* @return If the new node replaces an existing one, the replaced node is
* returned, otherwise null
.
* @exception DOMException
* WRONG_DOCUMENT_ERR
: Raised if arg
was
* created from a different ASModel
than the one that
* created this map.
* NO_MODIFICATION_ALLOWED_ERR
: Raised if this map is
* readonly.
* HIERARCHY_REQUEST_ERR
: Raised if an attempt is made
* to add a node doesn't belong in this ASNamedObjectMap
.
*/
public ASObject setNamedItemNS(ASObject newASObject)
throws DOMException;
}