mmidy       02/05/17 12:31:17

  Modified:    java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
                        DOMImpl.java
  Log:
  Changes for Performance
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.68.2.2  +65 -50    
xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java
  
  Index: DOMImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java,v
  retrieving revision 1.68.2.1
  retrieving revision 1.68.2.2
  diff -u -r1.68.2.1 -r1.68.2.2
  --- DOMImpl.java      17 Apr 2002 18:13:43 -0000      1.68.2.1
  +++ DOMImpl.java      17 May 2002 19:31:16 -0000      1.68.2.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DOMImpl.java,v 1.68.2.1 2002/04/17 18:13:43 mmidy Exp $
  + * @(#)$Id: DOMImpl.java,v 1.68.2.2 2002/05/17 19:31:16 mmidy Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -196,8 +196,7 @@
        */
       public boolean isElement(final int node) 
       {
  -      final int type = getType(node); //_type[node];
  -       return (((node < _firstAttributeNode) && (type >= DTM.NTYPES)) || 
getNodeType(node) == DTM.ELEMENT_NODE);
  +      return (((node < _firstAttributeNode) && (getType(node) >= 
DTM.NTYPES)) || getNodeType(node) == DTM.ELEMENT_NODE);
       }
   
       /**
  @@ -205,8 +204,7 @@
        */
       public boolean isAttribute(final int node) 
       {
  -      final int type = getType(node); //_type[node];
  -         return ((node >= _firstAttributeNode) && (type >= DTM.NTYPES));
  +      return ((node >= _firstAttributeNode) && (getType(node) >= 
DTM.NTYPES));
       }
   
       /**
  @@ -1152,35 +1150,49 @@
       /**************************************************************
        * Iterator that returns namespace nodes
        */
  -    /*
  +    
       private final class TypedNamespaceIterator extends NamespaceIterator {
   
  -     final int _uriType;
  +     /** The extended type ID that was requested. */
  +    private final int _nodeType;
   
  -     public TypedNamespaceIterator(int type) {
  -         _uriType = type;
  -     }
  +    /**
  +     * Constructor TypedChildrenIterator
  +     *
  +     *
  +     * @param nodeType The extended type ID being requested.
  +     */
  +     public TypedNamespaceIterator(int nodeType)
  +    {
  +      super();
  +      _nodeType = nodeType;
  +    }
   
  -     public int next() {
  -         int node;
  +     /**
  +     * Get the next node in the iteration.
  +     *
  +     * @return The next node handle in the iteration, or END.
  +     */
  +    public int next()
  +    {
  +     int node; 
   
  -         while ((node = _ns) != DOM.NULL) {
  -             _ns = _nextSibling[_ns];
  -             while ((_ns == DOM.NULL) && (_node != DOM.NULL)) {
  -                 _node = _parent[_node];
  -                 _ns = _lengthOrAttr[_node];
  -                 while ((_ns != DOM.NULL) && (_type[_ns] != NAMESPACE)) {
  -                     _ns = _nextSibling[_ns];
  -                 }
  -             }
  -             if (_prefix[node] == _uriType) return returnNode(node);
  -         }
  -         return DOM.NULL;
  -     }
  -         
  -    } // end of TypedNamespaceIterator
  +      for (node = super.next(); node != END; node = super.next())
  +      {
  +             if (getExpandedTypeID(node) == _nodeType || getNodeType(node) 
== _nodeType
  +             || getNamespaceType(node) == _nodeType)
  +        {
  +          //_currentNode = node;
   
  -*/
  +          return returnNode(node);
  +        }
  +      }
  +
  +      return (END);
  +    }
  +  }  // end of TypedNamespaceIterator
  +
  +/*
       /**************************************************************
        * Iterator that returns preceding siblings of a given node
        */
  @@ -2178,10 +2190,11 @@
         final int nNames = namesArray.length;
         // Padding with number of names, because they
         // may need to be added, i.e for RTFs. See copy03  
  -      final int[] types = new int[m_expandedNameTable.getSize() + nNames]; 
//(nNames);
  +      final int[] types = new int[m_expandedNameTable.getSize() /*+ 
nNames*/]; //(nNames);
         for (int i = 0; i < nNames; i++)      {
           //types.put(namesArray[i], new Integer(i + DTM.NTYPES));
  -          types[getGeneralizedType(namesArray[i])] = 
getGeneralizedType(namesArray[i]); //(i + DTM.NTYPES);
  +          int type = getGeneralizedType(namesArray[i]);
  +          types[type] = type; //(i + DTM.NTYPES);
         }
         return types;
       }
  @@ -2235,7 +2248,7 @@
         for (i = NTYPES; i < exLength; i++) 
                result[i] = m_expandedNameTable.getType(i); 
                
  -
  +/*
         // extended types initialized to "beyond caller's types"
         // unknown element or Attr
         for (i = NTYPES; i < mappingLength; i++) {
  @@ -2258,7 +2271,7 @@
             result[getGeneralizedType(name)] = DTM.ATTRIBUTE_NODE;
           else
             result[getGeneralizedType(name)] = DTM.ELEMENT_NODE;       
  -      }
  +      }*/
   
         // actual mapping of caller requested names
         for (i = 0; i < namesLength; i++) {
  @@ -2416,7 +2429,7 @@
         _text          = (char[])in.readObject();
         _namesArray    = (String[])in.readObject();
         _uriArray      = (String[])in.readObject();
  -     // _prefixArray   = (String[])in.readObject();
  +      _prefixArray   = (Hashtable)in.readObject();
   
         _whitespace    = (BitArray)in.readObject();
   
  @@ -3557,9 +3570,9 @@
         */
        private void storeTextRef(final int node) 
     {
  -         final int length = _currentOffset - _baseOffset;
  -         _offsetOrChild[node] = maybeReuseText(length);
  -         _lengthOrAttr[node]  = length;
  +         //final int length = _currentOffset - _baseOffset;
  +         //_offsetOrChild[node] = maybeReuseText(length);
  +         //_lengthOrAttr[node]  = length;
        }
        
        /**
  @@ -3568,7 +3581,7 @@
     private int makeTextNode(boolean isWhitespace) 
     {
        //if (_currentOffset > _baseOffset)
  -    {
  +    //{
         final int node = getNumberOfNodes()-1; //nextNode();
    //     System.out.println("text ");
         //for (int i =  0; i< _text.length; i++)
  @@ -3586,7 +3599,7 @@
                while (_currentNode < node)
                {
                        int nodeh = makeNodeHandle(++_currentNode);
  -       if(getNodeType(nodeh) == DTM.TEXT_NODE)
  +    /*   if(getNodeType(nodeh) == DTM.TEXT_NODE)
         {
           int i = 0;  //_baseOffset;
            char[] chars = getNodeValue(nodeh).toCharArray();
  @@ -3595,11 +3608,13 @@
            while (isWhitespaceChar(chars[i++]) && i < limit);
         //  if ((i == limit) && isWhitespaceChar(_text[i-1]))
            if ((i == limit) && isWhitespaceChar(chars[i-1])) 
  +         */
  +         if (isWhitespace(nodeh))
           {
                //System.out.println("<<<set bit2 " + 
SAXImpl.this.getNodeIdent(node)+ " " + node); 
             _whitespace.setBit(_currentNode);
           }
  -      }
  +     // }
         }
         }
         //_type[node] = DTM.TEXT_NODE;
  @@ -3607,7 +3622,7 @@
         //linkChildren(node);
         storeTextRef(node);
         return node;
  -    }
  +    //}
       //return -1;
     }
   
  @@ -3619,8 +3634,8 @@
        private void storeAttrValRef(final int attributeNode) 
     {
            final int length = _currentOffset - _baseOffset;
  -         _offset[attributeNode] = maybeReuseText(length);
  -         _length[attributeNode] = length;
  +        // _offset[attributeNode] = maybeReuseText(length);
  +         //_length[attributeNode] = length;
        }
   
        private int makeNamespaceNode(String prefix, String uri)
  @@ -3630,7 +3645,7 @@
            final int node = nextAttributeNode();
            _type2[node] = DTM.NAMESPACE_NODE;
            characters(uri);
  -         storeAttrValRef(node);
  +         //storeAttrValRef(node);
            return node;            
        }
   
  @@ -3680,14 +3695,14 @@
         _type2[node] = (short)obj.intValue();
       }
   
  -    final int col = qname.lastIndexOf(':');
  -    if (col > 0) 
  -    {
  -      _prefix2[node] = registerPrefix(qname.substring(0, col));
  -    }
  +    //final int col = qname.lastIndexOf(':');
  +   // if (col > 0) 
  +   // {
  +   //   _prefix2[node] = registerPrefix(qname.substring(0, col));
  +   // }
   
       characters(attList.getValue(i));
  -    storeAttrValRef(node);
  +    //storeAttrValRef(node);
       return node;
     }
   
  @@ -3951,7 +3966,7 @@
   
       // Check if the URI already exists before pushing on stack
       Integer idx;
  -        Integer eType = new Integer (getExpandedTypeID(uri, 
(String)_prefixArray.get(uri), DTM.NAMESPACE_NODE));
  +        Integer eType = new Integer (getExpandedTypeID(uri, prefix, 
DTM.NAMESPACE_NODE));
       if ((idx = (Integer)_nsIndex.get(eType)) == null)
       {
            _prefixArray.put(uri, prefix);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to