1 /***
2 * Copyright 2004 Steven Caswell
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package com.mungoknotwise.sqlcli;
17
18 import java.io.PrintStream;
19 import java.util.ArrayList;
20 import java.util.Iterator;
21 import java.util.List;
22 import org.apache.log4j.Logger;
23
24 /***
25 * A basic implementation of the {@link PrintStreamed} interface.
26 *
27 * @author Steven Caswell
28 * @version $Id: BasicPrintStreamed.java,v 1.1.1.1 2004/07/28 01:12:38 mungoknotwise Exp $
29 */
30 public class BasicPrintStreamed implements PrintStreamed
31 {
32
33
34
35
36
37 private static Logger logger = Logger.getLogger(BasicPrintStreamed.class);
38
39
40
41
42
43
44
45
46
47
48
49
50
51 private List printStreams;
52
53
54
55
56
57 /***
58 * Constructs a new instance of
59 * <code>AbstractPrintStreamed</code>.
60 */
61 public BasicPrintStreamed()
62 {
63 this.printStreams = new ArrayList();
64 }
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 /***
86 * {@inheritDoc}
87 */
88 public void addPrintStream(final PrintStream printStream)
89 {
90 if(!this.printStreams.contains(printStream))
91 {
92 this.printStreams.add(printStream);
93 }
94 }
95
96 /***
97 * {@inheritDoc}
98 */
99 public void removePrintStream(final PrintStream printStream)
100 {
101 this.printStreams.remove(printStream);
102 }
103
104
105
106
107
108
109
110
111
112 /***
113 * Prints the specified line to this object's print streams.
114 *
115 * @param line the line to print
116 */
117 protected void print(final String line)
118 {
119 for(Iterator iter = this.streamIterator(); iter.hasNext();)
120 {
121 PrintStream printStream = (PrintStream) iter.next();
122 printStream.print(line);
123 }
124 }
125
126 /***
127 * Prints the specified line to this object's print streams.
128 *
129 * @param line the line to print
130 */
131 protected void println(final String line)
132 {
133 for(Iterator iter = this.streamIterator(); iter.hasNext();)
134 {
135 PrintStream printStream = (PrintStream) iter.next();
136 printStream.println(line);
137 }
138 }
139
140 /***
141 * Returns an iterator of this object's print streams.
142 *
143 * @return the iterator
144 */
145 protected Iterator streamIterator()
146 {
147 return this.printStreams.iterator();
148 }
149
150
151
152
153
154
155
156
157
158 }