svn commit: r567479 - /lenya/trunk/src/java/org/apache/lenya/util/Query.java

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Sun Aug 19 14:34:14 2007
New Revision: 567479

URL: http://svn.apache.org/viewvc?rev=567479&view=rev
Log:
Performance optimization in Query class

Modified:
    lenya/trunk/src/java/org/apache/lenya/util/Query.java

Modified: lenya/trunk/src/java/org/apache/lenya/util/Query.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/util/Query.java?rev=567479&r1=567478&r2=567479&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/util/Query.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/util/Query.java Sun Aug 19 14:34:14 2007
@@ -36,7 +36,6 @@
 
     protected static final String PAIR_DELIMITER = "&";
     protected static final String KEY_VALUE_DELIMITER = "=";
-    private String string;
     private String pairDelimiter;
     private String keyValueDelimiter;
 
@@ -57,31 +56,24 @@
      * @param keyValueDelimiter The delimiter between key and value.
      */
     public Query(String string, String pairDelimiter, String keyValueDelimiter) {
-        this.string = string;
+        this.key2value = new HashMap();
         this.pairDelimiter = pairDelimiter;
         this.keyValueDelimiter = keyValueDelimiter;
-    }
-
-    private Map key2value;
-
-    protected void analyze() {
-        if (this.key2value == null) {
-            this.key2value = new HashMap();
-            StringTokenizer tokenizer = new StringTokenizer(this.string, getPairDelimiter());
-            while (tokenizer.hasMoreTokens()) {
-                String token = tokenizer.nextToken();
-                StringTokenizer keyValueTokenizer = new StringTokenizer(token, getKeyValueDelimiter());
-                if (keyValueTokenizer.countTokens() == 2) {
-                    final String key = keyValueTokenizer.nextToken();
-                    final String value = keyValueTokenizer.nextToken();
-                    this.key2value.put(key, value);
-                }
+        StringTokenizer tokenizer = new StringTokenizer(string, pairDelimiter);
+        while (tokenizer.hasMoreTokens()) {
+            String token = tokenizer.nextToken();
+            StringTokenizer keyValueTokenizer = new StringTokenizer(token, keyValueDelimiter);
+            if (keyValueTokenizer.countTokens() == 2) {
+                final String key = keyValueTokenizer.nextToken();
+                final String value = keyValueTokenizer.nextToken();
+                this.key2value.put(key, value);
             }
         }
     }
 
+    private Map key2value;
+
     public String getValue(String key) {
-        analyze();
         return (String) this.key2value.get(key);
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.