blob: 5c51584edebdeba4b126c614e511b2bb6a19cde1 [file] [log] [blame]
/*
* Copyright 2012-present Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package com.facebook.buck.util;
import com.google.common.base.Throwables;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
public class CapturingPrintStream extends PrintStream {
private final ByteArrayOutputStream byteArrayOutputStream;
public CapturingPrintStream() {
this(new ByteArrayOutputStream());
}
private CapturingPrintStream(ByteArrayOutputStream byteArrayOutputStream) {
super(byteArrayOutputStream);
this.byteArrayOutputStream = byteArrayOutputStream;
}
public String getContentsAsString(Charset charset) {
try {
return byteArrayOutputStream.toString(charset.name());
} catch (UnsupportedEncodingException e) {
throw Throwables.propagate(e);
}
}
}