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);
}
}