FileDocCategorySizeDatePackage
DeferredAttrNSImpl.javaAPI DocJava SE 5 API5623Fri Aug 26 14:55:42 BST 2005com.sun.org.apache.xerces.internal.dom

DeferredAttrNSImpl

public final class DeferredAttrNSImpl extends AttrNSImpl implements DeferredNode
DeferredAttrNSImpl is to AttrNSImpl, what DeferredAttrImpl is to AttrImpl.
author
Andy Clark, IBM
author
Arnaud Le Hors, IBM
version
$Id: DeferredAttrNSImpl.java,v 1.23 2003/01/16 22:53:44 elena Exp $
see
DeferredAttrImpl

Fields Summary
static final long
serialVersionUID
Serialization version.
protected transient int
fNodeIndex
Node index.
Constructors Summary
DeferredAttrNSImpl(DeferredDocumentImpl ownerDocument, int nodeIndex)
This is the deferred constructor. Only the fNodeIndex is given here. All other data, can be requested from the ownerDocument via the index.


    //
    // Constructors
    //

                                
        
        super(ownerDocument, null);

        fNodeIndex = nodeIndex;
        needsSyncData(true);
        needsSyncChildren(true);

    
Methods Summary
public intgetNodeIndex()
Returns the node index.

        return fNodeIndex;
    
protected voidsynchronizeChildren()
Synchronizes the node's children with the internal structure. Fluffing the children at once solves a lot of work to keep the two structures in sync. The problem gets worse when editing the tree -- this makes it a lot easier.

        DeferredDocumentImpl ownerDocument =
            (DeferredDocumentImpl) ownerDocument();
        ownerDocument.synchronizeChildren(this, fNodeIndex);
    
protected voidsynchronizeData()
Synchronizes the data (name and value) for fast nodes.


        // no need to sync in the future
        needsSyncData(false);

        // fluff data
        DeferredDocumentImpl ownerDocument =
	    (DeferredDocumentImpl) ownerDocument();
        name = ownerDocument.getNodeName(fNodeIndex);

        // extract prefix and local part from QName
        int index = name.indexOf(':");
        if (index < 0) {
            localName = name;
        } 
        else {
            localName = name.substring(index + 1);
        }

        int extra = ownerDocument.getNodeExtra(fNodeIndex);
        isSpecified((extra & SPECIFIED) != 0);
        isIdAttribute((extra & ID) != 0);

        namespaceURI = ownerDocument.getNodeURI(fNodeIndex);
        
        int extraNode = ownerDocument.getLastChild(fNodeIndex);
        type = ownerDocument.getTypeInfo(extraNode);