From e6ef9af62f44bf4df35907847723a9e57e092212 Mon Sep 17 00:00:00 2001 From: Burak Emir Date: Tue, 11 Jul 2006 15:15:02 +0000 Subject: replaced StringBuffer with compat.StringBuilder... replaced StringBuffer with compat.StringBuilder (except in Java-specific file "FactoryAdapter") and added methods to stringbuilder --- .../scala/runtime/compat/StringBuilder.scala | 8 +++++ src/library/scala/xml/Atom.scala | 3 +- src/library/scala/xml/Comment.scala | 3 +- src/library/scala/xml/Elem.scala | 3 +- src/library/scala/xml/EntityRef.scala | 5 +-- src/library/scala/xml/MetaData.scala | 11 +++--- src/library/scala/xml/Molecule.scala | 3 +- src/library/scala/xml/NamespaceBinding.scala | 7 ++-- src/library/scala/xml/Node.scala | 5 +-- src/library/scala/xml/NodeSeq.scala | 3 +- src/library/scala/xml/Null.scala | 7 ++-- src/library/scala/xml/PrefixedAttribute.scala | 3 +- src/library/scala/xml/PrettyPrinter.scala | 22 ++++++------ src/library/scala/xml/ProcInstr.scala | 3 +- src/library/scala/xml/SpecialNode.scala | 5 +-- src/library/scala/xml/Text.scala | 3 +- src/library/scala/xml/TextBuffer.scala | 3 +- src/library/scala/xml/TopScope.scala | 4 ++- src/library/scala/xml/UnprefixedAttribute.scala | 3 +- src/library/scala/xml/Utility.scala | 25 +++++++------ src/library/scala/xml/dtd/ContentModel.scala | 24 ++++++------- src/library/scala/xml/dtd/DTD.scala | 4 +-- src/library/scala/xml/dtd/Decl.scala | 41 +++++++++++----------- src/library/scala/xml/dtd/DocType.scala | 3 +- src/library/scala/xml/dtd/ExternalID.scala | 9 ++--- src/library/scala/xml/dtd/Scanner.scala | 3 +- .../scala/xml/dtd/ValidationException.scala | 3 +- .../scala/xml/parsing/ExternalSources.scala | 4 +-- src/library/scala/xml/parsing/MarkupParser.scala | 16 ++++----- 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 "" to this stringbuffer */ - def toString(sb: StringBuffer) = { + def toString(sb: StringBuilder) = { sb.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 Elem 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 "& 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 NamespaceBinding 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 StringBuffer. + * Appends qualified name of this node to StringBuilder. * * @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("'); 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 "<?" target (" "+text)?+"?>" * to this stringbuffer. */ - def toString(sb: StringBuffer) = { + def toString(sb: StringBuilder) = { sb .append(" s.append("<") case '>' => s.append(">") @@ -83,7 +82,7 @@ object Utility extends AnyRef with parsing.TokenTests { * @todo define a way to escape literal characters to &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("'); } @@ -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("'); } @@ -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("'); } } /** 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("" */ final override def toString() = { - val sb = new StringBuffer(" 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); -- cgit v1.2.3