diff options
-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 + } +} |