/[aagtl_public1]/src/net/htmlparser/jericho/StringOutputSegment.java
aagtl

Contents of /src/net/htmlparser/jericho/StringOutputSegment.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (show annotations) (download)
Sun Aug 5 13:48:36 2012 UTC (11 years, 8 months ago) by zoffadmin
File size: 3474 byte(s)
initial import of aagtl source code
1 // Jericho HTML Parser - Java based library for analysing and manipulating HTML
2 // Version 3.2
3 // Copyright (C) 2004-2009 Martin Jericho
4 // http://jericho.htmlparser.net/
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of either one of the following licences:
8 //
9 // 1. The Eclipse Public License (EPL) version 1.0,
10 // included in this distribution in the file licence-epl-1.0.html
11 // or available at http://www.eclipse.org/legal/epl-v10.html
12 //
13 // 2. The GNU Lesser General Public License (LGPL) version 2.1 or later,
14 // included in this distribution in the file licence-lgpl-2.1.txt
15 // or available at http://www.gnu.org/licenses/lgpl.txt
16 //
17 // This library is distributed on an "AS IS" basis,
18 // WITHOUT WARRANTY OF ANY KIND, either express or implied.
19 // See the individual licence texts for more details.
20
21 package net.htmlparser.jericho;
22
23 import java.io.*;
24
25 /**
26 * Implements an {@link OutputSegment} whose content is a <code>CharSequence</code>.
27 * <p>
28 * This class has been removed from the pulic API and the functionality replaced with the
29 * {@link OutputDocument#replace(Segment, CharSequence text)} method.
30 */
31 final class StringOutputSegment implements OutputSegment {
32 private final int begin;
33 private final int end;
34 private final CharSequence text;
35
36 /**
37 * Constructs a new <code>StringOutputSegment</code> with the specified begin and end positions and the specified content.
38 * <p>
39 * Specifying a <code>null</code> argument to the <code>text</code> parameter is exactly equivalent to specifying an empty string,
40 * and results in the segment being completely removed from the output document.
41 *
42 * @param begin the position in the <code>OutputDocument</code> where this output segment begins.
43 * @param end the position in the <code>OutputDocument</code> where this output segment ends.
44 * @param text the textual content of the new output segment, or <code>null</code> if no content.
45 */
46 public StringOutputSegment(final int begin, final int end, final CharSequence text) {
47 this.begin=begin;
48 this.end=end;
49 this.text=(text==null ? "" : text);
50 }
51
52 /**
53 * Constructs a new StringOutputSegment</code> with the same span as the specified {@link Segment}.
54 * <p>
55 * Specifying a <code>null</code> argument to the <code>text</code> parameter is exactly equivalent to specifying an empty string,
56 * and results in the segment being completely removed from the output document.
57 *
58 * @param segment a segment defining the beginning and ending positions of the new output segment.
59 * @param text the textual content of the new output segment, or <code>null</code> if no content.
60 */
61 public StringOutputSegment(final Segment segment, final CharSequence text) {
62 this(segment.begin,segment.end,text);
63 }
64
65 public int getBegin() {
66 return begin;
67 }
68
69 public int getEnd() {
70 return end;
71 }
72
73 public void writeTo(final Writer writer) throws IOException {
74 appendTo(writer);
75 }
76
77 public void appendTo(final Appendable appendable) throws IOException {
78 appendable.append(text);
79 }
80
81 public long getEstimatedMaximumOutputLength() {
82 return text.length();
83 }
84
85 public String toString() {
86 return text.toString();
87 }
88
89 public String getDebugInfo() {
90 return "Replace: (p"+begin+"-p"+end+") "+text;
91 }
92
93 public void output(final Writer writer) throws IOException {
94 writeTo(writer);
95 }
96 }

   
Visit the aagtl Website