Source code: com/virtuosotechnologies/asaph/standardmodel/StdTextString.java
1 /*
2 ================================================================================
3
4 FILE: StdTextString.java
5
6 PROJECT:
7
8 Asaph
9
10 CONTENTS:
11
12 Standard implementation of TextString
13
14 PROGRAMMERS:
15
16 Daniel Azuma (DA) <dazuma@kagi.com>
17
18 COPYRIGHT:
19
20 Copyright (C) 2003 Daniel Azuma (dazuma@kagi.com)
21
22 This program is free software; you can redistribute it and/or
23 modify it under the terms of the GNU General Public License as
24 published by the Free Software Foundation; either version 2
25 of the License, or (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful,
28 but WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 GNU General Public License for more details.
31
32 You should have received a copy of the GNU General Public
33 License along with this program; if not, write to
34 Free Software Foundation, Inc.
35 59 Temple Place, Suite 330
36 Boston, MA 02111-1307 USA
37
38 ================================================================================
39 */
40
41
42 package com.virtuosotechnologies.asaph.standardmodel;
43
44
45 import java.io.IOException;
46 import org.xml.sax.SAXException;
47 import org.xml.sax.ErrorHandler;
48 import org.xml.sax.Locator;
49
50 import com.virtuosotechnologies.lib.xml.XMLUnparser;
51
52 import com.virtuosotechnologies.asaph.model.TextString;
53
54
55 /**
56 * Standard implementation of TextString
57 */
58 /*package*/ class StdTextString
59 extends BaseStringSongLineMember
60 implements
61 TextString
62 {
63 /*package*/ StdTextString(
64 StdSongLine line,
65 String value)
66 {
67 super(line, value);
68 }
69
70
71 /*package*/ void unparse(
72 XMLUnparser unparser)
73 throws
74 IOException
75 {
76 String str = getString();
77 if (str.length() == 0)
78 {
79 unparser.startSingleLineElement(XMLConstants.TEXT_ELEMENT);
80 unparser.endElement(XMLConstants.TEXT_ELEMENT);
81 }
82 else
83 {
84 unparser.addString(str);
85 }
86 }
87
88
89 /*package*/ class ParseHandler
90 extends ParseHandlerBase
91 {
92 /*package*/ ParseHandler(
93 ErrorHandler errorHandler,
94 Locator locator)
95 {
96 super(errorHandler, locator, XMLConstants.TEXT_ELEMENT);
97 }
98
99 /*package*/ void localCharacters(
100 char[] chs,
101 int start,
102 int length)
103 throws
104 SAXException
105 {
106 setString(getString()+new String(chs, start, length), null);
107 }
108 }
109 }