1. /*
  2. * Copyright 2003-2004 The Apache Software Foundation
  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. */
  17. package org.apache.tools.ant.util;
  18. import java.io.OutputStream;
  19. import java.io.IOException;
  20. /**
  21. * A simple T-piece to replicate an output stream into two separate streams
  22. *
  23. */
  24. public class TeeOutputStream extends OutputStream {
  25. private OutputStream left;
  26. private OutputStream right;
  27. public TeeOutputStream(OutputStream left, OutputStream right) {
  28. this.left = left;
  29. this.right = right;
  30. }
  31. public void close() throws IOException {
  32. left.close();
  33. right.close();
  34. }
  35. public void flush() throws IOException {
  36. left.flush();
  37. right.flush();
  38. }
  39. public void write(byte[] b) throws IOException {
  40. left.write(b);
  41. right.write(b);
  42. }
  43. public void write(byte[] b, int off, int len) throws IOException {
  44. left.write(b, off, len);
  45. right.write(b, off, len);
  46. }
  47. public void write(int b) throws IOException {
  48. left.write(b);
  49. right.write(b);
  50. }
  51. }