summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2006-07-11 15:15:02 +0000
committerBurak Emir <emir@epfl.ch>2006-07-11 15:15:02 +0000
commite6ef9af62f44bf4df35907847723a9e57e092212 (patch)
tree7ac1e53c27d394fce8ee96c3b7ffa4a1c51b9775
parent2b77dc7e1c2fef36b50e335c3843cdd421bb2c74 (diff)
downloadscala-e6ef9af62f44bf4df35907847723a9e57e092212.tar.gz
scala-e6ef9af62f44bf4df35907847723a9e57e092212.tar.bz2
scala-e6ef9af62f44bf4df35907847723a9e57e092212.zip
replaced StringBuffer with compat.StringBuilder...
replaced StringBuffer with compat.StringBuilder (except in Java-specific file "FactoryAdapter") and added methods to stringbuilder
-rw-r--r--src/library/scala/runtime/compat/StringBuilder.scala8
-rw-r--r--src/library/scala/xml/Atom.scala3
-rw-r--r--src/library/scala/xml/Comment.scala3
-rw-r--r--src/library/scala/xml/Elem.scala3
-rw-r--r--src/library/scala/xml/EntityRef.scala5
-rw-r--r--src/library/scala/xml/MetaData.scala11
-rw-r--r--src/library/scala/xml/Molecule.scala3
-rw-r--r--src/library/scala/xml/NamespaceBinding.scala7
-rw-r--r--src/library/scala/xml/Node.scala5
-rw-r--r--src/library/scala/xml/NodeSeq.scala3
-rw-r--r--src/library/scala/xml/Null.scala7
-rw-r--r--src/library/scala/xml/PrefixedAttribute.scala3
-rw-r--r--src/library/scala/xml/PrettyPrinter.scala22
-rw-r--r--src/library/scala/xml/ProcInstr.scala3
-rw-r--r--src/library/scala/xml/SpecialNode.scala5
-rw-r--r--src/library/scala/xml/Text.scala3
-rw-r--r--src/library/scala/xml/TextBuffer.scala3
-rw-r--r--src/library/scala/xml/TopScope.scala4
-rw-r--r--src/library/scala/xml/UnprefixedAttribute.scala3
-rw-r--r--src/library/scala/xml/Utility.scala25
-rw-r--r--src/library/scala/xml/dtd/ContentModel.scala24
-rw-r--r--src/library/scala/xml/dtd/DTD.scala4
-rw-r--r--src/library/scala/xml/dtd/Decl.scala41
-rw-r--r--src/library/scala/xml/dtd/DocType.scala3
-rw-r--r--src/library/scala/xml/dtd/ExternalID.scala9
-rw-r--r--src/library/scala/xml/dtd/Scanner.scala3
-rw-r--r--src/library/scala/xml/dtd/ValidationException.scala3
-rw-r--r--src/library/scala/xml/parsing/ExternalSources.scala4
-rw-r--r--src/library/scala/xml/parsing/MarkupParser.scala16
29 files changed, 133 insertions, 103 deletions
diff --git a/src/library/scala/runtime/compat/StringBuilder.scala b/src/library/scala/runtime/compat/StringBuilder.scala
index 9100c23e70..7c7e967a46 100644
--- a/src/library/scala/runtime/compat/StringBuilder.scala
+++ b/src/library/scala/runtime/compat/StringBuilder.scala
@@ -14,14 +14,22 @@ package scala.runtime.compat;
class StringBuilder {
val str = new StringBuffer();
+
+ def charAt(i: int): char = str.charAt(i);
+
def append(x: Any): StringBuilder = {
str.append(x);
this
}
+ def append(x: char): StringBuilder = {
+ str.append(x);
+ this;
+ }
def append(x: String): StringBuilder = {
str.append(x);
this
}
def length(): Int = str.length();
+ def setLength(i: int) = str.setLength(i)
override def toString() = str.toString();
}
diff --git a/src/library/scala/xml/Atom.scala b/src/library/scala/xml/Atom.scala
index ca00c38932..643df24032 100644
--- a/src/library/scala/xml/Atom.scala
+++ b/src/library/scala/xml/Atom.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder;
/** an XML node for text (PCDATA). Used in both non-bound and bound XML
* representations
@@ -36,7 +37,7 @@ class Atom[+A]( val data: A ) extends SpecialNode {
data.hashCode();
/** returns text, with some characters escaped according to XML spec */
- def toString(sb:StringBuffer) =
+ def toString(sb: StringBuilder) =
Utility.escape( data.toString(), sb );
override def text: String = data.toString();
diff --git a/src/library/scala/xml/Comment.scala b/src/library/scala/xml/Comment.scala
index ea015a667e..312a3f2b3d 100644
--- a/src/library/scala/xml/Comment.scala
+++ b/src/library/scala/xml/Comment.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder;
/** an XML node for comments.
*
@@ -40,7 +41,7 @@ case class Comment(commentText: String) extends SpecialNode {
override def text = "";
/** appends &quot;<!-- text -->&quot; to this stringbuffer */
- def toString(sb: StringBuffer) = {
+ def toString(sb: StringBuilder) = {
sb.append("<!--").append(commentText).append("-->")
}
}
diff --git a/src/library/scala/xml/Elem.scala b/src/library/scala/xml/Elem.scala
index 2b417db90d..74d99c5d5f 100644
--- a/src/library/scala/xml/Elem.scala
+++ b/src/library/scala/xml/Elem.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
/** The case class <code>Elem</code> extends the Node class,
* providing an immutable data object representing an XML element.
@@ -63,7 +64,7 @@ case class Elem(override val prefix: String,
/* returns concatenation of text(n) for each child n */
override def text = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
val it = child.elements;
while(it.hasNext) {
sb.append(it.next.text);
diff --git a/src/library/scala/xml/EntityRef.scala b/src/library/scala/xml/EntityRef.scala
index 7816e5bbff..a3c4876068 100644
--- a/src/library/scala/xml/EntityRef.scala
+++ b/src/library/scala/xml/EntityRef.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
/** an XML node for entity references
*
@@ -40,10 +41,10 @@ case class EntityRef(entityName: String) extends SpecialNode {
case "amp" => "&";
case "apos" => "'";
case "quot" => "\"";
- case _ => val sb=new StringBuffer();toString(sb).toString()
+ case _ => val sb=new StringBuilder();toString(sb).toString()
}
/** appends "&amp; entityName;" to this stringbuffer */
- def toString(sb:StringBuffer) =
+ def toString(sb:StringBuilder) =
sb.append("&").append(entityName).append(";");
}
diff --git a/src/library/scala/xml/MetaData.scala b/src/library/scala/xml/MetaData.scala
index bff7fddaf1..ea930f9ac0 100644
--- a/src/library/scala/xml/MetaData.scala
+++ b/src/library/scala/xml/MetaData.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder;
/** Attribute information item, and linked list of attribute information items.
* These are triples consisting of prefix,key,value. To obtain the namespace,
@@ -136,21 +137,21 @@ abstract class MetaData extends Iterable[MetaData] {
override def hashCode(): Int;
def toString1(): String = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
toString1(sb);
sb.toString();
}
- //appends string representations of single attribute to StringBuffer
- def toString1(sb:StringBuffer): Unit;
+ //appends string representations of single attribute to StringBuilder
+ def toString1(sb:StringBuilder): Unit;
override def toString(): String = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
toString(sb);
sb.toString();
}
- def toString(sb: StringBuffer): Unit = {
+ def toString(sb: StringBuilder): Unit = {
sb.append(' ');
toString1(sb);
next.toString(sb);
diff --git a/src/library/scala/xml/Molecule.scala b/src/library/scala/xml/Molecule.scala
index a2a4c6e229..8e0086f3ab 100644
--- a/src/library/scala/xml/Molecule.scala
+++ b/src/library/scala/xml/Molecule.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder;
/** an XML node for a list of data items.
* @author buraq
@@ -36,7 +37,7 @@ class Molecule[+A]( val list: List[A] ) extends SpecialNode {
override def text = list.mkString(""," ","");
/** returns text, with some characters escaped according to XML spec */
- def toString(sb:StringBuffer) =
+ def toString(sb:StringBuilder) =
sb.append(list.mkString(""," ",""))
}
diff --git a/src/library/scala/xml/NamespaceBinding.scala b/src/library/scala/xml/NamespaceBinding.scala
index c675cd7194..f2a0c97f0a 100644
--- a/src/library/scala/xml/NamespaceBinding.scala
+++ b/src/library/scala/xml/NamespaceBinding.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
/** The class <code>NamespaceBinding</code> represents namespace bindings
* and scopes. The binding for the default namespace is treated as a null
@@ -42,18 +43,18 @@ class NamespaceBinding(val prefix: String,
if (_uri == uri) uri else parent.getURI(_uri);
override def toString(): String = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
toString(sb, TopScope);
sb.toString();
}
def toString(stop: NamespaceBinding): String = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
toString(sb, stop);
sb.toString();
}
- def toString(sb:StringBuffer, stop:NamespaceBinding): Unit = {
+ def toString(sb:StringBuilder, stop:NamespaceBinding): Unit = {
if (this ne stop) { // contains?
sb.append(" xmlns");
if (prefix != null) {
diff --git a/src/library/scala/xml/Node.scala b/src/library/scala/xml/Node.scala
index dd823e7e4e..0ce3784a8b 100644
--- a/src/library/scala/xml/Node.scala
+++ b/src/library/scala/xml/Node.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
/**
* This object provides methods
@@ -150,12 +151,12 @@ abstract class Node extends NodeSeq {
override def toString(): String = toString(false);
/**
- * Appends qualified name of this node to <code>StringBuffer</code>.
+ * Appends qualified name of this node to <code>StringBuilder</code>.
*
* @param sb
* @return ..
*/
- def nameToString(sb: StringBuffer): StringBuffer = {
+ def nameToString(sb: StringBuilder): StringBuilder = {
if (null != prefix) {
sb.append(prefix);
sb.append(':');
diff --git a/src/library/scala/xml/NodeSeq.scala b/src/library/scala/xml/NodeSeq.scala
index cc9cfae5e6..16cb6be7b3 100644
--- a/src/library/scala/xml/NodeSeq.scala
+++ b/src/library/scala/xml/NodeSeq.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
object NodeSeq {
final val Empty = new NodeSeq { def theSeq = Nil; }
@@ -98,7 +99,7 @@ abstract class NodeSeq extends Seq[Node] {
def filter(f:Node => Boolean): NodeSeq = { val x = toList filter f; x }
def text: String = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
val it = elements;
while(it.hasNext) {
sb.append(it.next.text);
diff --git a/src/library/scala/xml/Null.scala b/src/library/scala/xml/Null.scala
index f61c7dfb64..1a78c773b0 100644
--- a/src/library/scala/xml/Null.scala
+++ b/src/library/scala/xml/Null.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
case object Null extends MetaData {
@@ -65,12 +66,12 @@ case object Null extends MetaData {
override def toString1(): String = "";
- //appends string representations of single attribute to StringBuffer
- def toString1(sb:StringBuffer) = {};
+ //appends string representations of single attribute to StringBuilder
+ def toString1(sb:StringBuilder) = {};
override def toString(): String = "";
- override def toString(sb: StringBuffer): Unit = {}
+ override def toString(sb: StringBuilder): Unit = {}
override def wellformed(scope: NamespaceBinding) = true;
diff --git a/src/library/scala/xml/PrefixedAttribute.scala b/src/library/scala/xml/PrefixedAttribute.scala
index e5b57a67ac..8b587a4d0d 100644
--- a/src/library/scala/xml/PrefixedAttribute.scala
+++ b/src/library/scala/xml/PrefixedAttribute.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
/** prefixed attributes always have a non-null namespace
*/
@@ -72,7 +73,7 @@ class PrefixedAttribute(val pre: String,
pre.hashCode() * 41 + key.hashCode() * 7 + value.hashCode() * 3 + next.hashCode();
- def toString1(sb:StringBuffer): Unit = {
+ def toString1(sb:StringBuilder): Unit = {
sb.append(pre);
sb.append(':');
sb.append(key);
diff --git a/src/library/scala/xml/PrettyPrinter.scala b/src/library/scala/xml/PrettyPrinter.scala
index 904ff2fdb2..96d43c5383 100644
--- a/src/library/scala/xml/PrettyPrinter.scala
+++ b/src/library/scala/xml/PrettyPrinter.scala
@@ -11,7 +11,7 @@
package scala.xml;
-import java.lang.StringBuffer ; /* Java dependency! */
+import scala.runtime.compat.StringBuilder
import scala.collection.Map ;
/** Class for pretty printing. After instantiating, you can use the
@@ -48,7 +48,7 @@ class PrettyPrinter( width:Int, step:Int ) {
val tmp = width - cur;
if( s.length() < tmp )
return List(Box(ind,s));
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
var i = s.indexOf(' ');
if(i > tmp || i == -1) throw new BrokenException(); // cannot break
@@ -97,7 +97,7 @@ class PrettyPrinter( width:Int, step:Int ) {
}
protected def leafTag( n:Node ) = {
- val sb = new StringBuffer("<");
+ val sb = new StringBuilder().append('<');
n.nameToString(sb);
//Utility.appendPrefixedName( n.prefix, n.label, pmap, sb );
n.attributes.toString(sb);
@@ -107,7 +107,7 @@ class PrettyPrinter( width:Int, step:Int ) {
}
protected def startTag(n: Node, pscope: NamespaceBinding): Pair[String, Int] = {
- val sb = new StringBuffer("<");
+ val sb = new StringBuilder().append('<');
n.nameToString(sb); //Utility.appendPrefixedName( n.prefix, n.label, pmap, sb );
val i = sb.length() + 1;
n.attributes.toString(sb);
@@ -117,7 +117,7 @@ class PrettyPrinter( width:Int, step:Int ) {
}
protected def endTag(n: Node) = {
- val sb = new StringBuffer("</");
+ val sb = new StringBuilder().append("</");
n.nameToString(sb); //Utility.appendPrefixedName( n.prefix, n.label, pmap, sb );
sb.append('>');
sb.toString();
@@ -150,7 +150,7 @@ class PrettyPrinter( width:Int, step:Int ) {
case _ =>
val test = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
Utility.toXML(node, pscope, sb, false);
if(node.attribute("http://www.w3.org/XML/1998/namespace", "space") == "preserve")
sb.toString();
@@ -206,11 +206,11 @@ class PrettyPrinter( width:Int, step:Int ) {
* @param pmap the namespace to prefix mapping
* @param sb the stringbuffer to append to
*/
- def format(n: Node, sb: StringBuffer ): Unit = { // entry point
+ def format(n: Node, sb: StringBuilder ): Unit = { // entry point
format(n,null,sb)
}
- def format(n: Node, pscope:NamespaceBinding, sb: StringBuffer): Unit = { // entry point
+ def format(n: Node, pscope:NamespaceBinding, sb: StringBuilder): Unit = { // entry point
var lastwasbreak = false;
reset();
traverse( n, pscope, 0 );
@@ -252,7 +252,7 @@ class PrettyPrinter( width:Int, step:Int ) {
* @param pmap the namespace to prefix mapping
*/
def format(n: Node, pscope: NamespaceBinding): String = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
format( n, pscope, sb );
sb.toString();
}
@@ -269,7 +269,7 @@ class PrettyPrinter( width:Int, step:Int ) {
* @param pmap the namespace to prefix mapping
*/
def formatNodes( nodes:Seq[Node], pscope: NamespaceBinding ):String = {
- var sb = new StringBuffer();
+ var sb = new StringBuilder();
formatNodes( nodes, pscope, sb );
sb.toString();
}
@@ -280,7 +280,7 @@ class PrettyPrinter( width:Int, step:Int ) {
* @param pmap the namespace to prefix mapping
* @param sb the string buffer to which to append to
*/
- def formatNodes( nodes: Seq[Node], pscope: NamespaceBinding, sb: StringBuffer ): Unit = {
+ def formatNodes( nodes: Seq[Node], pscope: NamespaceBinding, sb: StringBuilder ): Unit = {
for( val n <- nodes.elements ) {
sb.append(format( n, pscope ))
}
diff --git a/src/library/scala/xml/ProcInstr.scala b/src/library/scala/xml/ProcInstr.scala
index 0a3090d52b..64c1670ae8 100644
--- a/src/library/scala/xml/ProcInstr.scala
+++ b/src/library/scala/xml/ProcInstr.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
/** an XML node for processing instructions (PI)
*
@@ -52,7 +53,7 @@ case class ProcInstr(target:String, proctext:String) extends SpecialNode {
/** appends &quot;&lt;?&quot; target (&quot; &quot;+text)?+&quot;?&gt;&quot;
* to this stringbuffer.
*/
- def toString(sb: StringBuffer) = {
+ def toString(sb: StringBuilder) = {
sb
.append("<?")
.append(target);
diff --git a/src/library/scala/xml/SpecialNode.scala b/src/library/scala/xml/SpecialNode.scala
index 6d274587d4..5d0fbcab4c 100644
--- a/src/library/scala/xml/SpecialNode.scala
+++ b/src/library/scala/xml/SpecialNode.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
/** a special XML node is either text (PCDATA), a comment, a PI, or
* an entity ref
@@ -27,8 +28,8 @@ abstract class SpecialNode extends Node {
final def child = Nil;
final override def toString(): String =
- toString(new StringBuffer()).toString();
+ toString(new StringBuilder()).toString();
- def toString(sb:StringBuffer): StringBuffer ;
+ def toString(sb:StringBuilder): StringBuilder ;
}
diff --git a/src/library/scala/xml/Text.scala b/src/library/scala/xml/Text.scala
index 8f612f28e5..317fa34379 100644
--- a/src/library/scala/xml/Text.scala
+++ b/src/library/scala/xml/Text.scala
@@ -11,6 +11,7 @@
package scala.xml
+import scala.runtime.compat.StringBuilder
/** an XML node for text (PCDATA). Used in both non-bound and bound XML
* representations
@@ -29,7 +30,7 @@ case class Text(_data: String) extends Atom[String](_data) {
}
/** returns text, with some characters escaped according to XML spec */
- override def toString(sb: StringBuffer) =
+ override def toString(sb: StringBuilder) =
Utility.escape(data.toString(), sb)
}
diff --git a/src/library/scala/xml/TextBuffer.scala b/src/library/scala/xml/TextBuffer.scala
index a60a6cbbb5..5056aa0bb1 100644
--- a/src/library/scala/xml/TextBuffer.scala
+++ b/src/library/scala/xml/TextBuffer.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder;
object TextBuffer {
def fromString(str: String): TextBuffer = {
@@ -25,7 +26,7 @@ object TextBuffer {
*/
class TextBuffer {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
var ws = true;
def appendSpace = if( !ws ) { ws = true; sb.append(' ');} else {};
diff --git a/src/library/scala/xml/TopScope.scala b/src/library/scala/xml/TopScope.scala
index f517c51b2b..d7cbf703db 100644
--- a/src/library/scala/xml/TopScope.scala
+++ b/src/library/scala/xml/TopScope.scala
@@ -9,6 +9,8 @@
// $Id$
package scala.xml;
+import scala.runtime.compat.StringBuilder
+
/** top level namespace scope. only contains the predefined binding
* for the &quot;xml&quot; prefix which is bound to
* &quot;http://www.w3.org/XML/1998/namespace&quot;
@@ -31,6 +33,6 @@ case object TopScope extends NamespaceBinding(null, null, null) {
override def toString(stop: NamespaceBinding) = "";
- override def toString(sb: StringBuffer, ignore: NamespaceBinding) = {};
+ override def toString(sb: StringBuilder, ignore: NamespaceBinding) = {};
}
diff --git a/src/library/scala/xml/UnprefixedAttribute.scala b/src/library/scala/xml/UnprefixedAttribute.scala
index 9900b1199e..02d42507cb 100644
--- a/src/library/scala/xml/UnprefixedAttribute.scala
+++ b/src/library/scala/xml/UnprefixedAttribute.scala
@@ -11,6 +11,7 @@
package scala.xml;
+import scala.runtime.compat.StringBuilder
/** unprefixed attributes have the null namespace
*/
@@ -59,7 +60,7 @@ class UnprefixedAttribute(val key: String, val value: String, val next: MetaData
/** returns false */
final def isPrefixed = false;
- def toString1(sb:StringBuffer): Unit = {
+ def toString1(sb:StringBuilder): Unit = {
sb.append(key);
sb.append('=');
Utility.appendQuoted(value, sb);
diff --git a/src/library/scala/xml/Utility.scala b/src/library/scala/xml/Utility.scala
index f1e5eb3bc5..19b2c5595b 100644
--- a/src/library/scala/xml/Utility.scala
+++ b/src/library/scala/xml/Utility.scala
@@ -11,8 +11,7 @@
package scala.xml
-
-import java.lang.StringBuffer
+import scala.runtime.compat.StringBuilder
import scala.collection.mutable
/**
@@ -25,10 +24,10 @@ object Utility extends AnyRef with parsing.TokenTests {
/* escapes the characters &lt; &gt; &amp; and &quot; from string */
final def escape(text: String): String =
- escape(text, new StringBuffer()).toString()
+ escape(text, new StringBuilder()).toString()
/* appends escaped string to s */
- final def escape(text: String, s: StringBuffer): StringBuffer = {
+ final def escape(text: String, s: StringBuilder): StringBuilder = {
for (val c <- Iterator.fromString(text)) c match {
case '<' => s.append("&lt;")
case '>' => s.append("&gt;")
@@ -83,7 +82,7 @@ object Utility extends AnyRef with parsing.TokenTests {
* @todo define a way to escape literal characters to &amp;xx; references
*/
def toXML(n: Node, stripComment: Boolean): String = {
- val sb = new StringBuffer()
+ val sb = new StringBuilder()
toXML(n, TopScope, sb, stripComment)
sb.toString()
}
@@ -96,7 +95,7 @@ object Utility extends AnyRef with parsing.TokenTests {
* @param sb stringbuffer to append to
* @param stripComment if true, strip comments
*/
- def toXML(x: Node, pscope: NamespaceBinding, sb: StringBuffer, stripComment: Boolean): Unit = {
+ def toXML(x: Node, pscope: NamespaceBinding, sb: StringBuilder, stripComment: Boolean): Unit = {
x match {
case c: Comment if !stripComment =>
@@ -159,23 +158,23 @@ object Utility extends AnyRef with parsing.TokenTests {
*/
def systemLiteralToString(s: String): String = {
- val sb = new StringBuffer()
+ val sb = new StringBuilder()
systemLiteralToString(sb, s)
sb.toString()
}
- def systemLiteralToString(sb: StringBuffer, s: String): StringBuffer = {
+ def systemLiteralToString(sb: StringBuilder, s: String): StringBuilder = {
sb.append("SYSTEM ")
appendQuoted(s, sb)
}
def publicLiteralToString(s: String): String = {
- val sb = new StringBuffer()
+ val sb = new StringBuilder()
systemLiteralToString(sb, s)
sb.toString()
}
- def publicLiteralToString(sb: StringBuffer, s: String): StringBuffer = {
+ def publicLiteralToString(sb: StringBuilder, s: String): StringBuilder = {
sb.append("PUBLIC \"").append(s).append('"')
}
@@ -186,7 +185,7 @@ object Utility extends AnyRef with parsing.TokenTests {
* @param s
* @param sb
*/
- def appendQuoted(s: String, sb: StringBuffer) = {
+ def appendQuoted(s: String, sb: StringBuilder) = {
val ch = if (s.indexOf('"'.asInstanceOf[Int]) == -1) '"' else '\'';
sb.append(ch).append(s).append(ch)
}
@@ -197,7 +196,7 @@ object Utility extends AnyRef with parsing.TokenTests {
* @param s
* @param sb
*/
- def appendEscapedQuoted(s: String, sb: StringBuffer) = {
+ def appendEscapedQuoted(s: String, sb: StringBuilder) = {
sb.append('"')
val z:Seq[Char] = Predef.string2seq(s)
for( val c <- z ) c match {
@@ -209,7 +208,7 @@ object Utility extends AnyRef with parsing.TokenTests {
def getName(s: String, index: Int): String = {
var i = index;
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
if (i < s.length()) {
var c = s.charAt(i);
if (isNameStart(s.charAt(i)))
diff --git a/src/library/scala/xml/dtd/ContentModel.scala b/src/library/scala/xml/dtd/ContentModel.scala
index 72a1ca5e69..b1f71f2cac 100644
--- a/src/library/scala/xml/dtd/ContentModel.scala
+++ b/src/library/scala/xml/dtd/ContentModel.scala
@@ -11,7 +11,7 @@
package scala.xml.dtd;
-
+import scala.runtime.compat.StringBuilder;
import scala.util.regexp.WordExp;
import scala.util.automata._;
@@ -57,13 +57,13 @@ object ContentModel extends WordExp {
}
def toString(r: RegExp):String = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
toString(r, sb);
sb.toString();
}
/* precond: rs.length >= 1 */
- private def toString(rs: Seq[RegExp], sb: StringBuffer, sep: Char): Unit = {
+ private def toString(rs: Seq[RegExp], sb: StringBuilder, sep: Char): Unit = {
val it = rs.elements;
val fst = it.next;
@@ -75,7 +75,7 @@ object ContentModel extends WordExp {
sb
}
- def toString(c: ContentModel, sb: StringBuffer): StringBuffer = c match {
+ def toString(c: ContentModel, sb: StringBuilder): StringBuilder = c match {
case ANY =>
sb.append("ANY");
@@ -91,7 +91,7 @@ object ContentModel extends WordExp {
}
- def toString(r: RegExp, sb:StringBuffer): StringBuffer = {
+ def toString(r: RegExp, sb:StringBuilder): StringBuilder = {
r match {
case Eps =>
sb
@@ -115,12 +115,12 @@ object ContentModel extends WordExp {
sealed abstract class ContentModel {
override def toString(): String = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
toString(sb);
sb.toString();
}
- def toString(sb:StringBuffer): StringBuffer;
+ def toString(sb:StringBuilder): StringBuilder;
/*
def validate(cs: NodeSeq): Boolean = this.match {
case ANY => true ;
@@ -134,13 +134,13 @@ sealed abstract class ContentModel {
}
case object PCDATA extends ContentModel {
- def toString(sb:StringBuffer): StringBuffer = sb.append("(#PCDATA)");
+ def toString(sb:StringBuilder): StringBuilder = sb.append("(#PCDATA)");
}
case object EMPTY extends ContentModel {
- def toString(sb:StringBuffer): StringBuffer = sb.append("EMPTY");
+ def toString(sb:StringBuilder): StringBuilder = sb.append("EMPTY");
}
case object ANY extends ContentModel {
- def toString(sb:StringBuffer): StringBuffer = sb.append("ANY");
+ def toString(sb:StringBuilder): StringBuilder = sb.append("ANY");
}
abstract class DFAContentModel extends ContentModel {
import ContentModel.{ ElemName };
@@ -178,7 +178,7 @@ Console.println("ns = "+ns);
}
}
*/
- def toString(sb:StringBuffer): StringBuffer = {
+ def toString(sb:StringBuilder): StringBuilder = {
sb.append("(#PCDATA|");
//r match {
// case Alt(Eps, rs@_*) => ContentModel.toString(Alt(rs:_*):RegExp, sb);
@@ -207,6 +207,6 @@ case class ELEMENTS(r:ContentModel.RegExp) extends DFAContentModel {
}
}
*/
- def toString(sb:StringBuffer): StringBuffer =
+ def toString(sb:StringBuilder): StringBuilder =
ContentModel.toString(r, sb);
}
diff --git a/src/library/scala/xml/dtd/DTD.scala b/src/library/scala/xml/dtd/DTD.scala
index 9f096a737a..91ec27f160 100644
--- a/src/library/scala/xml/dtd/DTD.scala
+++ b/src/library/scala/xml/dtd/DTD.scala
@@ -11,7 +11,7 @@
package scala.xml.dtd;
-
+import scala.runtime.compat.StringBuilder
import scala.collection.mutable.{ HashMap, Map }
/** a document type declaration */
@@ -36,7 +36,7 @@ abstract class DTD {
//def getAttribDecl(elem: String, attr: String): AttrDecl;
override def toString() = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
sb.append("DTD [\n");
if(null != externalID)
sb.append(externalID.toString()).append('\n');
diff --git a/src/library/scala/xml/dtd/Decl.scala b/src/library/scala/xml/dtd/Decl.scala
index 271a0c0c98..24655c36f2 100644
--- a/src/library/scala/xml/dtd/Decl.scala
+++ b/src/library/scala/xml/dtd/Decl.scala
@@ -11,16 +11,17 @@
package scala.xml.dtd;
+import scala.runtime.compat.StringBuilder
abstract class Decl;
abstract class MarkupDecl extends Decl {
final override def toString(): String = {
- toString(new StringBuffer()).toString();
+ toString(new StringBuilder()).toString();
}
- def toString(sb: StringBuffer): StringBuffer;
+ def toString(sb: StringBuilder): StringBuilder;
}
@@ -30,7 +31,7 @@ case class ElemDecl(name: String, contentModel: ContentModel) extends MarkupDecl
//def mixed = ; // to do
- def toString(sb: StringBuffer): StringBuffer = {
+ def toString(sb: StringBuilder): StringBuilder = {
sb
.append("<!ELEMENT ")
.append(name)
@@ -44,7 +45,7 @@ case class ElemDecl(name: String, contentModel: ContentModel) extends MarkupDecl
case class AttListDecl(name: String, attrs:List[AttrDecl]) extends MarkupDecl with DtdTypeSymbol {
- def toString(sb: StringBuffer): StringBuffer = {
+ def toString(sb: StringBuilder): StringBuilder = {
sb
.append("<!ATTLIST ")
.append(name)
@@ -60,9 +61,9 @@ case class AttListDecl(name: String, attrs:List[AttrDecl]) extends MarkupDecl wi
case class AttrDecl( name:String, tpe:String, default:DefaultDecl ) {
final override def toString(): String =
- toString(new StringBuffer()).toString();
+ toString(new StringBuilder()).toString();
- final def toString(sb: StringBuffer): StringBuffer = {
+ final def toString(sb: StringBuilder): StringBuilder = {
sb.append(" ").append( name ).append(' ').append( tpe ).append(' ');
default.toString(sb)
}
@@ -75,7 +76,7 @@ abstract class EntityDecl extends MarkupDecl;
/** a parsed general entity declaration */
case class ParsedEntityDecl( name:String, entdef:EntityDef ) extends EntityDecl {
- final def toString(sb: StringBuffer): StringBuffer = {
+ final def toString(sb: StringBuilder): StringBuilder = {
sb.append("<!ENTITY ").append( name ).append(' ');
entdef.toString(sb).append('>');
}
@@ -84,7 +85,7 @@ case class ParsedEntityDecl( name:String, entdef:EntityDef ) extends EntityDecl
/** a parameter entity declaration */
case class ParameterEntityDecl(name: String, entdef: EntityDef) extends EntityDecl {
- final def toString(sb: StringBuffer): StringBuffer = {
+ final def toString(sb: StringBuilder): StringBuilder = {
sb.append("<!ENTITY % ").append( name ).append(' ');
entdef.toString(sb).append('>');
}
@@ -92,14 +93,14 @@ case class ParameterEntityDecl(name: String, entdef: EntityDef) extends EntityDe
/** an unparsed entity declaration */
case class UnparsedEntityDecl( name:String, extID:ExternalID, notation:String ) extends EntityDecl {
- final def toString(sb: StringBuffer): StringBuffer = {
+ final def toString(sb: StringBuilder): StringBuilder = {
sb.append("<!ENTITY ").append( name ).append(' ');
extID.toString(sb).append(" NDATA ").append(notation).append('>');
}
}
/** a notation declaration */
case class NotationDecl( name:String, extID:ExternalID ) extends MarkupDecl {
- final def toString(sb: StringBuffer): StringBuffer = {
+ final def toString(sb: StringBuilder): StringBuilder = {
sb.append("<!NOTATION ").append( name ).append(' ');
extID.toString(sb);
}
@@ -107,9 +108,9 @@ case class NotationDecl( name:String, extID:ExternalID ) extends MarkupDecl {
abstract class EntityDef {
final override def toString(): String =
- toString(new StringBuffer()).toString();
+ toString(new StringBuilder()).toString();
- def toString(sb: StringBuffer): StringBuffer;
+ def toString(sb: StringBuilder): StringBuilder;
}
case class IntDef(value:String) extends EntityDef {
@@ -133,13 +134,13 @@ case class IntDef(value:String) extends EntityDef {
}
validateValue();
- final def toString(sb: StringBuffer): StringBuffer =
+ final def toString(sb: StringBuilder): StringBuilder =
Utility.appendQuoted(value, sb);
}
case class ExtDef(extID:ExternalID) extends EntityDef {
- final def toString(sb: StringBuffer): StringBuffer =
+ final def toString(sb: StringBuilder): StringBuilder =
extID.toString(sb);
}
@@ -150,7 +151,7 @@ case class PEReference(ent:String) extends MarkupDecl {
if( !Utility.isName( ent ))
throw new IllegalArgumentException("ent must be an XML Name");
- final def toString(sb: StringBuffer): StringBuffer =
+ final def toString(sb: StringBuilder): StringBuilder =
sb.append('%').append(ent).append(';');
}
@@ -159,24 +160,24 @@ case class PEReference(ent:String) extends MarkupDecl {
abstract class DefaultDecl {
override def toString(): String;
- def toString(sb: StringBuffer): StringBuffer;
+ def toString(sb: StringBuilder): StringBuilder;
}
case object REQUIRED extends DefaultDecl {
final override def toString(): String = "#REQUIRED";
- final def toString(sb:StringBuffer) = sb.append("#REQUIRED");
+ final def toString(sb:StringBuilder) = sb.append("#REQUIRED");
}
case object IMPLIED extends DefaultDecl {
final override def toString(): String = "#IMPLIED";
- final def toString(sb:StringBuffer) = sb.append("#IMPLIED");
+ final def toString(sb:StringBuilder) = sb.append("#IMPLIED");
}
case class DEFAULT(fixed: Boolean, attValue:String) extends DefaultDecl {
final override def toString(): String =
- toString(new StringBuffer()).toString();
+ toString(new StringBuilder()).toString();
- final def toString(sb:StringBuffer): StringBuffer = {
+ final def toString(sb:StringBuilder): StringBuilder = {
if(fixed)
sb.append("#FIXED ");
Utility.appendEscapedQuoted( attValue, sb );
diff --git a/src/library/scala/xml/dtd/DocType.scala b/src/library/scala/xml/dtd/DocType.scala
index 85065548e0..d1110e5ad7 100644
--- a/src/library/scala/xml/dtd/DocType.scala
+++ b/src/library/scala/xml/dtd/DocType.scala
@@ -11,6 +11,7 @@
package scala.xml.dtd;
+import scala.runtime.compat.StringBuilder
/** an XML node for document type declaration
*
@@ -30,7 +31,7 @@ case class DocType( name:String, extID:ExternalID, intSubset:Seq[dtd.Decl]) {
/** returns "&lt;!DOCTYPE + name + extID? + ("["+intSubSet+"]")? >" */
final override def toString() = {
- val sb = new StringBuffer("<!DOCTYPE ");
+ val sb = new StringBuilder().append("<!DOCTYPE ");
sb.append( name );
sb.append(' ');
sb.append(extID.toString());
diff --git a/src/library/scala/xml/dtd/ExternalID.scala b/src/library/scala/xml/dtd/ExternalID.scala
index b4d54d5292..0469de4483 100644
--- a/src/library/scala/xml/dtd/ExternalID.scala
+++ b/src/library/scala/xml/dtd/ExternalID.scala
@@ -11,6 +11,7 @@
package scala.xml.dtd;
+import scala.runtime.compat.StringBuilder
/** an ExternalIDs - either PublicID or SystemID
*
@@ -25,7 +26,7 @@ abstract class ExternalID {
override def toString(): String;
/** returns "PUBLIC "+publicLiteral+" SYSTEM "+systemLiteral */
- def toString(sb: StringBuffer): StringBuffer;
+ def toString(sb: StringBuilder): StringBuilder;
def systemId: String;
@@ -47,7 +48,7 @@ case class SystemID( systemId:String ) extends ExternalID with parsing.TokenTest
final override def toString() =
Utility.systemLiteralToString( systemId );
- final def toString(sb: StringBuffer): StringBuffer =
+ final def toString(sb: StringBuilder): StringBuilder =
Utility.systemLiteralToString( sb, systemId );
}
@@ -83,11 +84,11 @@ case class PublicID( publicId:String, systemId:String ) extends ExternalID with
/** returns "PUBLIC "+publicId+" SYSTEM "+systemId */
final override def toString(): String = {
- toString(new StringBuffer()).toString();
+ toString(new StringBuilder()).toString();
}
/** appends "PUBLIC "+publicId+" SYSTEM "+systemId to argument */
- final def toString(sb: StringBuffer): StringBuffer = {
+ final def toString(sb: StringBuilder): StringBuilder = {
Utility.publicLiteralToString( sb, publicId ).append(' ');
if(systemId!=null)
Utility.systemLiteralToString( sb, systemId );
diff --git a/src/library/scala/xml/dtd/Scanner.scala b/src/library/scala/xml/dtd/Scanner.scala
index ef031a6fc7..7fa9ca7e9c 100644
--- a/src/library/scala/xml/dtd/Scanner.scala
+++ b/src/library/scala/xml/dtd/Scanner.scala
@@ -11,6 +11,7 @@
package scala.xml.dtd;
+import scala.runtime.compat.StringBuilder
/** Scanner for regexps (content models in DTD element declarations)
* todo: cleanup
@@ -90,7 +91,7 @@ class Scanner extends Tokens with parsing.TokenTests {
}
final def name = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
do { sb.append( c ); next } while ( isNameChar( c ) ) ;
value = sb.toString();
NAME
diff --git a/src/library/scala/xml/dtd/ValidationException.scala b/src/library/scala/xml/dtd/ValidationException.scala
index 98e620113d..1a9d1075fd 100644
--- a/src/library/scala/xml/dtd/ValidationException.scala
+++ b/src/library/scala/xml/dtd/ValidationException.scala
@@ -11,6 +11,7 @@
package scala.xml.dtd;
+import scala.runtime.compat.StringBuilder
case class ValidationException( e:String ) extends Exception( e );
@@ -28,7 +29,7 @@ object MakeValidationException {
new ValidationException("attribute " + key +" not allowed here" );
def fromMissingAttribute( allKeys:scala.collection.Set[String] ) = {
- val sb = new StringBuffer();
+ val sb = new StringBuilder();
sb.append("missing value for REQUIRED attribute");
if( allKeys.size > 1 ) sb.append('s');
val it = allKeys.elements;
diff --git a/src/library/scala/xml/parsing/ExternalSources.scala b/src/library/scala/xml/parsing/ExternalSources.scala
index 742b7d43ad..902e0c866f 100644
--- a/src/library/scala/xml/parsing/ExternalSources.scala
+++ b/src/library/scala/xml/parsing/ExternalSources.scala
@@ -11,7 +11,7 @@
package scala.xml.parsing;
-
+import scala.runtime.compat.StringBuilder
import scala.io.Source;
import java.net._;
import java.io._;
@@ -26,7 +26,7 @@ trait ExternalSources requires (ExternalSources with MarkupParser with MarkupHan
//@todo: replace this hack with proper Source implementation
- val str = new StringBuffer();
+ val str = new StringBuilder();
var inputLine:String = null;
//while (inputLine = in.readLine()) != null) {
diff --git a/src/library/scala/xml/parsing/MarkupParser.scala b/src/library/scala/xml/parsing/MarkupParser.scala
index 7206bcc475..c8f3e02507 100644
--- a/src/library/scala/xml/parsing/MarkupParser.scala
+++ b/src/library/scala/xml/parsing/MarkupParser.scala
@@ -11,7 +11,7 @@
package scala.xml.parsing;
-
+import scala.runtime.compat.StringBuilder
import scala.io.Source;
import scala.xml.dtd._ ;
@@ -61,7 +61,7 @@ trait MarkupParser requires (MarkupParser with MarkupHandler) extends AnyRef wit
var ch: Char = _;
/** character buffer, for names */
- protected val cbuf = new StringBuffer();
+ protected val cbuf = new StringBuilder();
var dtd: DTD = null;
@@ -392,7 +392,7 @@ trait MarkupParser requires (MarkupParser with MarkupHandler) extends AnyRef wit
def xCharData: NodeSeq = {
xToken("[CDATA[");
val pos1 = pos;
- val sb: StringBuffer = new StringBuffer();
+ val sb: StringBuilder = new StringBuilder();
while (true) {
if (ch==']' &&
{ sb.append(ch); nextch; ch == ']' } &&
@@ -440,7 +440,7 @@ trait MarkupParser requires (MarkupParser with MarkupHandler) extends AnyRef wit
* see [15]
*/
def xComment: NodeSeq = {
- val sb: StringBuffer = new StringBuffer();
+ val sb: StringBuilder = new StringBuilder();
xToken('-');
xToken('-');
while (true) {
@@ -455,7 +455,7 @@ trait MarkupParser requires (MarkupParser with MarkupHandler) extends AnyRef wit
throw FatalError("this cannot happen");
};
- /* todo: move this into the NodeBuffer class */
+ /* todo: move this into the NodeBuilder class */
def appendText(pos: Int, ts: NodeBuffer, txt: String): Unit = {
if (preserveWS)
ts &+ handle.text(pos, txt);
@@ -510,7 +510,7 @@ trait MarkupParser requires (MarkupParser with MarkupHandler) extends AnyRef wit
/* if( xCheckEmbeddedBlock ) {
ts.appendAll(xEmbeddedExpr);
} else {*/
- // val str = new StringBuffer("{");
+ // val str = new StringBuilder("{");
// str.append(xText);
// appendText(tmppos, ts, str.toString());
/*}*/
@@ -731,7 +731,7 @@ trait MarkupParser requires (MarkupParser with MarkupHandler) extends AnyRef wit
* see [15]
*/
def xProcInstr: NodeSeq = {
- val sb:StringBuffer = new StringBuffer();
+ val sb:StringBuilder = new StringBuilder();
val n = xName;
if (isSpace(ch)) {
xSpace;
@@ -1197,7 +1197,7 @@ trait MarkupParser requires (MarkupParser with MarkupHandler) extends AnyRef wit
val s = xCharRef ({ () => c }, { () => c = it.next });
cbuf.append(s);
case nchar =>
- val nbuf = new StringBuffer();
+ val nbuf = new StringBuilder();
var d = nchar;
do {
nbuf.append(d);