01: // Copyright 2006 The Apache Software Foundation
02: //
03: // Licensed under the Apache License, Version 2.0 (the "License");
04: // you may not use this file except in compliance with the License.
05: // You may obtain a copy of the License at
06: //
07: // http://www.apache.org/licenses/LICENSE-2.0
08: //
09: // Unless required by applicable law or agreed to in writing, software
10: // distributed under the License is distributed on an "AS IS" BASIS,
11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12: // See the License for the specific language governing permissions and
13: // limitations under the License.
14:
15: package org.apache.tapestry.dom;
16:
17: import java.io.PrintWriter;
18:
19: /**
20: * A type of node that contains text.
21: */
22: public final class Text extends Node {
23: private final StringBuilder _buffer;
24:
25: private final Document _document;
26:
27: Text(Node container, Document document, String text) {
28: super (container);
29:
30: _document = document;
31:
32: _buffer = new StringBuilder();
33:
34: write(text);
35: }
36:
37: /** Writes additional text into the node, appending it to any existing text. */
38: public void write(String text) {
39: _document.getMarkupModel().encode(text, _buffer);
40: }
41:
42: public void writef(String format, Object... args) {
43: write(String.format(format, args));
44: }
45:
46: @Override
47: public void toMarkup(PrintWriter writer) {
48: writer.print(_buffer.toString());
49: }
50:
51: }
|