KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > edu > rice > cs > util > sexp > TextAtom


1 /*BEGIN_COPYRIGHT_BLOCK
2  *
3  * This file is part of DrJava. Download the current version of this project:
4  * http://sourceforge.net/projects/drjava/ or http://www.drjava.org/
5  *
6  * DrJava Open Source License
7  *
8  * Copyright (C) 2001-2003 JavaPLT group at Rice University (javaplt@rice.edu)
9  * All rights reserved.
10  *
11  * Developed by: Java Programming Languages Team
12  * Rice University
13  * http://www.cs.rice.edu/~javaplt/
14  *
15  * Permission is hereby granted, free of charge, to any person obtaining a
16  * copy of this software and associated documentation files (the "Software"),
17  * to deal with the Software without restriction, including without
18  * limitation the rights to use, copy, modify, merge, publish, distribute,
19  * sublicense, and/or sell copies of the Software, and to permit persons to
20  * whom the Software is furnished to do so, subject to the following
21  * conditions:
22  *
23  * - Redistributions of source code must retain the above copyright
24  * notice, this list of conditions and the following disclaimers.
25  * - Redistributions in binary form must reproduce the above copyright
26  * notice, this list of conditions and the following disclaimers in the
27  * documentation and/or other materials provided with the distribution.
28  * - Neither the names of DrJava, the JavaPLT, Rice University, nor the
29  * names of its contributors may be used to endorse or promote products
30  * derived from this Software without specific prior written permission.
31  * - Products derived from this software may not be called "DrJava" nor
32  * use the term "DrJava" as part of their names without prior written
33  * permission from the JavaPLT group. For permission, write to
34  * javaplt@rice.edu.
35  *
36  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
37  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
39  * THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
40  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
41  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42  * OTHER DEALINGS WITH THE SOFTWARE.
43  *
44 END_COPYRIGHT_BLOCK*/

45
46 package edu.rice.cs.util.sexp;
47
48 public class TextAtom implements Atom {
49   protected String JavaDoc _text;
50   
51   public TextAtom(String JavaDoc text) { _text = text; }
52   
53   public String JavaDoc getText() { return _text; }
54   
55   /**
56    * Visitor hook for the TextAtom
57    * @param v the visitor
58    * @return result of the given algorithm
59    */

60   public <Ret> Ret accept(SExpVisitor<Ret> v){
61     return v.forTextAtom(this);
62   }
63   
64   /**
65    * If the given text was a quoted string, the text returned
66    * excludes the quotes around the string.
67    * @return the text that went into making this atom.
68    */

69   public String JavaDoc toString() { return _text; }
70 }
71
72 /**
73  * this type of text atom is mostly like its super class
74  * except its string representation includes the sourrounding
75  * quotes and the instances of the characters: \ " etc are turned
76  * into their corresponding escape character sequences.
77  */

78 class QuotedTextAtom extends TextAtom {
79   
80   public QuotedTextAtom(String JavaDoc text) { super(text); }
81   
82   public String JavaDoc toString() {
83     return edu.rice.cs.util.StringOps.convertToLiteral(_text);
84   }
85 }
Popular Tags