summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-07-16 20:40:19 +0000
committerPaul Phillips <paulp@improving.org>2011-07-16 20:40:19 +0000
commite8f46334b44c0d0bd4ec5331169b363b77deadb9 (patch)
treec04cdaf708262ffd1c133ec30e52812d6abf98d0
parenta8e5a7be9f63ef6795524e263777756f0043b8c1 (diff)
downloadscala-e8f46334b44c0d0bd4ec5331169b363b77deadb9.tar.gz
scala-e8f46334b44c0d0bd4ec5331169b363b77deadb9.tar.bz2
scala-e8f46334b44c0d0bd4ec5331169b363b77deadb9.zip
Re-de-case-classed scala.xml.Text as described ...
Re-de-case-classed scala.xml.Text as described in r20450, no review.
-rw-r--r--src/library/scala/xml/Atom.scala3
-rw-r--r--src/library/scala/xml/Text.scala34
2 files changed, 11 insertions, 26 deletions
diff --git a/src/library/scala/xml/Atom.scala b/src/library/scala/xml/Atom.scala
index 8fb81eaa07..d48e451b3c 100644
--- a/src/library/scala/xml/Atom.scala
+++ b/src/library/scala/xml/Atom.scala
@@ -14,8 +14,7 @@ package scala.xml
* @author Burak Emir
* @param text the text contained in this node, may not be `'''null'''`.
*/
-class Atom[+A](val data: A) extends SpecialNode with Serializable
-{
+class Atom[+A](val data: A) extends SpecialNode with Serializable {
if (data == null)
throw new IllegalArgumentException("cannot construct Atom(null)")
diff --git a/src/library/scala/xml/Text.scala b/src/library/scala/xml/Text.scala
index e9e09b0048..52d344329d 100644
--- a/src/library/scala/xml/Text.scala
+++ b/src/library/scala/xml/Text.scala
@@ -8,41 +8,27 @@
package scala.xml
-// XXX This attempt to make Text not a case class revealed a bug in the pattern
-// matcher (see ticket #2883) so I've put the case back. (It was/is desirable that
-// it not be a case class because it is using the antipattern of passing constructor
-// parameters to the superclass where they become vals, but since they will also be
-// vals in the subclass, it acquires an underscore to avoid a name clash.)
-//
-// object Text {
-// def apply(data: String) =
-// if (data != null) new Text(data)
-// else throw new IllegalArgumentException("tried to construct Text with null")
-//
-// def unapply(other: Any): Option[String] = other match {
-// case x: Text => Some(x.data)
-// case _ => None
-// }
-// }
-
/** The class `Text` implements an XML node for text (PCDATA).
* It is used in both non-bound and bound XML representations.
*
* @author Burak Emir
- *
* @param text the text contained in this node, may not be null.
*/
-case class Text(_data: String) extends Atom[String](_data)
-{
- if (_data == null)
+class Text(data: String) extends Atom[String](data) {
+ if (data == null)
throw new IllegalArgumentException("tried to construct Text with null")
/** Returns text, with some characters escaped according to the XML
* specification.
- *
- * @param sb ...
- * @return ...
*/
override def buildString(sb: StringBuilder) =
Utility.escape(data, sb)
}
+
+object Text {
+ def apply(data: String) = new Text(data)
+ def unapply(other: Any): Option[String] = other match {
+ case x: Text => Some(x.data)
+ case _ => None
+ }
+}