Author: nextgens
Date: 2008-08-15 12:18:25 +0000 (Fri, 15 Aug 2008)
New Revision: 21897

Modified:
   trunk/freenet/src/freenet/clients/http/Toadlet.java
   trunk/freenet/src/freenet/support/HTMLEncoder.java
   trunk/freenet/src/freenet/support/HTMLNode.java
Log:
Switch the Toadlets from StringBuffer to StringBuilder... it should be faster 
this way

Modified: trunk/freenet/src/freenet/clients/http/Toadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/Toadlet.java 2008-08-15 11:18:28 UTC 
(rev 21896)
+++ trunk/freenet/src/freenet/clients/http/Toadlet.java 2008-08-15 12:18:25 UTC 
(rev 21897)
@@ -82,7 +82,7 @@
                MultiValueTable hdrtbl = new MultiValueTable();
                hdrtbl.put("Allow", this.supportedMethods());

-               StringBuffer pageBuffer = new StringBuffer();
+               StringBuilder pageBuffer = new StringBuilder();
                pageNode.generate(pageBuffer);
                toadletContext.sendReplyHeaders(405, "Operation not Supported", 
hdrtbl, "text/html; charset=utf-8", pageBuffer.length());
                
toadletContext.writeData(pageBuffer.toString().getBytes("UTF-8"));

Modified: trunk/freenet/src/freenet/support/HTMLEncoder.java
===================================================================
--- trunk/freenet/src/freenet/support/HTMLEncoder.java  2008-08-15 11:18:28 UTC 
(rev 21896)
+++ trunk/freenet/src/freenet/support/HTMLEncoder.java  2008-08-15 12:18:25 UTC 
(rev 21897)
@@ -18,16 +18,16 @@

        public static String encode(String s) {
                int n = s.length();
-               StringBuffer sb = new StringBuffer(n);
+               StringBuilder sb = new StringBuilder(n);
                encodeToBuffer(n, s, sb);
                return sb.toString();
        }

-       public static void encodeToBuffer(String s, StringBuffer sb) {
+       public static void encodeToBuffer(String s, StringBuilder sb) {
                encodeToBuffer(s.length(), s, sb);
        }

-       private static void encodeToBuffer(int n, String s, StringBuffer sb) {
+       private static void encodeToBuffer(int n, String s, StringBuilder sb) {
                for (int i = 0; i < n; i++) {
                        char c = s.charAt(i);
                        if(Character.isLetterOrDigit(c)){ //only special 
characters need checking
@@ -48,7 +48,7 @@
                private String[] strings;
                private int modulo = 0;

-               public CharTable(HashMap map){
+               public CharTable(HashMap<Character, String> map){
                        int[] keys = new int[map.size()]; 
                        int keyIndex = 0;

@@ -84,7 +84,7 @@
                                character = ((Character)it.next());
                                keyIndex = character.charValue()%modulo;
                                chars[keyIndex] = character.charValue();
-                               strings[keyIndex] = (String) map.get(character);
+                               strings[keyIndex] = map.get(character);
                        }
                        if (chars[0] == 0 && strings[0] != null) chars[0] = 1;
                }

Modified: trunk/freenet/src/freenet/support/HTMLNode.java
===================================================================
--- trunk/freenet/src/freenet/support/HTMLNode.java     2008-08-15 11:18:28 UTC 
(rev 21896)
+++ trunk/freenet/src/freenet/support/HTMLNode.java     2008-08-15 12:18:25 UTC 
(rev 21897)
@@ -19,9 +19,9 @@

        private final String content;

-       private final Map attributes = new HashMap();
+       private final Map<String, String> attributes = new HashMap<String, 
String>();

-       protected final List children = new ArrayList();
+       protected final List<HTMLNode> children = new ArrayList<HTMLNode>();

        public HTMLNode(String name) {
                this(name, null);
@@ -83,12 +83,12 @@
                attributes.put(attributeName, attributeValue);
        }

-       public Map getAttributes() {
+       public Map<String, String> getAttributes() {
                return Collections.unmodifiableMap(attributes);
        }

        public String getAttribute(String attributeName) {
-               return (String) attributes.get(attributeName);
+               return attributes.get(attributeName);
        }

        public HTMLNode addChild(HTMLNode childNode) {
@@ -142,11 +142,11 @@
         *         "real" tag could be found
         */
        public String getFirstTag() {
-               if (!name.equals("#")) {
+               if (!"#".equals(name)) {
                        return name;
                }
                for (int childIndex = 0, childCount = children.size(); 
childIndex < childCount; childIndex++) {
-                       HTMLNode childNode = (HTMLNode) 
children.get(childIndex);
+                       HTMLNode childNode = children.get(childIndex);
                        String tag = childNode.getFirstTag();
                        if (tag != null) {
                                return tag;
@@ -156,24 +156,24 @@
        }

        public String generate() {
-               StringBuffer tagBuffer = new StringBuffer();
+               StringBuilder tagBuffer = new StringBuilder();
                return generate(tagBuffer).toString();
        }

-       public StringBuffer generate(StringBuffer tagBuffer) {
-               if (name.equals("#") && (content != null)) {
+       public StringBuilder generate(StringBuilder tagBuffer) {
+               if ("#".equals(name) && (content != null)) {
                        HTMLEncoder.encodeToBuffer(content, tagBuffer);
                        return tagBuffer;
                }
                // Perhaps this should be something else, but since I don't 
know if '#' was not just arbitrary chosen, I'll just pick '%'
                // This allows non-encoded text to be appended to the tag buffer
-               if (name.equals("%")) {
+               if ("%".equals(name)) {
                        tagBuffer.append(content);
                        return tagBuffer;
                }
-               if (name.equals("#")) {
+               if ("#".equals(name)) {
                        for (int childIndex = 0, childCount = children.size(); 
childIndex < childCount; childIndex++) {
-                               HTMLNode childNode = (HTMLNode) 
children.get(childIndex);
+                               HTMLNode childNode = children.get(childIndex);
                                childNode.generate(tagBuffer);
                        }
                        return tagBuffer;
@@ -188,7 +188,7 @@
                        HTMLEncoder.encodeToBuffer(attributeName, tagBuffer);
                        tagBuffer.append("=\"");
                        HTMLEncoder.encodeToBuffer(attributeValue, tagBuffer);
-                       tagBuffer.append('"');;
+                       tagBuffer.append('"');
                }
                if (children.size() == 0) {
                        if (name.equals("textarea") || name.equals("div") || 
name.equals("a")) {
@@ -202,7 +202,7 @@
                                tagBuffer.append('\n');
                        }
                        for (int childIndex = 0, childCount = children.size(); 
childIndex < childCount; childIndex++) {
-                               HTMLNode childNode = (HTMLNode) 
children.get(childIndex);
+                               HTMLNode childNode = children.get(childIndex);
                                childNode.generate(tagBuffer);
                        }
                        tagBuffer.append("</").append(name).append('>');
@@ -236,12 +236,13 @@
                /**
                 * @see 
freenet.support.HTMLNode#generate(java.lang.StringBuffer)
                 */
-               public StringBuffer generate(StringBuffer tagBuffer) {
+               @Override
+               public StringBuilder generate(StringBuilder tagBuffer) {
                        tagBuffer.append("<!DOCTYPE ").append(name).append(" 
PUBLIC \"").append(systemUri).append("\">\n");
                        //TODO A meaningful exception should be raised 
                        // when trying to call the method for a HTMLDoctype 
                        // with number of child != 1 
-                       return ((HTMLNode) children.get(0)).generate(tagBuffer);
+                       return children.get(0).generate(tagBuffer);
                }

        }


Reply via email to