Author: vgritsenko
Date: Wed Aug 15 18:21:52 2007
New Revision: 566464

URL: http://svn.apache.org/viewvc?view=rev&rev=566464
Log:
finish symbol table refactoring - remove last static methods

Modified:
    
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/DocumentHandler.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexPattern.java
    xml/xindice/trunk/java/src/org/apache/xindice/xml/SymbolTable.java
    xml/xindice/trunk/java/src/org/apache/xindice/xml/sax/SAXEventGenerator.java
    xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/SymbolTableTest.java

Modified: 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/DocumentHandler.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/DocumentHandler.java?view=diff&rev=566464&r1=566463&r2=566464
==============================================================================
--- 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/DocumentHandler.java 
(original)
+++ 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/DocumentHandler.java 
Wed Aug 15 18:21:52 2007
@@ -176,8 +176,7 @@
     public void startElement(String namespaceURI, String localName, String 
qName, Attributes atts) {
         // Modify the stack info to normalize the symbolID
         if (namespaceURI != null && namespaceURI.length() > 0) {
-            String elemNSID = SymbolTable.getNormalizedQName(localName, 
namespaceURI);
-            info.symbolID = symbols.getSymbol(elemNSID, namespaceURI, true);
+            info.symbolID = symbols.getNormalizedSymbol(localName, 
namespaceURI, true);
         }
 
         int size = atts.getLength();
@@ -185,10 +184,9 @@
             String nsURI = atts.getURI(i);
             short id;
             if (nsURI != null && nsURI.length() > 0) {
-                String attrNSID = 
SymbolTable.getNormalizedQName(atts.getLocalName(i), nsURI);
-                id = symbols.getSymbol(attrNSID, nsURI, true);
+                id = symbols.getNormalizedSymbol(atts.getLocalName(i), nsURI, 
true);
             } else {
-                id = symbols.getSymbol(atts.getQName(i));
+                id = symbols.getSymbol(atts.getQName(i), true);
             }
 
             processEntry(new IndexPattern(symbols, info.symbolID, id), 
atts.getValue(i), info.pos, info.len);

Modified: 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexPattern.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexPattern.java?view=diff&rev=566464&r1=566463&r2=566464
==============================================================================
--- 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexPattern.java 
(original)
+++ 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexPattern.java 
Wed Aug 15 18:21:52 2007
@@ -60,7 +60,7 @@
         if (elemName.equals("*")) {
             elemID = PATTERN_WILDCARD;
         } else {
-            elemID = SymbolTable.getNormalizedSymbol(symbols, elemName, nsMap, 
true);
+            elemID = symbols.getNormalizedSymbol(elemName, nsMap, true);
         }
 
         if (st.hasMoreTokens()) {
@@ -69,7 +69,7 @@
                 attrID = PATTERN_WILDCARD;
             } else {
                 attrID = elemID == PATTERN_WILDCARD ? PATTERN_NAME
-                        : SymbolTable.getNormalizedSymbol(symbols, attrName, 
nsMap, true);
+                        : symbols.getNormalizedSymbol(attrName, nsMap, true);
             }
         }
     }

Modified: xml/xindice/trunk/java/src/org/apache/xindice/xml/SymbolTable.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/xml/SymbolTable.java?view=diff&rev=566464&r1=566463&r2=566464
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/xml/SymbolTable.java 
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/xml/SymbolTable.java Wed Aug 
15 18:21:52 2007
@@ -81,43 +81,6 @@
     }
 
     //
-    // Static Methods
-    //
-
-    public static String getNormalizedQName(String localName, String 
namespaceURI) {
-        return "ns" + namespaceURI.hashCode() + ':' + localName;
-    }
-
-    public static short getNormalizedSymbol(SymbolTable symbols, String 
lookup, NamespaceMap nsMap, boolean create) {
-        // Parse [<namespaceURI>]<nsPrefix>:<localName> with optional nsPrefix
-        if (lookup.startsWith("[")) {
-            int idx = lookup.indexOf(']');
-            String nsURI = lookup.substring(1, idx);
-            int cidx = lookup.indexOf(':', idx + 1);
-            String name = cidx != -1 ? lookup.substring(cidx + 1) : 
lookup.substring(idx + 1);
-
-            return symbols.getSymbol(getNormalizedQName(name, nsURI), nsURI, 
create);
-        }
-
-        // Parse <nsPrefix>:<localName> with passed in nsMap
-        int idx = lookup.indexOf(':');
-        if (idx != -1) {
-            String pfx = lookup.substring(0, idx);
-            String nsURI = (String) nsMap.get(pfx);
-            if (nsURI != null) {
-                String name = lookup.substring(idx + 1);
-                return symbols.getSymbol(getNormalizedQName(name, nsURI), 
nsURI, create);
-            }
-        }
-
-        return symbols.getSymbol(lookup, create);
-    }
-
-    private static String getLookupName(String qname, String namespaceURI) {
-        return '[' + namespaceURI + ']' + qname;
-    }
-
-    //
     // Instance Methods
     //
 
@@ -214,6 +177,68 @@
     }
 
     //
+    // Lookup normalized symbol
+    //
+
+    public final short getNormalizedSymbol(String localName, String 
namespaceURI) {
+        return getNormalizedSymbol(localName, namespaceURI, false);
+    }
+
+    /**
+     * Lookup normalized symbol by element (or attribute) local name and 
namespace URI.
+     *
+     * @param localName element (attribute) local name
+     * @param namespaceURI element (attribute) namespace URI
+     * @param create when true, creates symbol if it is missing
+     * @return symbol id or -1
+     */
+    public final short getNormalizedSymbol(String localName, String 
namespaceURI, boolean create) {
+        String normalizedQName = SymbolTable.getNormalizedQName(localName, 
namespaceURI);
+        return getSymbol(normalizedQName, namespaceURI, create);
+    }
+
+    /**
+     * Lookup normalized symbol by lookup string and (optional) namespace map. 
Lookup
+     * string can take one of the following forms:
+     * <ul>
+     * <li> [<namespaceURI>]<nsPrefix>:<localName>, where nsPrefix can be empty
+     * <li> <nsPrefix>:<localName>, any regular qName
+     * </ul>
+     *
+     * Namespace map is used to determine namespaceURI for passed in lookup 
string and
+     * normalize namespace prefix.
+     *
+     * @param lookup lookup string
+     * @param nsMap namespace map
+     * @param create when true, creates symbol if it is missing
+     * @return symbol id or -1
+     */
+    public final short getNormalizedSymbol(String lookup, NamespaceMap nsMap, 
boolean create) {
+        // Parse [<namespaceURI>]<nsPrefix>:<localName> with optional nsPrefix
+        if (lookup.startsWith("[")) {
+            int idx = lookup.indexOf(']');
+            String nsURI = lookup.substring(1, idx);
+            int cidx = lookup.indexOf(':', idx + 1);
+            String name = cidx != -1 ? lookup.substring(cidx + 1) : 
lookup.substring(idx + 1);
+
+            return getSymbol(getNormalizedQName(name, nsURI), nsURI, create);
+        }
+
+        // Parse <nsPrefix>:<localName> with passed in nsMap
+        int idx = lookup.indexOf(':');
+        if (idx != -1) {
+            String pfx = lookup.substring(0, idx);
+            String nsURI = (String) nsMap.get(pfx);
+            if (nsURI != null) {
+                String name = lookup.substring(idx + 1);
+                return getSymbol(getNormalizedQName(name, nsURI), nsURI, 
create);
+            }
+        }
+
+        return getSymbol(lookup, create);
+    }
+
+    //
     // XMLSerializable
     //
 
@@ -269,5 +294,17 @@
 
             names.put(new Short(id), info);
         }
+    }
+
+    //
+    // Implementation methods
+    //
+
+    private static String getNormalizedQName(String localName, String 
namespaceURI) {
+        return "ns" + namespaceURI.hashCode() + ':' + localName;
+    }
+
+    private String getLookupName(String qname, String namespaceURI) {
+        return '[' + namespaceURI + ']' + qname;
     }
 }

Modified: 
xml/xindice/trunk/java/src/org/apache/xindice/xml/sax/SAXEventGenerator.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/xml/sax/SAXEventGenerator.java?view=diff&rev=566464&r1=566463&r2=566464
==============================================================================
--- 
xml/xindice/trunk/java/src/org/apache/xindice/xml/sax/SAXEventGenerator.java 
(original)
+++ 
xml/xindice/trunk/java/src/org/apache/xindice/xml/sax/SAXEventGenerator.java 
Wed Aug 15 18:21:52 2007
@@ -323,7 +323,6 @@
                 case Node.CDATA_SECTION_NODE:
                 case Node.COMMENT_NODE:
                     {
-
                         ByteArrayInput tbis = new ByteArrayInput(data, pos, 
len);
                         XMLCompressedInput tin = new XMLCompressedInput(tbis, 
symbols);
 
@@ -383,13 +382,11 @@
         }
 
         if (element && !interrupt) {
-
             // First, close element ...
             content.endElement(nsURI != null ? nsURI : "", localName, 
elemName);
 
             // ... and then any mapped NS prefixes
             for (int i = 0; i < nsMapCount; i++) {
-
                 content.endPrefixMapping(mappedPrefixes[i]);
             }
         }
@@ -409,17 +406,6 @@
         }
         return result;
     }
-
-    /*public boolean start() {
-       try {
-          return processDocument();
-       }
-       catch ( Exception e ) {
-          org.apache.xindice.Debug.printStackTrace(e);
-          throw(e);
-          return false;
-       }
-    }*/
 
     public void stop() {
         interrupt = true;

Modified: 
xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/SymbolTableTest.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/SymbolTableTest.java?view=diff&rev=566464&r1=566463&r2=566464
==============================================================================
--- 
xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/SymbolTableTest.java 
(original)
+++ 
xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/SymbolTableTest.java 
Wed Aug 15 18:21:52 2007
@@ -124,21 +124,21 @@
     }
 
     public void testGetNormalizedSymbol() {
-        assertEquals(1, SymbolTable.getNormalizedSymbol(symbols, "simple", 
null, false));
+        assertEquals(1, symbols.getNormalizedSymbol("simple", (NamespaceMap) 
null, false));
 
-        assertEquals(-1, SymbolTable.getNormalizedSymbol(symbols, 
"[http://www.w3.org/1999/xhtml]spaced";, null, false));
-        assertEquals(-1, SymbolTable.getNormalizedSymbol(symbols, 
"[http://www.w3.org/1999/xhtml]a:spaced";, null, false));
-        assertEquals(-1, SymbolTable.getNormalizedSymbol(symbols, 
"[http://www.w3.org/1999/xhtml]b:spaced";, null, false));
+        assertEquals(-1, 
symbols.getNormalizedSymbol("[http://www.w3.org/1999/xhtml]spaced";, 
(NamespaceMap) null, false));
+        assertEquals(-1, 
symbols.getNormalizedSymbol("[http://www.w3.org/1999/xhtml]a:spaced";, 
(NamespaceMap) null, false));
+        assertEquals(-1, 
symbols.getNormalizedSymbol("[http://www.w3.org/1999/xhtml]b:spaced";, 
(NamespaceMap) null, false));
 
-        short s = SymbolTable.getNormalizedSymbol(symbols, 
"[http://www.w3.org/1999/xhtml]spaced";, null, true);
+        short s = 
symbols.getNormalizedSymbol("[http://www.w3.org/1999/xhtml]spaced";, 
(NamespaceMap) null, true);
 
-        assertEquals(s, SymbolTable.getNormalizedSymbol(symbols, 
"[http://www.w3.org/1999/xhtml]spaced";, null, false));
-        assertEquals(s, SymbolTable.getNormalizedSymbol(symbols, 
"[http://www.w3.org/1999/xhtml]a:spaced";, null, false));
-        assertEquals(s, SymbolTable.getNormalizedSymbol(symbols, 
"[http://www.w3.org/1999/xhtml]b:spaced";, null, false));
-        assertEquals(s, SymbolTable.getNormalizedSymbol(symbols, 
"[http://www.w3.org/1999/xhtml]x:spaced";, null, false));
+        assertEquals(s, 
symbols.getNormalizedSymbol("[http://www.w3.org/1999/xhtml]spaced";, 
(NamespaceMap) null, false));
+        assertEquals(s, 
symbols.getNormalizedSymbol("[http://www.w3.org/1999/xhtml]a:spaced";, 
(NamespaceMap) null, false));
+        assertEquals(s, 
symbols.getNormalizedSymbol("[http://www.w3.org/1999/xhtml]b:spaced";, 
(NamespaceMap) null, false));
+        assertEquals(s, 
symbols.getNormalizedSymbol("[http://www.w3.org/1999/xhtml]x:spaced";, 
(NamespaceMap) null, false));
 
         NamespaceMap m = new NamespaceMap();
         m.setNamespace("z", "http://www.w3.org/1999/xhtml";);
-        assertEquals(s, SymbolTable.getNormalizedSymbol(symbols, "z:spaced", 
m, false));
+        assertEquals(s, symbols.getNormalizedSymbol("z:spaced", m, false));
     }
 }


Reply via email to