diff options
author | Paul Phillips <paulp@improving.org> | 2011-07-16 20:40:19 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-07-16 20:40:19 +0000 |
commit | e8f46334b44c0d0bd4ec5331169b363b77deadb9 (patch) | |
tree | c04cdaf708262ffd1c133ec30e52812d6abf98d0 /src | |
parent | a8e5a7be9f63ef6795524e263777756f0043b8c1 (diff) | |
download | scala-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.
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/xml/Atom.scala | 3 | ||||
-rw-r--r-- | src/library/scala/xml/Text.scala | 34 |
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 + } +} |