annotate gnv/src/main/java/de/intevation/gnv/util/CaptureInputStream.java @ 1025:2996395e44c9

Improved the logging of incoming mapviewer call data. gnv/trunk@1279 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 29 Nov 2010 09:20:01 +0000
parents
children
rev   line source
1025
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 /*
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2 * Copyright (c) 2010 by Intevation GmbH
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 *
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 * This program is free software under the LGPL (>=v2.1)
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 * Read the file LGPL.txt coming with the software for details
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 */
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 package de.intevation.gnv.util;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import java.io.FilterInputStream;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import java.io.ByteArrayOutputStream;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import java.io.InputStream;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import java.io.IOException;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import java.io.UnsupportedEncodingException;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 /**
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha Teichmann</a>
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 */
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 public class CaptureInputStream
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 extends FilterInputStream
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 protected ByteArrayOutputStream copy;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 public CaptureInputStream(InputStream in) {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 super(in);
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 copy = new ByteArrayOutputStream(10*1024);
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 public int read() throws IOException {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 int x = in.read();
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 if (x != -1) {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 copy.write(x);
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 return x;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 public int read(byte [] b, int off, int len) throws IOException {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 int r = in.read(b, off, len);
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 if (r > 0) {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 copy.write(b, off, r);
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 return r;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 public long skip(long n) throws IOException {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 long m = in.skip(n);
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 for (long i = m; i > 0L; --i) { // simulate gab
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 copy.write(0);
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 return m;
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 public String copyToString() {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 return copy.toString();
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 public String copyToString(String charsetName)
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 throws UnsupportedEncodingException
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 return copy.toString(charsetName);
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 public byte [] toByteArray() {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 return copy.toByteArray();
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 public void clear() {
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 copy.reset();
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 }
2996395e44c9 Improved the logging of incoming mapviewer call data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 }

http://dive4elements.wald.intevation.org