summaryrefslogtreecommitdiff
path: root/sources/scala/xml/Atom.scala
blob: 1b44c6b104b27896e05e32421d4ebc90aec8f461 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*                     __                                               *\
**     ________ ___   / /  ___     Scala API                            **
**    / __/ __// _ | / /  / _ |    (c) 2003-2004, LAMP/EPFL             **
**  __\ \/ /__/ __ |/ /__/ __ |                                         **
** /____/\___/_/ |_/____/_/ | |                                         **
**                          |/                                          **
** $Id$
\*                                                                      */

package scala.xml;

/** an XML node for text (PCDATA). Used in both non-bound and bound XML
 *  representations
 * @author Burak Emir
 * @param text the text contained in this node, may not be null.
 */
class Atom[+A]( val data: A ) extends SpecialNode {

  final override def typeTag$:Int = -1;

  /** the constant "#PCDATA"
  */
  def label = "#PCDATA";

 override def equals(x:Any) = x match {
    case s:Atom[A] => data == s.data ;
    case _ => false;
  }

  /** hashcode for this Text */
  override def hashCode() =
    data.hashCode();

  /** returns text, with some characters escaped according to XML spec */
  def toString(sb:StringBuffer) =
    Utility.escape( data.toString(), sb );

}