01: // Jericho HTML Parser - Java based library for analysing and manipulating HTML
02: // Version 2.5
03: // Copyright (C) 2007 Martin Jericho
04: // http://jerichohtml.sourceforge.net/
05: //
06: // This library is free software; you can redistribute it and/or
07: // modify it under the terms of either one of the following licences:
08: //
09: // 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 au.id.jericho.lib.html;
22:
23: import java.io.*;
24:
25: /**
26: * Implements an {@link OutputSegment} whose content is a string of spaces with the same length as the segment.
27: * <p>
28: * This class has been removed from the public API and the functionality replaced with the
29: * {@link OutputDocument#ReplaceWithSpaces(int begin, int end)} method.
30: */
31: final class BlankOutputSegment implements OutputSegment {
32: private final int begin;
33: private final int end;
34:
35: /**
36: * Constructs a new <code>BlankOutputSegment</code> with the specified begin and end positions.
37: * @param begin the position in the {@link OutputDocument} where this <code>OutputSegment</code> begins.
38: * @param end the position in the {@link OutputDocument} where this <code>OutputSegment</code> ends.
39: */
40: public BlankOutputSegment(final int begin, final int end) {
41: this .begin = begin;
42: this .end = end;
43: }
44:
45: /**
46: * Constructs a new <code>BlankOutputSegment</code> with the same span as the specified {@link Segment}.
47: * @param segment a {@link Segment} defining the begin and end character positions of the new <code>OutputSegment</code>.
48: */
49: public BlankOutputSegment(final Segment segment) {
50: this (segment.getBegin(), segment.getEnd());
51: }
52:
53: public int getBegin() {
54: return begin;
55: }
56:
57: public int getEnd() {
58: return end;
59: }
60:
61: public void writeTo(final Writer writer) throws IOException {
62: for (int i = begin; i < end; i++)
63: writer.write(' ');
64: }
65:
66: public long getEstimatedMaximumOutputLength() {
67: return end - begin;
68: }
69:
70: public String toString() {
71: StringBuffer sb = new StringBuffer(end - begin);
72: for (int i = begin; i < end; i++)
73: sb.append(' ');
74: return sb.toString();
75: }
76:
77: public String getDebugInfo() {
78: return "Replace with Spaces: (p" + begin + "-p" + end + ')';
79: }
80: }
|